我可以从我的 U 盘手动启动我唯一的 Ubuntu 10.10 安装,输入以下命令:
set root=(hda0)
linux /vmlinux root=/dev/sda1 ro
initrd /initrd.img
boot
Run Code Online (Sandbox Code Playgroud)
我希望的是让 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
Run Code Online (Sandbox Code Playgroud)
感谢您的时间。
你给出的步骤接近工作,但让我评论每一步。
mkdir -p /media/GRUB2_RESCU/boot/grub
Run Code Online (Sandbox Code Playgroud)
这是完全正确的。
sudo cp /usr/lib/grub/i386-pc/* /media/GRUB2_RESCU/boot/grub
Run Code Online (Sandbox Code Playgroud)
这不是必需的,但不应该伤害任何东西(grub-install 会自动执行此操作)
echo '(hd0) /dev/sda' > /media/GRUB2_RESCU/boot/grubdevice.map
Run Code Online (Sandbox Code Playgroud)
这也不是必需的,也不应该伤害任何东西。大部分 GRUB2 不再需要 device.map。
sudo grub-install --root-directory=/media /dev/sdb
Run Code Online (Sandbox Code Playgroud)
我不知道这是否只是您写问题时的一个错字,或者这实际上是您运行的命令,但它应该是“--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
Run Code Online (Sandbox Code Playgroud)
这应该可以工作,但是每次内核升级时您都必须手动运行 grub-mkconfig 以获得更新的菜单。相反,我建议编写一个手动 grub.cfg,它只是从您的内部驱动器加载 grub.cfg,如下所示:
root=(hd0,1)
configfile /boot/grub/grub.cfg
Run Code Online (Sandbox Code Playgroud)
为确保即使驱动器四处移动也能正常工作,请更换
root=(hd0,1)
Run Code Online (Sandbox Code Playgroud)
和
search --set --fs-uuid UUID_GOES_HERE
Run Code Online (Sandbox Code Playgroud)
您可以使用此终端命令找到 UUID:
sudo grub-probe --target=fs_uuid --device /dev/sda1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2587 次 |
| 最近记录: |