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