我有 2 个磁盘:
第一个磁盘包含基本操作系统(/dev/sda 具有许多分区和操作系统)
应设置第二个磁盘(/dev/sdb1=/boot、/dev/sdb2=/)
我在基本操作系统中安装了 grub2 软件包。我想在第二个磁盘上为操作系统创建 grub.config 文件(无需在第二个磁盘上的 chroot 中安装 grub2 软件包,因为该磁盘适用于不同的体系结构。我只想重新生成配置)
如果我使用
mkdir -p /mnt/gentoo
mount /dev/sdb2 /mnt/gentoo
mount /dev/sdb1 /mnt/gentoo/boot
grub-mkconfig -o /mnt/gentoo/boot/grub/grub.cfg
那么无法指定 /dev/sdb 作为用于枚举 grub-mkconfig 已安装操作系统的基础磁盘
如果磁盘 /dev/sda 包含 N 个分区,则 grub-mkconfig 将创建 ~ N * number_of_kernels 菜单项。但我想让它为磁盘 /dev/sdb 分区(其中有一个分区 /dev/sdb2 和一个已安装的操作系统)创建条目。
我还尝试了 grub-customizer 实用程序,因为它在参数对话框中有磁盘选择。但看起来 grub-customizer 使用与所选磁盘相关的所有实用程序和文件,并且我没有在 /dev/sdb 上安装 grub2 (请参阅上面有关不同体系结构的注释)
有人告诉我,可以通过临时纠正基本系统的 fstab 来做到这一点,但我怀疑这会有帮助。
那么,如何为不同的磁盘生成grub.conf呢? (无需使用文本编辑器手动编写)
答案1
您能详细说明一下您的最终目标是什么吗?看来您对“大规模解决方案”有一种奇怪的需求,甚至更奇怪的需求。也许您正在尝试简化一些迷你 PC 的安装过程?
您可以 chroot 进入您的 sdb 操作系统(如果架构不同,也许可以使用 qemu)?如果是这样,那将是最好的选择。否则,您可以查看 grub-mkconfig 脚本的源代码并根据您的需要对其进行自定义。我看到一些相关的代码应该不难调整。