由于 Ubuntu 无法在安装时选择 GRUB 不装或安装到什么位置,所以我用的是 Rocky Linux 8.9 版做的试验。
Linux 的分区结构如下,/dev/sdb5 为 /boot 分区
|-sdb5 8:21 0 512M 0 part /mnt/sysroot/boot
`-sdb6 8:22 0 7.5G 0 part
|-rl-root 253:2 0 6G 0 lvm /mnt/sysroot
`-rl-swap 253:3 0 1.5G 0 lvm [SWAP]
安装时在 SELECTED DISK AND BOOT LOADER 界面上特意 remove 了目标磁盘的 Boot 勾选项。
安装好后确实无法启动 Linux ,再次用安装光盘启动,进入 Troubleshooting 菜单项
执行 grub2-install 命令安装 grub2 到 /dev/sdb5 分区
代码: 全选
sh-4.4# grub2-install -d /mnt/sysroot/usr/lib/grub/i386-pc/ /dev/sdb5
Installing for i386-pc platform.
grub2-install: error: hostdisk//dev/sdb appears to contain a xfs filesystem which isn't known to reserve space for DOS-style boot. Installing GRUB there could result in FILESYSTEM DESTRUCTION if valuable data is overwritten by grub-setup (--skip-fs-probe disables this check, use at your own risk).
看来由于默认的文件系统使用的是 xfs ,安装失败。
再次重新安装系统,这次所有分区全都格式化为 ext4
然后再次进入 Trubleshooting 模式
再次执行 grub2-install 命令安装 grub2 到 /dev/sdb5
代码: 全选
sh-4.4# grub2-install -d /mnt/sysroot/usr/lib/grub/i386-pc/ /dev/sdb5
Installing for i386-pc platform.
grub2-install: warning: File system `ext2' doesn't support embedding.
grub2-install: error: embedding is not possible, but this is required for cross-disk install.
那么,究竟该如何手动安装才能把 GRUB 安装到 /boot 分区?
如何 reserve space for DOS-style boot ?怎么会有 cross-disk install 问题?