我正在尝试让我的经过 acs 修补的 Antergos 内核从 rEFInd 启动。 rEFInd 自动检测到它,但无法正常启动。我一直在获取ERROR: device 'UUID=...' not found. Skipping fsck.
,所以为了绕过这个并获得内核参数,我尝试了自定义菜单项,但失败了。没有任何信息,只有黑屏。此外,我想让 rEFInd-minimal 主题正常工作。
正常的 Antergos 启动完全正常,在我从 rEFInd 子菜单中手动选择它之后,XUbuntu 仍然工作正常。
关于主题的说明,自定义 Antergos 图标可以工作,但横幅不能,也不能覆盖 XUbuntu 或普通 Antergos 的图标。
rEFInd 设置在单独的分区上,如下所示:
/dev/sda:
| EFI BOOT | Empty Partition | SWAP | XUbuntu | Antergos | Free Space |
| 1.0 GB | 1.0 GB | 8.6 GB | 21 GB | 40 GB | 185 GB |
电喷引导:
.
└── EFI
├── BOOT
│ ├── bootx64.efi
│ ├── drivers_x64
│ ├── icons
│ ├── keys
│ └── refind.conf
├── refind
│ ├── rEFInd-minimal
│ └── refind-theme-regular
└── tools
重新查找配置文件:
timeout 20
menuentry "Antergos IOMMU" {
icon EFI/refind/rEFInd-minimal/icons/os_antergos.png
volume Antergos
loader /boot/vmlinuz-linux-vfio
initrd /boot/initramfs-linux-vfio.img
options "root=/dev/sda5 rw quiet iommu=pt amd_iommu=on"
}
hideui singleuser,hints,arrows,badges
icons_dir EFI/refind/rEFInd-minimal/icons
banner EFI/refind/rEFInd-minimal/background.png
banner_scale fillscreen
selection_big EFI/refind/rEFInd-minimal/selection_big.png
selection_small EFI/refind/rEFInd-minimal/selection_small.png
showtools shutdown
/dev/sda5/启动/:
.
├── grub
│ ├── fonts
│ ├── grub.cfg
│ ├── grub.cfg.example
│ ├── grubenv
│ ├── i386-pc
│ ├── locale
│ └── themes
├── initramfs-linux-fallback.img
├── initramfs-linux.img
├── initramfs-linux-vfio-fallback.img
├── initramfs-linux-vfio.img
├── intel-ucode.img
├── vmlinuz-linux
└── vmlinuz-linux-vfio
答案1
好吧,过了一段时间(主要是忽略这一点并通过每次手动编辑重新查找引导来绕过它,烦人)我发现了这个问题。
问题出在 refind.conf 文件上。
首先,主题是这样固定的:
#old
icons_dir EFI/refind/rEFInd-minimal/icons
banner EFI/refind/rEFInd-minimal/background.png
selection_big EFI/refind/rEFInd-minimal/selection_big.png
selection_small EFI/refind/rEFInd-minimal/selection_small.png
#new
banner ../refind/rEFInd-minimal/background.png
selection_big ../refind/rEFInd-minimal/selection_big.png
selection_small ../refind/rEFInd-minimal/selection_small.png
icons_dir ../refind/rEFInd-minimal/icons
使用相对路径有效。
菜单项是启动 VFIO 内核的问题。
# Did not work
menuentry "Antergos IOMMU" {
icon EFI/refind/rEFInd-minimal/icons/os_antergos.png
volume Antergos
loader /boot/vmlinuz-linux-vfio
initrd /boot/initramfs-linux-vfio.img
options "root=/dev/sda5 rw quiet iommu=pt amd_iommu=on"
}
# Works
menuentry "Antergos IOMMU" {
icon EFI/refind/rEFInd-minimal/icons/os_antergos.png
volume Antegros
loader /boot/vmlinuz-linux-vfio
initrd /boot/initramfs-linux-vfio.img
options "root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ro iommu=pt amd_iommu=on pcie_acs_override=downstream"
}
所以,真正的问题是我的 Antergos 安装标签拼写错误(Antegros)。由于该标签在我的系统中影响不大,因此更改菜单条目中的标签是主要的修复方法。我还使用 UUID 设置根(尽管 /dev/sdx 也应该可以工作)。