是否可以使用32位Grub2启动64位ISO映像?

我正在尝试制作一个安装了多个操作系统的USB记忆棒,但希望它能在大多数计算机上运行,​​所以我确保安装了一个32位的Ubuntu版本。 我还想在最后添加一个特定的ISO并将其添加为启动选项,但发行版仅为64位。 我尝试在64位计算机上启动USB(但是从Ubuntu安装32位Grub2)并试图启动ISO(在搞乱grub配置之后)我最终得到了一个内核怪物。 我想知道是否可能因为32位启动加载程序试图启动64位操作系统或者甚至可能。

对的,这是可能的。 我做过很多次了。

如果在32位版本之后安装64位版本,并且您希望确保使用原始grub(使用32位版本安装)进行引导(在BIOS模式下),则应选择“其他” ‘在安装程序的分区窗口和窗口底部将引导加载程序安装到分区’PBR’,(例如,将要成为根分区,可能是/dev/sda3/dev/sda6 )而不是驱动器的头部’MBR’。

在此过程后重新启动时,您将只能找到32位操作系统。 运行以下命令,

 sudo update-grub 

使其搜索并找到新的64位版本并为grub菜单创建菜单条目,以便您可以选择32位和64位版本中的任何一个。

使用新内核更新和远程升级64位系统后,必须在32位系统中重复命令sudo update-grub以获取新内核版本的菜单条目。


我检查了64位Ubuntu的grub引导加载程序,它不是64位,它可以在32位计算机(我的旧戴尔Dimension 4600和Pentium 4)上工作,即使没有这个预防措施。 (一般建议将引导加载程序安装到驱动器的头部, /dev/sda/dev/sdb ……,应该没有分区号。)

如果你这样做,在使用新内核更新和分散32位系统后,你必须在64位系统中运行命令sudo update-grub来获取新内核版本的菜单项。


如果你想通过grub从一个iso文件启动,你可以通过/etc/grub.d/40_custom添加一个菜单项,然后根据以下链接和它的链接运行sudo update-grub

安装/ FromUSBStick – 使用grub2和iso文件“grub-n-iso”启动USB驱动器