因此,我使用了启动修复并删除了所有旧内核,然后我重新启动了 Toshiba Satellite,但没有像以前那样获得常规菜单条目,我只能选择一个映像并启动到 Ubuntu。现在它只给我
最小的类似 bash 的行编辑… Tab 列出了可能的命令补全…
下一行就是这个。
grub>
我不知道该怎么办,我在网上读到了一些可以尝试恢复 Ubuntu 的方法,但都没有奏效。你们能帮帮我吗?
答案1
输入以下命令并根据您的系统更改磁盘分区。
ls
set prefix=(hd0,1)/boot/grub #note: maybe (hd0,2) or (hd0,3)
set root=(loop0)
set
ls /boot
insmod /boot/grub/linux.mod
linux /vmlinuz root=/dev/sda1 loop=/ubuntu/disks/root.disk ro #note: maybe sda2 or sda3 to match #2 above.
initrd /initrd.img
boot
当你启动 Ubuntu 并运行后,update-grub
问题应该会得到解决。有关更多详细信息,请访问http://ubuntuforums.org/showthread.php?t=1599293。
答案2
经过一些调整,我让它工作了。
这是我所做的:
Grub> ls
我得到了不同的分区。
Grub> ls (hd0,msdos1)
这显示了我的硬盘上的文件,所以这对我来说是正确的分区。
然后我做了:
Grub> set root=(hd0,msdos1)
Grub> set prefix=(hd0,msdos1)/boot/grub
Grub> set
Grub> ls /boot #this returned a list of files/folders in /boot
Grub> linux /vmlinuz root=/dev/sda1
Grub> initrd /initrd.img
Grub> boot
经过几分钟的运行,grub 启动到 busybox shell,我可以在那里运行fsck /dev/sda1
,然后按几次“y”,Ubuntu 就可以正常启动了!
答案3
按照 Zach 的步骤,我在 Busybox 启动后收到此错误
ALERT! /dev/sda1 does not exist
然后我需要运行:
> blkid
这给了我卷的实际名称。在我的例子中,我需要的卷名为/dev/nvme0n1p9
(来源:https://www.youtube.com/watch?v=kilXfY-k_9A)
因此我必须执行的指令如下:
Grub> set root=(hd0,gpt9)
Grub> set prefix=(hd0,gpt9)/boot/grub
Grub> set
Grub> ls /boot #this returned a list of files/folders in /boot
Grub> linux /boot/vmlinuz root=/dev/nvme0n1p9
Grub> initrd /boot/initrd.img
Grub> boot