我最近安装了错误的 Ubuntu 19.10(连续的全新安装也会出现同样的问题)。我可以毫无问题地启动 GRUB,但从那里尝试启动 Ubuntu 本身时,我只会看到紫色屏幕。
我尝试了在其他地方找到的几种解决方案,包括尝试通过 Live USB 修复它,但都无济于事。
我目前取得的最大进展是指定根、Linux 和 initrd 的位置并告诉它启动。
但由于某种原因,initramfs 告诉我“未指定根设备。启动参数必须包含 root=parameter。”
我已经告诉它根是什么,那又怎么样呢?
(由于我对 Linux 还不是太熟悉,所以请耐心等待)
答案1
我跟着本具体指南为我修复此问题的方法是按照以下说明进行操作:
- 找出您的系统所在的分区。您可以键入以下命令
ls
来查看所有驱动器,然后ls (hdX,gptX)
查看其中一个分区的内容。 - 确定正确的分区(我的分区是
(hd3,gpt3)
)后,下一步就是确保前缀设置正确。您可以通过输入来set
显示所有设置的变量。本教程展示了前缀设置不正确的示例。 - 如果您的分区设置不正确,请使用 设置正确的分区
set prefix=(hd3,gpt3)/boot/grub
。使用您的分区详细信息。 - 之后,使用 设置根值
set root=(hd3,gpt3)
。使用您的分区值。 insmod normal
- 不确定这有什么用,但他的教程说它会加载一个模块。- 下一步将
linux /boot/vmlinuz-XXXXXXXXX root=/dev/sdd3 ro
根据您的机器上的情况进行操作。
⚠️您应该设置为 root 的值会有所不同,具体取决于您在硬盘驱动器的哪个分区上安装了操作系统。
就我而言,我将硬盘分成 5 个部分,并将第 3、4 和 5 部分用于我的 Ubuntu 机器。第 3 部分包含操作系统,第 4 部分包含我的交换文件,第 5 部分包含我的硬盘数据。(如果您已处于桌面会话中,您可以使用它来查看lsblk
文件的分区方式以及分配的大小)。
我之所以使用,sdd3
是因为保存操作系统的分区位于驱动器的第三个分区上sdd
。这似乎是导致我进入 initramfs 时未指定 root 的缺失部分。
- 然后做
initrd /boot/initrd-XXXXXXX
。 - 最后,
boot
。
如果有其他 unix/linux/ubuntu 专家可以更清楚地解释我可能没有解释清楚的内容,请随时编辑此消息。