在 GRUB 控制台上找不到 initrd 文件

在 GRUB 控制台上找不到 initrd 文件

我的电脑启动至 grub 命令行。

$ ls
(hd0) (hd1) (hd1,gpt6)  (hd1,gpt5)  (hd1,gpt4)  (hd1,gpt3)  (hd1,gpt2)  (hd1,gpt1)
(lvm/fedora-swap)  (lvm/fedora-home)  (lvm/fedora-root)

$ ls (hd1,gpt5)/
./ ../ lost+found/ efi/ extlinux/ grub2/ vmlinuz-4.10.12-200.fc25.x86_64
vmlinuz-4.10.10-200.fc25.x86_64 System.map-4.10.10-200.fc25.x86_64
config-4.10.10-200.fc25.x86_64 elf-memtest86+-5.0
System.map-4.10.12-200.fc25.x86_64 memtest86+-5.01
config-4.10.10-200.fc25.x86_64 .vmlinuz-4.10.12-200.fc25.x86_64.hmac
initramfs-4.10.12-200.fc25.x86_64.img vmlinuz-4.10.13-200.fc25.x86_64
System.map-4.10.13-200.fc25.x86_64 config-4.10.13-200.fc25.x86_64 
.vmlinuz-4.10.13-200.fc25.x86_64.hmac
  initramfs-4.13.12-200.fc25.x86_64.img .vmlinuz-4.10.10-200.fc25.x86_64.hmac
initramfs-4.10.10-200.fc25.x86_64.img

我试过了:

$ set root=(lvm/fedora-root)
$ linuxefi (hd1,gpt5)/vmlinuz-4.10.13-200.fc25.x86_64 root=/dev/sda5
$ initrd initramfs-4.13.12-200.fc25.x86_64.img
$ boot

之后,我得到:

[失败] 无法启动 Switch Root。有关详细信息,请参阅“systemctl status initrd-switch-root.service”。

生成“/run/initramfs/rdsosreport.txt”

进入紧急模式。退出外壳程序以继续。输入“journalctl”查看系统日志。您可能希望在安装后将“/run/initramfs/rdsosreport.txt”保存到 USB 记忆棒或 /boot 并将其附加到错误报告中。

答案1

我还能够使用以下命令使用内核 vmlinuz-4.2.3-300.fc23.x86_64 重现“无法启动 Switch Root”。

grub> linux /vmlinuz-4.2.3-300.fc23.x86_64 root=/dev/sda1
grub> initrd /initramfs-4.2.3-300.fc23.x86_64.img
grub> boot

在 GRUB 启动屏幕上,当我按 e 进行编辑时,我的系统上会显示以下内容。

linux16 /vmlinuz-4.2.3-300.fc23.x86_64 root=/dev/mapper/fedora-root rord.lvm.lv=fedora/root rd.lvm.lv=fedora/swap rhgb LANG=en_US.UTF-8
initrd16 /initramfs-4.2.3-300.fc23.x86_64.img

我记下了这些参数,然后再次按 c 返回到 GRUB 命令行。我将命令调整为与编辑屏幕上列出的命令类似。

grub> linux16 /vmlinuz-4.2.3-300.fc23.x86_64 root=/dev/mapper/fedora-root rord.lvm.lv=fedora/root rd.lvm.lv=fedora/swap rhgb LANG=en_US.UTF-8
grub> initrd16 /initramfs-4.2.3-300.fc23.x86_64.img
grub> boot

启动时不再显示“无法启动 Switch Root”。这对你也有用吗?

相关内容