Ubuntu 22.04需要UEFI而非BIOS吗?

我正在尝试在几台旧机器上安装22.04版本。它们都使用BIOS而不是UEFI。两台机器都无法从我创建的USB启动盘引导。其中一台显示“找不到操作系统”的消息。另一台则显示“重新启动并选择正确的启动设备,或插入引导介质到所选的启动设备并按下一个键”。同样的USB启动盘中包含的Ubuntu 20.04.4版本可以在这些机器上正常启动。请问Ubuntu 22.04版本是否需要UEFI支持,还是这是一个错误?
相关机器信息如下:
- Dell XPS L702X笔记本电脑,Intel Core i5-2450M处理器,8GB内存 - 自组装计算机,搭载Asus P5Q-EM主板,Intel Core 2 Duo处理器,4GB内存

@jim 你用什么操作系统来创建USB驱动器?谢谢。 - Jags
@Jags,我是在一台运行Ubuntu 18.04.6 LTS的机器上创建了这些USB驱动器。 - Jim
1尝试使用此ppa中的mkusb实用程序创建USB驱动器:https://launchpad.net/~mkusb/+archive/ubuntu/unstable。一旦您在`Ubuntu 18.04.6 LTS机器上安装了mkusb,请使用mkusb > dus`选项准备闪存驱动器。如果这对您有用或者您需要关于mkusb的帮助,请告诉我们。谢谢。 - Jags
1你在刷机之前验证了下载的ISO吗?你需要确保校验和匹配以验证下载的完整性。一旦你做到了这一点,你就可以将ISO刷写到USB闪存驱动器上。官方教程推荐使用Etcher来刷写ISO。使用Etcher刷写的USB安装介质可以作为UEFI或传统BIOS启动。 - Nmath
@Nmath,我验证了ISO的校验和。我使用启动磁盘创建器将ISO写入了两个不同的闪存驱动器。 - Jim
3@jim 许多非UEFI BIOS计算机在Ubuntu 20.10 Groovy之后无法引导。对于其中一些计算机来说,mkusb或者Rufus(用于在Windows PC上准备USB驱动器)是引导Ubuntu 20.10及以后版本的唯一选择。这里有一个详细描述该问题的错误报告:https://bugs.launchpad.net/ubuntu-cdimage/+bug/1899308 - Jags
@Jags,谢谢你提供的错误报告链接。那解答了我很多疑问。 - Organic Marble
戴尔笔记本电脑采用UEFI,因此应该在UEFI模式下安装。 - ChanganAuto
@长安汽车,我认为这台笔记本电脑使用的是BIOS,因为主BIOS设置屏幕显示的是"BIOS版本A17"。 - Jim
它被设置为“BIOS”/传统模式,与同一时期预装Windows 7的所有消费级计算机一样。实际上,它是UEFI,并且应该在UEFI模式下安装。实际上,有一个非常新的固件更新,你应该安装,发布于2020年(最新的Windows驱动程序发布于2013年)。 - ChanganAuto
1@长安汽车,你说的“应该以UEFI模式安装”是什么意思?在BIOS设置选项中没有传统/BIOS/UEFI模式控制,据我了解,由启动盘创建工具制作的USB驱动器应该可以在UEFI机器上使用。 - Jim
1很有可能存在一个CSM设置(CSM = Legacy),它说“BIOS版本…”是无关紧要的,“BIOS”在UEFI成为主流和普及十年后,仍然被错误地使用,用来指代UEFI。而且,你应该将“BIOS”更新到最新可用版本。是的,任何使用dd工具生成的安装介质都应该可以引导,但上述错误很可能影响旧的BIOS机器和一些早期(常常是“有问题”的)UEFI实现。同样,mkusb应该可以解决这个问题。 - ChanganAuto
1@Jim,你试过用Jags建议的mkusb了吗?在这种情况下,请注意克隆(制作一个仅限于实时使用的驱动器)将与Ubuntu启动盘创建器做相同的事情。所以你应该使用不稳定PPA中的mkusb-dus(版本12.7.5)并制作一个持久化的实时驱动器。这可能对你有用,因为它具有与从Ubuntu 22.04 LTS克隆的驱动器不同的引导结构(另一个grub版本)。请参阅此链接 - sudodus
从*buntu 20.10开始,这个UEFI部分真是让人烦恼。即使在BIOS模式下启动了Live系统,安装程序也想要创建一个EFI文件系统并要求GPT。 - nobody
@sudodus,我安装了12.7.5版本,并选择了“持久化模式”。在msdos/upefi/d-n-i窗口中,我点击了“使用默认值”。对于空间大小,我选择了“使用默认值”。当我点击“开始”时,似乎没有任何反应。mkusb-dus立即返回到“克隆、启动、持久化、提取”菜单。控制台中的最后一条消息是“Usage: sudo -H /usr/sbin/dus-persistent”,然后是“p_clean:”。 - Jim
嗨 @jim,我刚刚发布了一个答案,因为在评论中描述起来太长了。有几种方法可以使用mkusb / dus创建可启动的USB驱动器。我已经发布了一个选项-1的答案,并正在撰写另一个答案。如果你遇到任何问题,请告诉我们。谢谢。 - Jags
1@jim,我认为你错过了“在窗口上选择‘Go’(单选按钮),然后点击窗口右下角的‘Go’按钮。”Jags在完整的答案中很好地描述了这一点。 - sudodus
2个回答

自从Ubuntu 20.10 Groovy版本以来,许多非UEFI、仅支持BIOS的机器无法启动Ubuntu ISO。为了为这些机器创建可引导的USB驱动器,您需要使用mkusb > dus、iso2usb > dus或Rufus工具。

https://bugs.launchpad.net/ubuntu-cdimage/+bug/1899308

https://bugs.launchpad.net/mkusb/+bug/1971119

创建可启动的USB驱动器:

在Windows机器上:

如Ubuntu.com的iso2usb页面所述,Rufus是官方推荐的从Windows安装Ubuntu的工具。

1、从此页面下载Rufus实用程序:https://rufus.ie/en/

2、右键单击rufus-3.18.exe(或更高版本),然后点击以管理员身份运行

3、现在在Rufus窗口中:

3.1、设备:确保选择正确的USB驱动器,例如:USB驱动器[64 GB]

3.2、引导选择:点击选择,然后找到Ubuntu iso文件,例如:ubuntu-mate-22.04-desktop-amd64.iso(或任何其他Ubuntu版本)

3.3,分区方案:MBR

3.4,目标系统:BIOS或UEFI

3.5,其余选项保持不变,点击开始

4,检测到ISOHybrid镜像:选择(单击单选按钮)以ISO镜像模式写入(推荐)

5,警告:设备USB驱动器[64 GB]上的所有数据将被删除。

确保您已选择正确的USB驱动器,然后点击确定

6,这将需要大约5-7分钟才能完成。完成后,关闭Rufus窗口并安全地移除USB驱动器。

7,将新创建的可引导USB驱动器连接到目标机器,重新启动机器,并从BIOS的启动菜单中选择USB驱动器。

8,当您看到Grub菜单时,选择尝试或安装Ubuntu MATE以从USB驱动器引导机器。

在Ubuntu机器上:

安装mkusb:

要为非UEFI机器创建可启动的USB驱动器,请添加此mkusb unstable ppa以安装最新版本12.7.5-1ubuntu1
sudo add-apt-repository ppa:mkusb/unstable
sudo apt-get update
sudo apt-get install mkusb
创建可启动的USB驱动器:

用于非UEFI机器,您可以通过几种不同的方式为Ubuntu 22.04 Jammy创建可启动的USB驱动器。

选项1:mkusb > dus

1、从开始菜单打开mkusb

2、在运行mkusb版本dus?上点击

3、输入密码

4、在执行USB操作;欢迎和关于覆盖的提示窗口上点击确定

5、选择安装(制作引导设备)并点击确定

6、选择Persistent-live - 仅适用于Debian和Ubuntu并点击确定

7、将打开一个新窗口;定位并选择源ISO文件;

8、最重要的:选择目标设备:sdx(在设备下方)| Kingston_Ultimate(目标名称/型号)| 58.6G(大小)并点击确定

9,确认:'/dev/sdx' 驱动器大小 = 63 GB。请再次检查! 您真的要覆盖此目标设备吗? 确保目标设备是正确的USB驱动器,并点击 10,持久化启动驱动器设置:选择msdosupefi,然后点击确定 11,选择持久化空间(百分比):40%(您可以选择不同的数字),然后点击确定 12,最终检查点,是否继续?确保:(a)源ISO是正确的(b)目标设备是正确的USB驱动器/dev/sdx(c)正确的设备名称在那里列出:Kingston_Ultimate 在窗口上选择开始(单选按钮),然后点击窗口右下角的开始按钮。
12,从这一点开始创建可引导的USB驱动器大约需要5-7分钟。
13,当mkusb完成安装时,您将看到一个完成窗口:
`Work done with /dev/sdx`

`The target device is ready to use.
'/path/to/iso/ubuntu-mate-22.04-desktop-amd64.iso was installed`

Click `OK` > `Quit` > `Quit` (again) > `Press Enter to finish`.

14、将新创建的可启动USB驱动器连接到目标机器,重新启动机器,并从BIOS的启动菜单中选择USB驱动器。

15、当您看到Grub菜单时,请选择Ubuntu persistent-live(或类似选项)以从USB驱动器引导机器。

选项2:iso2usb > dus

现在,一些非UEFI机器可能无法使用上述描述的mkusb > dus选项启动Ubuntu 22.04 Jammy,因为它们可能需要msdos分区表。对于这些机器的处理过程如下:

1、按照iso2usb页面上所述和链接的方法,获取grub引导模板文件:

https://phillw.net/isos/linux-tools/uefi-n-bios/dd_grub-boot-template-for-uefi-n-bios_msdos.img.xz

2、使用 GParted 将闪存驱动器格式化为 FAT32,并记录下其分区名称,例如:sdx。
3、现在使用 dus 将先前下载的 img.xz 文件安装/提取到 USB 闪存驱动器中:
打开终端,在您下载了 img.xz 文件的位置运行。
dus dd_grub-boot-template-for-uefi-n-bios_msdos.img.xz

4、输入密码。
5、在显示“Do USB Stuff”的窗口上点击“确定”。
Welcome and Notice about Overwriting
The target device will be completely overwritten

6,最重要的是:
选择目标设备:sdx(在设备下)| Kingston_Ultimate(目标名称/型号)| 58.6G(大小),然后点击“确定”。
7,确认:请再次检查 '/dev/sdx'驱动器大小= 63 GB。请再次检查! 您真的想要覆盖此目标设备吗? 确保目标设备是正确的USB驱动器,并点击“是”。
8,最后的检查点,可以继续吗?确保:
(a) 源文件是正确的: dd_grub-boot-template-for-uefi-n-bios_msdos.img.xz (b) 目标设备是正确的USB驱动器 /dev/sdx (c) 正确的设备名称/型号在那里列出: Kingston_Ultimate 在窗口上选择“Go”(单选按钮),然后点击窗口右下角的“Go”按钮。
9,完成将img.xz提取到USB驱动器的过程大约需要5-7分钟。
10,检查结果(如果可能,请滚动),按Enter键完成:
The target device is unmounted and you can unplug it.
The system might not see the current partition table of the
target device unless you re-plug it.

点击 确定

11、拔出并重新插入USB驱动器。

12、将Ubuntu MATE 22.04 Jammy(或任何其他版本的Ubuntu)iso复制到USB驱动器的ISODEVICE分区中。

13、一旦iso被复制,将其重命名为:ubuntu.iso

14、将新创建的可启动USB驱动器连接到目标计算机,重新启动计算机,并从BIOS的启动菜单中选择USB驱动器。

15、当您看到Grub菜单时,请选择Ubuntu.iso以从USB驱动器引导计算机。


1对于这些详细的说明,给个赞!:-) - sudodus
1感谢您的回答。Mkusb制作了一个可以在Asus主板上启动的驱动器,但无法在Dell笔记本电脑上启动。而Rufus制作的驱动器则可以在两台机器上都启动。 - Jim
1@ Jags 和 @ Jim,这个链接到我在Ubuntu论坛上的帖子 介绍了一个新版本的mkusb,其中包含一个早期版本的脚本 **dus-iso2usb**。我认为并希望它能够解决一些问题,即在使用新的Ubuntu版本时,克隆的实时(和持久化实时)驱动器很难启动的问题。请测试一下,并告诉我它在你的电脑上是否有效以及如何操作。 - sudodus
@sudodus 非常感谢,我会在一天内向您汇报。 - Jags
1感谢您提供如此详细的说明。在一台旧的Toshiba A660上,i5/4Gb,使用Ubuntu 22的所有方法都无法工作。mkusb显示“无法从USB启动...”(与其他所有方法- Balena、WoeUSB一样),由Rufus创建的USB稍微进展了一些,但仍然出现GRUB错误“未知文件系统,紧急模式”。 使用上述软件之一,Ubuntu 18可以正常启动,没有任何问题。 也许放弃新的发行版是个好主意,这太麻烦了,而且说实话有点可悲,新的发行版不应该支持一些稍旧的系统(毕竟这不是1980年制造的电脑)。 - Volodymyr Metlyakov

在搜索如何制作Lubuntu 22.04持久化USB时发现了这篇文章。如果你只是想让ISO可启动,可以使用Ventoy。虽然Jags的回答很详细,但还是要给他点赞。我已经测试过Ventoy可以在我的Acer One Happy上启动Lubuntu 22.04。只需解压并运行.exe(Windows)或.sh(Linux),然后将ISO复制到标记为“ventoy”的磁盘即可。 附言:抱歉回答不够详细,也请原谅我的英语。 只是分享一下。我启动了Lubuntu 22.04,并尝试将其安装为已安装Win11的双重引导。当分区时,Lubuntu坚持要重新格式化整个磁盘为GPT,并承诺会创建8MB的BIOS可启动分区。然后我取消了它。