我正在尝试设置一个专用的 GRUB2,它在具有 GPT 分区表的磁盘上(链式)加载另一个 GRUB。
相关分区:
- /dev/sda1 BIOS_BOOT
- /dev/sda2 启动 (ext2)
- /dev/sda3 FEDORA (ext4)
- /dev/sda6 DEBIAN (ext4)
我首先安装了 Fedora,使用 /dev/sda2 作为启动分区。然后我安装了 Debian。Debian 安装程序识别了 Fedora 安装并将其添加为启动项,然后将其 GRUB 安装到 MBR 中。虽然这暂时可行,但它相当混乱,因为每次 Debian 更新都可能更改启动配置,删除 Fedora 项(试过)并反之亦然。这就是为什么我希望两个系统都有自己的引导加载程序和一个主引导加载程序(可以驻留在 /dev/sda2 上),它会加载其中一个。
这是我尝试过的:
- 将所有内容从 /dev/sda2 移至 /dev/sda3/boot
- 在 Fedora 中删除了 /boot 挂载点(因此 /dev/sda2 不再使用)
- 从实时 Linux,将 GRUB2 安装到 MBR(grub-install --boot-directory=sda2 /dev/sda)
- 写了一个menu.lst:
- 标题 Fedora
- 根(hd0,2)
- 链式装载机 +1
- (同样适用于 Debian)
- 将其转换为 grub.cfg 脚本(grub-menu2cfg 或类似脚本)
- 启动时,实际上会出现一个带有“Fedora”(和“Debian”)的 GRUB2 菜单
- 选择其中任何一个时:
- 错误:无效签名
- 从各种实时 Linux 系统发出“grub-install /dev/sda6”(和 ...sda3),全部失败并出现另一条错误消息(对于 Debian 安装程序,没有任何解释)
- 在 chainloader 行中添加了 --force,现在它显示“正在加载”,然后重新启动
- 找到了几十个指南,但似乎都不适合我
编辑:
忘记了这个(相当广泛的)问题。
据我所知,我从另一个 Fedora 安装中找到并复制了一些文件,以使引导加载程序正常工作。此外,我创建了一个指向当前 Linux 映像的符号链接,并将其放入第一个/主 GRUB 配置中,因此它将始终引导这个特定的内核。
我认为这个问题对于有类似问题的人来说没有任何价值,因此它可能会被删除。
答案1
外部 SSD 也存在类似问题。它只能从内部磁盘启动。如果未连接外部磁盘,系统将无法启动。
我刚刚发现 bootinfoscript 并得到了一些有趣的输出(与此处发布无关) - 但至少它给出了一个线索,表明我的想法和 grub2 的想法完全不同。
也许该工具对您有帮助。