我可以从我的 USB 驱动器手动启动我唯一的 Ubuntu 10.10 安装,输入以下命令:
set root=(hda0)
linux /vmlinux root=/dev/sda1 ro
initrd /initrd.img
boot
我曾经希望是让 USB 帮我完成。无需输入...?
我按照这些网址上的指示操作(大多数都没有用)
这里还有一些相当广泛的搜索。一共有 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