我正在尝试制作一个安装了多个操作系统的 USB 记忆棒,但希望它能够在大多数计算机上运行,所以我确保安装了 32 位 Ubuntu 版本。我还想在最后放置一个特定的 ISO 并将其添加为启动选项,但发行版仅提供 64 位。我尝试在 64 位计算机上启动 USB(但 Ubuntu 安装的 32 位 Grub2)并尝试启动 ISO(在弄乱 grub 配置后),我最终立即得到了一个内核怪胎。我想知道这是否可能是因为 32 位引导加载程序正在尝试启动 64 位操作系统,或者是否有可能。
我正在尝试制作一个安装了多个操作系统的 USB 记忆棒,但希望它能够在大多数计算机上运行,所以我确保安装了 32 位 Ubuntu 版本。我还想在最后放置一个特定的 ISO 并将其添加为启动选项,但发行版仅提供 64 位。我尝试在 64 位计算机上启动 USB(但 Ubuntu 安装的 32 位 Grub2)并尝试启动 ISO(在弄乱 grub 配置后),我最终立即得到了一个内核怪胎。我想知道这是否可能是因为 32 位引导加载程序正在尝试启动 64 位操作系统,或者是否有可能。
对的,这是可能的。我已经做过很多次了。
如果您在 32 位版本之后安装 64 位版本,并且您想确保使用原始 grub(安装 32 位版本)进行引导(在 BIOS 模式下),您应该选择 'Something else ' 在安装程序的分区窗口和窗口底部将引导加载程序安装到分区“PBR”(例如,将成为根分区,可能是
/dev/sda3
或/dev/sda6
)而不是驱动器,“MBR”。当您在此过程后重新启动时,您将只能找到 32 位操作系统。运行以下命令,
使其搜索并找到新的 64 位版本并为 grub 菜单创建菜单条目,以便您可以选择 32 位和 64 位版本。
使用新内核更新和升级 64 位系统后,您必须
sudo update-grub
在 32 位系统中重复该命令以获取新内核版本的菜单条目。我检查了 64 位 Ubuntu 的 grub 引导加载程序,它不是 64 位的,即使没有这种预防措施,它也可以在 32 位计算机(我的旧戴尔 Dimension 4600 和 Pentium 4)上运行。(一般建议将引导加载程序安装到驱动器的头部
/dev/sda
,/dev/sdb
...,应该没有分区号。)如果您采用这种方式,在使用新内核更新和升级 32 位系统后,您必须
sudo update-grub
在 64 位系统中运行该命令以获取新内核版本的菜单条目。如果你想通过 grub 从 iso 文件启动,你可以通过添加一个菜单项
/etc/grub.d/40_custom
,然后sudo update-grub
根据以下链接和其中的链接运行,安装/FromUSBStick - 使用 grub2 和 iso 文件“grub-n-iso”引导 USB 驱动器