32位UEFI引导支持

我最近购买了一台Dell Venue 8 Pro。我在网上看到了关于如何引导进入Ubuntu或其他Linux发行版的信息。从我收集到的信息来看,真正需要做的是支持32位UEFI。我从多个网站获取了信息,但总结得最好的是以前的这篇帖子:

http://ubuntuforums.org/showthread.php?t=2187204

Ubuntu没有32位UEFI安装程序,请要求他们添加支持,他们可能会倾听。
那个帖子特别是关于让Dell Venue 8/11 Pro启动Linux的。然而,有一大批新的平板电脑正在推出,运行32位UEFI,我认为这是一个将继续增长的趋势。

mjg59.dreamwidth.org/26734.html

UEFI在IA32上并不会消失。随着时间的推移,它将出现在更多的嵌入式系统中。
其他人之前也尝试过这个,但成功与否参半,并没有完全做到事事顺利:

https://www.happyassassin.net/2013/11/24/the-fedlet-revived-or-fedora-linux-on-a-dell-venue-8-pro-bay-trail/

"这个方法并不是完全有效,但它非常接近。"

我正在尝试开启一个专门讨论32位UEFI支持的主题帖,因为这是缺失的一部分(根据我的理解)。我并不真正知道如何处理这些东西,但我希望一些懂行的人能够阅读这篇文章,要么联系Canonical,要么以某种方式修补Ubuntu(或者其他任何发行版),使其能够按照这种方式工作。再次强调,我并不真正知道如何做到这一点...我只是希望有人能够帮助!

Dell Venue 8、11 Pro、Toshiba Encore、Acer w3、w4、Lenovo miix和asus transformer a100都是受影响的平板电脑...我认为一旦它们的价格下降,这些平板电脑将会非常受欢迎,并且我认为人们真的会对在这些设备上安装Linux感兴趣。任何帮助都将不胜感激,非常感谢大家!

编辑于2014年4月1日:刚刚在我的DV8Pro上成功引导进入Ubuntu!你只需要按照这里的说明操作即可:

http://www.jfwhome.com/2014/03/07/perfect-ubuntu-or-other-linux-on-the-asus-transformer-book-t100/

总结一下,你需要做的是下载最新的Ubuntu 14每日构建版本(我用的是AMD 64),然后通过Rufus将其放在一个USB驱动器上。在“分区方案和目标系统类型”中选择“适用于UEFI计算机的GPT分区方案”。你可以在这里获取最新的每日构建版本:http://cdimage.ubuntu.com/daily-live/current/ 你需要将以下文件放入EFI/Boot目录中:https://github.com/jfwells/linux-asus-t100ta/raw/master/boot/bootia32.efi 禁用Secureboot等功能-如果不知道如何操作,请按照原始指南链接进行操作。然后在BIOS中将USB设为首选启动项。这样就可以进入GRUB界面了。
剩下的部分我将引用原作者的话,非常简单明了:
在GRUB菜单中,将“尝试Ubuntu”选项高亮显示,并按下“e”键进行编辑。在编辑屏幕中,向下滚动到命令行选项,找到“quiet splash”。删除“splash”,并替换为: video=VGA-1:1368x768e reboot=pci,force [编辑:对于使用Dell Venue 8 Pro的用户,您需要使用以下行: video=VGA-1:800x1280e reboot=pci,force 这适用于不同分辨率的屏幕。]
然后按F10键启动。您应该能够完全进入桌面。
就是这样!这使我成功进入了Unity桌面。问题:无线网络不工作,但我使用了一个以太网适配器,它似乎可以工作。
我尝试旋转屏幕,但会导致触摸输入偏移,所以我放弃了。
请确保阅读前面提到的教程,它更加全面,尽管是为ASUS T100设计的。如果没有其他问题,我提供的指示应该足以让您成功进入Unity桌面,对我来说这真是太棒了!希望您也能取得同样的成功并继续发展!
说实话,还有其他人做了这个并在这里发布了一个YouTube视频: https://www.youtube.com/watch?v=1WrRngZ4giE#t=94

大概是 1366x768,而不是 1368x768(那是常见的“笔记本分辨率”)。 - Cosine
如何在使用dd命令后挂载我的驱动器?我收到了mount: block device /dev/sdc1 is write-protected, mounting read-only的错误提示。 - Cosine
4个回答

Ubuntu 15.10支持32位EFI。实际上,32位版本会自动安装32位EFI引导程序。不幸的是,Canonical没有提供一个带有EFI引导程序的可启动的32位ISO镜像。因此,我们必须自己创建安装盘。
其他的指南试图让64位Ubuntu运行和安装。这可能源于一个误解,即EFI需要64位操作系统。这是错误的。事实上,EFI的位数应该与操作系统的位数相对应。大多数个人电脑设计用于64位操作系统,因此具有64位EFI。然而,为32位操作系统设计的廉价个人电脑则配备32位EFI。
然而,请记住,Ubuntu(或者说它的Linux内核)并不完全支持通常配备32位EFI BIOS(廉价的Intel Atom SoCs)的系统中的硬件。WiFi、声音和电源管理通常无法正常工作。存在修复部分问题的第三方内核补丁,例如在这里提供的那些。
准备一个带有EFI引导程序的Ubuntu 32位安装驱动器的步骤如下:
  • 下载32位和64位的Ubuntu ISO文件。(已测试过Ubuntu 15.10)
  • 下载一个多架构的Debian ISO。(已测试过Debian 8.2.0 netinst ISO

  • 将您的USB磁盘格式化为FAT并挂载它

    • 在Gnome Disks中,选择左侧列表中的USB驱动器,转到右上角的“汉堡菜单”,选择“格式化磁盘”,选择MSR/DOS分区,并进行格式化。然后点击“+”并接受默认值,这将创建一个FAT分区。最后,点击“播放”三角形以挂载它。
  • 从Ubuntu 32位ISO中提取安装文件,同时复制符号链接的内容
    • 在Gnome Disks中,打开Disks菜单(通常在文件和编辑的位置),选择附加磁盘映像,选择ubuntu-15.10-desktop-i386.iso,并挂载最大的分区。
    • 在终端中,rsync -rL --exclude=/ubuntu <Ubuntu 32位安装盘路径>/ <USB磁盘路径>/
      • 用正确的路径替换<占位符>
      • 不要忘记源路径末尾的斜杠
  • 从Ubuntu 64位ISO中复制/boot和/EFI目录
    • 挂载ISO文件
    • rsync -r <Ubuntu 64位安装盘路径>/boot/ <USB磁盘路径>/boot/
    • rsync -r <Ubuntu 64位安装盘路径>/EFI/ <USB磁盘路径>/EFI/
      • 同样,末尾的斜杠很重要
  • 从Debian多架构ISO中复制32位GRUB
    • 挂载ISO文件
    • cp <Debian多架构安装盘路径>/efi/boot/bootia32.efi <USB磁盘路径>/EFI/BOOT/
    • rsync -r <Debian多架构安装盘路径>/boot/grub/i386-efi <USB磁盘路径>/boot/grub/
      • 注意斜杠(这次源路径不以斜杠结尾)
  • 将vmlinuz重命名为vmlinuz.efi
    • mv <USB磁盘路径>/casper/vmlinuz <USB磁盘路径>/casper/vmlinuz.efi
  • 卸载所有内容
  • 在目标系统上禁用安全启动并从USB驱动器启动。
  • 安装Ubuntu!(我已经测试过“擦除磁盘并使用LVM加密”选项,安装会自动进行 - 除非内核不支持设备中的闪存芯片。)
  • 系统应该是“就绪”的。它将启动,但实际上由于缺少驱动程序可能无法正常工作(截至Ubuntu 16.04)。请查看这个Google+群组以获取更多建议和最新的修补内核。

谢谢你的更新!看到事情在人们不断为开源做出贡献的过程中变得更加高效,真是太棒了! - spideyclick
1@spideyclick 没问题!我花了很长时间通过试错才发现这个。令人震惊的是,在谷歌搜索中几乎没有多少相关信息,但现在我知道有一些(奇怪的是在Google+上)全职致力于解决这个问题的团体。考虑到Canonical在1)触摸屏友好的Unity和2)Ubuntu Touch上投入了多少努力,你会认为他们会尝试支持那些已经在市场上销售多年的常见x86平板电脑。Canonical真是奇怪。 - Aleksandr Dubinsky
如果内核不支持平板电脑中使用的闪存存储器,Ubuntu将无法安装。我不确定这种情况发生的频率有多高。 - Aleksandr Dubinsky
还在Trekstor Wintab 10上开箱即用地按照描述的方式工作过。 - rexkogitans
实际上,EFI的位数应该与操作系统的位数相关联。这是错误的。我找到了关于32/64位UEFI/OS的特殊性的技术博客文章,以及日期为2014年的此补丁,它使得从32位UEFI加载64位Linux内核成为可能。 - Hi-Angel
嘿,非常感谢这个指南!我按照说明操作到了 grub,但是当我选择 live 或者 install 时,屏幕就变成黑色了。有什么建议吗?我尝试了 nomodeset,但没有起作用。 - Cosine
@Cosine 你试过使用答案中的确切版本吗?自那时以来可能有所改变。 - Aleksandr Dubinsky
@AleksandrDubinsky 我尝试了使用16.04.3版本的8.2.0网络安装,结果也遇到了黑屏问题。USB开始读取,但在尝试启动时停止了。 - userDepth
我遇到了一个黑屏,大概持续了几分钟,没有任何活动的迹象,但之后它继续启动了。 - mwfearnley

总的来说,如果你需要在一台只支持32位EFI且没有BIOS/CSM/传统模式启动支持的计算机上安装Ubuntu(或其他任何Linux发行版),操作步骤如下:
使用unetbootin或类似工具准备一个安装用的USB闪存驱动器。(也可以使用CD-R,但需要更多的工作。)
选择一个适用于Linux的EFI模式引导加载程序。我推荐ELILO、Fedora的修补版GRUB Legacy、rEFInd或gummiboot,因为它们相对容易手动设置。GRUB 2太难手动配置了,SYSLINUX则太新。
研究你选择的引导加载程序的配置文件格式以及它在内核位置方面的需求。
检查原始CD映像以找到其引导加载程序配置。你需要知道引导加载程序传递给内核的选项是什么。
在现在保存你的Linux映像的USB闪存驱动器上的FAT分区中添加一个EFI/BOOT目录。理想情况下,这个分区应该是一个ESP(即,在parted中设置了“引导标志”或在gdisk中类型代码为EF00(如果磁盘使用GPT);或者在fdisk中类型代码为0xEF(如果磁盘使用MBR)),但有些ESP可以在没有这个条件的情况下正常工作。如果磁盘没有FAT分区,你需要创建一个。
将你选择的引导加载程序的二进制文件(以.efi结尾的文件名)复制到USB闪存驱动器上的EFI/BOOT目录,并将其重命名为bootia32.efi,即EFI/BOOT/bootia32.efi。确保复制的是32位版本的引导加载程序!
安装引导加载程序所需的任何支持文件,如驱动程序、图像、模块和配置文件。在某些情况下(如ELILO和gummiboot),你需要将内核和initrd文件复制到保存引导加载程序的FAT分区中。
编辑引导加载程序的配置文件,以便它可以使用你通过检查BIOS模式引导加载程序的配置确定的选项来启动内核。
重新启动以测试引导加载程序。
希望一切顺利,你能够成功安装所有内容。不过,我不能保证Ubuntu会安装一个32位的EFI引导加载程序。如果没有的话,你需要启动一个紧急系统并手动设置它。你可能还需要调试一些东西,特别是如果unetbootin(或者你使用的其他工具)没有以最佳方式设置闪存驱动器。
当然,这个描述对于配置引导加载程序的关键细节相当模糊。这是因为我最近没有做过(虽然过去有做过),而且具体细节取决于你选择的引导加载程序。

2@user2887850 你试过了吗? - s4m0k
这里有一些可能会更有帮助的链接:https://www.happyassassin.net/fedlet-a-fedora-remix-for-bay-trail-tablets/ 专为您的设备定制的Fedora http://www.jfwhome.com/2014/03/07/perfect-ubuntu-or-other-linux-on-the-asus-transformer-book-t100/ 适用于非常相似设备的Ubuntu指南(尚未在具有类似硬件平台的Odys Windesk X10上复制此操作) - Andreas Hartmann
@spideyclick 你试过了吗?成功了吗?我想买一个类似的物品,需要知道是否成功。 - Panayotis
@Panayotis 我从未在我的平板电脑上进行过EFI引导过程(尽管我在一台UEFI锁定的台式机上做过类似的操作)。 我所做的是尝试其中一个提供的镜像之一,在这里。 这位大神非常厉害,他已经上传了几个带有更新的镜像版本。 它基于Fedora,这可能适合你,也可能不适合你,但我对他已经取得的进展感到惊讶。 希望对你有所帮助! - spideyclick

虽然 Fedora 确实支持 32 位 EFI,但 MX Linux 和 Debian 也可以通过直接安装和网络安装的方式来支持。此外,我还成功地使用以下方法来适用于基于 Intel Baytrail/Cherrytrail 的设备。

http://linuxiumcomau.blogspot.com/2017/06/customizing-ubuntu-isos-documentation.html https://www.ianrenton.com/guides/install-linux-on-a-linx-1010b-tablet/ https://concretedog.blogspot.com/2018/04/linux-on-linx1010b.html?m=1

我目前在我的Linx 1010b上使用Ubuntu Mate 19.04,除了相机之外,一切都运行正常。我正在解决这个问题。

欢迎来到Ask Ubuntu,请在这里提供必要的信息。此外,我们这里只讨论Ubuntu相关话题。 - user833907

如果您使用"unetbootin"在USB驱动器上创建一个可引导的ISO,那么您可以将bootia32 efi镜像放置在您创建的ISO的efi/boot目录中。这样就可以在具有混合设置(即32位uefi和64位CPU)的机器上引导64位Ubuntu ISO。我已经成功地在我的Linx 1010b(baytrail)上安装了Ubuntu Budgie 19.10,并且不得不说我没有进行任何调整。自动旋转功能正常工作,触摸屏对齐正常工作,WiFi正常工作,尽管我还没有检查过摄像头,但我认为它可能无法使用。Onboard已经安装好,只需配置一下即可使虚拟键盘正常工作。性能是可以接受的,因为Budgie比Gnome更轻量级,ISO附带了Geary作为电子邮件客户端,这很好,因为它比我为这个设备尝试过的其他客户端更轻量级和更快速。

总的来说,我对结果感到满意。


  • 相关问题