从 USB 启动现有的 sda1

从 USB 启动现有的 sda1

我可以从我的 USB 驱动器手动启动我唯一的 Ubuntu 10.10 安装,输入以下命令:

set root=(hda0)
linux /vmlinux root=/dev/sda1 ro
initrd /initrd.img
boot

我曾经希望是让 USB 帮我完成。无需输入...?

我按照这些网址上的指示操作(大多数都没有用)

可启动 USB 救援棒上的 grub

如何将 GRUB 2 安装到 USB 驱动器/U盘

GRUB2 和 USB 闪存驱动器

如何恢复 GRUB2 Linux

这里还有一些相当广泛的搜索。一共有 10 页,每页 50 个。我尽我所能,现在求助于专家。

到目前为止,使 USB 启动到 grub2 所用步骤的总结...

mkdir -p /media/GRUB2_RESCU/boot/grub
sudo cp /usr/lib/grub/i386-pc/* /media/GRUB2_RESCU/boot/grub
echo '(hd0) /dev/sda' > /media/GRUB2_RESCU/boot/grubdevice.map
sudo grub-install --root-directory=/media /dev/sdb
sudo grub-mkconfig -o /media/GRUB2_RESCU/boot/grub/grub.cfg

感谢您的时间。

答案1

您给出的步骤已经接近有效,但请允许我对每个步骤进行评论。

mkdir -p /media/GRUB2_RESCU/boot/grub

这是完全正确的。

sudo cp /usr/lib/grub/i386-pc/* /media/GRUB2_RESCU/boot/grub

这不是必需的,但不会损害任何东西(grub-install 会自动执行此操作)

echo '(hd0) /dev/sda' > /media/GRUB2_RESCU/boot/grubdevice.map

这也是不必要的,也不会造成任何损害。GRUB2 大部分不再需要 device.map。

sudo grub-install --root-directory=/media /dev/sdb

我不知道这是否只是您写问题时的拼写错误,或者这是否是您实际运行的命令,但它应该是“--root-directory /media/GRUB2_RESCU/”。否则 grub 将安装其模块,并在 /media/boot/grub(不在闪存驱动器上)而不是 /media/GRUB2_RESCU/boot/grub/ 中查找其 grub.cfg。这可以解释为什么您尝试的方法不起作用。

sudo grub-mkconfig -o /media/GRUB2_RESCU/boot/grub/grub.cfg

这应该可行,但每次内核升级时,您都必须手动运行 grub-mkconfig 才能获得更新的菜单。相反,我建议编写一个手动 grub.cfg,它只会从您的内部驱动器加载 grub.cfg,如下所示:

root=(hd0,1)
configfile /boot/grub/grub.cfg

为了确保即使驱动器移动也能正常工作,请更换

root=(hd0,1)

search --set --fs-uuid UUID_GOES_HERE

您可以使用以下终端命令找到 UUID:

sudo grub-probe --target=fs_uuid --device /dev/sda1

相关内容