我的分区表是这样的。
/dev/mmcblk1p1 2048 6143 4096 2M BIOS boot
/dev/mmcblk1p2 6144 4200447 4194304 2G Linux filesystem
/dev/mmcblk1p3 4200448 16783359 12582912 6G Linux filesystem
我正在从 BIOS 模式启动。设备不支持 UEFI。
我有两个相同的设备。在设备上,grub 正在从 " /dev/mmcblk1p2
"获取配置/boot/grub/grub.cfg
。
在设备 BI 上复制分区中的内容/dev/mmcblk1p2
和/dev/mmcblk1p3
.
然后我在设备 B 上安装了 grub:
grub-install /dev/mmcblk1
在设备上 Grub 已正确安装。
在 grub 菜单中,我可以正确选择要启动的分区。但是 grub 正在从 grub.cfg/dev/mmcblk1p3
而不是/dev/mmcblk1p2
.
我想安装 grub,/dev/mmcblk1p2
因为这是我的“恢复”分区。
我已经启动到不同的分区并运行了,但它对 grub将从哪个分区获取文件grub-install /dev/mmcblk1
没有任何影响。
我还从 U 盘启动并从那里运行命令。 grub.cfg
问题:如何让 grub 使用/boot/grub/grub.cfg
from/dev/mmcblk1p2
而不是/dev/mmcblk1p3
?
我已经看到了这个 Stackoverflow 问题,但它并没有进一步帮助我。
考虑使用标志
--boot-directory
明确告诉 GRUB 你想要你的 grub.cfg请注意,如果您将其安装在当前 root 以外的文件系统上,您需要chroot进入它或挂载它并使用
--boot-directory
否则,当 grub-install 运行时,默认情况下它会将代码写入指向当前根分区上的 \boot 的 MBR...
例子:
对于 chroot 选项,您可以在此处遵循示例:
https://howtoubuntu.org/how-to-repair-restore-reinstall-grub-2-with-a-ubuntu-live-cd