如何手动安装 GRUB2 到引导分区?

启动讨论 grub/grub2/syslinux/grub4dos/Lilo
回复
DOSforever
帖子: 13
注册时间: 2012-10-06 12:24

如何手动安装 GRUB2 到引导分区?

#1

帖子 DOSforever » 2024-04-10 12:36


由于 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 问题?
xenomorph0525
帖子: 524
注册时间: 2009-11-21 20:29

Re: 如何手动安装 GRUB2 到引导分区?

#2

帖子 xenomorph0525 » 2024-04-10 19:48

我做過很多次,我是用 Live DVD 開機並掛載目標分割區後,下以下指令(適用MBR分割):
sudo grub-install --target=i386-pc --boot-directory=/掛載路徑/boot /dev/磁碟代號
回复