在我的 ubuntu 机器上双启动 Windows 后,我无法访问 ubuntu(卡在 grub2/initramfs)

在我的 ubuntu 机器上双启动 Windows 后,我无法访问 ubuntu(卡在 grub2/initramfs)

我尝试将 Windows 双启动到我的 20.04 Ubuntu 机器上。成功安装 Windows 后,我发现我无法再访问 Ubuntu。

现在的状态:

  • 我进入bios并选择ubuntu启动。
  • 选择 ubuntu 后,将提示 grub2 命令行。
  • 如果我运行,grub> exit我将退出 grub 并且 windows 操作系统会被加载。
  • 在网上搜索后我发现有一种方法可以通过 grub2 启动。
  • 如果我运行建议的命令:
grunb> set root=(hd1,msdos5)
grunb> linux /boot/vmlinuz-5.13.0-39-generic root=/dev/nvme1n1p5 ro
grunb> initrd /boot/inintrd.img-5.13.0-39-generic
grunb> boot
  • 接下来,ubuntu 似乎开始加载但卡在了(initramfs)并且之前有一些值得注意的错误行:
Begin: running /script/int-bottom ... mount: mounting /dev on /root/dev
Mounting: mounting /dev on /root/dev failed: no such file or directory
done.
Mounting: mounting /dev on /root/dev failed: no such file or directory
run-init: can't execute '/sbin/init': no such file or directory
target filesystem dosen't have requested /sbin/init
run-init: can't execute '/sbin/init': no such file or directory
run-init: can't execute '/etc/init': no such file or directory
run-init: can't execute '/bin/init': no such file or directory
run-init: can't execute '/bin/sh': no such file or directory
run-init: can't execute '': no such file or directory
No init found. Try passing init= bootarg

(initramfs)

更多数据:

  • 甚至在我添加windows之前,ubuntu会先加载grub命令行,然后我就要输入grub>exit才能进入ubuntu。
  • 我使用新的 m.2 512GB 磁盘来安装 Windows。
  • 我可以使用 Grub ls 命令查看 Ubuntu 分区的所有文件和目录。
  • 一些grub> ls命令输出:
Grub> ls
(proc) (hd0) (hd0,gpt5) (hd0,gpt4) (hd0,gpt3) (hd0,gpt2) (hd0,gpt1) (hd1) (hd1,msdos5) (hd1,msdos1)

Grub> ls (hd1,msdos5)/
lost+found/ boot/ swampfile etc/ media/ var/ bin dev/ home/ lib lib32 lib64 libx32 mnt/ opt/ proc/ root/ run/ sbin snap/ srv/ sys/ tmp/ usr/ cdrom/
-(My ubuntu partition)

Grub> ls (hd0,gpt2)/
efi/

Grub> ls (hd0,gpt4)/
/Program File /Program File (x86) ...
- (My Windows partition...)

Grub> ls (hd1,msdos1)/
efi/ System Volume Information/ $recycle.bin/ Recovery
- (ubuntu efi boot?)
Grub ls (hd1,msdos1)/efi/
ubuntu/ boot/

  • 一些grub> set命令输出:
Grub> set
cmdpath=(hd1,msdos1)/EFI/UBUNTU
grub_cpu=x86_64
grub_platform=efi
lang=
locale_dir=
prefix=(hd1,msdos1)/boot/grub
root=hd1,msdos1

一些失败的方法:

  • 我尝试在 Live CD 上启动 Linux 并更新 grub
  • 我尝试使用启动修复
  • 我尝试将这些行添加到 grub 中:
Grub> set prefix=(hd1,msdos5)/boor/grub
Grub> insmod normal
Grub> normal
  • 我尝试将 linux 命令的根文件夹更改为root=/dev/sda1 ro。据我所知,我应该使用 ,nvme1n1p5因为我的磁盘是 m.2 类型。
  • 我曾在某处看到过,无法使用 UEFI 双启动旧版 BIOS,因此我应该在 BIOS 中更改此设置。但所有相关选项均位于“仅限旧版 BIOS”上

所以,这是我最后一次痛苦的双启动经历。我希望我已经说得足够清楚了。如果你需要任何其他信息,请告诉我。当然,非常感谢你愿意帮助我 :)

更新:

阅读启动修复报告后: https://paste.ubuntu.com/p/VG5skMbhVk/ 我意识到在 Grub 的第二行我应该写nvme0n1p5的不是nvme1n1p5“目前,我已成功启动到我的 ubuntu”。

现在我还不确定如何更新 grub。我的最终目标是,打开电脑时,会出现一个带有 ubuntu 和 windows 的 grub 菜单。

相关内容