使用mkisofs和-eltorito-boot efiboot.img制作可启动UEFI的映像

埃万科

我正在尝试将当前通过BIOS引导的现有自定义USB ISO安装程序映像转换为通过UEFI引导的映像。我使用mkisofsisohybrid制作ISO,它通过ISOLINUX引导。我知道我应该使用这些-eltorito-alt-boot -eltorito-platform 0xEF -eltorito-boot isolinux/efiboot.img选项来启用UEFI引导,但是我一生中都找不到Google上告诉我从哪里获取难以捉摸的efiboot.img源文件的页面。每个人都提到它,但每个人都认为您已经拥有它。这是如何建立或获得的?man页面mkisofs没有帮助。我必须使用xorriso吗?

仅供参考,我试图通过libvirt / kvm / qemu / virt-manager引导它,尽管最终它必须在真实的​​硬件上引导。开发环境为openSUSE Leap 42.1。无需支持BIOS或多个平台。我宁愿不修改太多现有的构建代码,但至少有一条评论(@mikeserv)表示,ISO完全是错误的机制(这意味着完全是hack,完全没有必要)。但这将涉及彻底修改构建,这将花费大量时间。

将不胜感激地收到指向该主题的教程或其他网页的链接。我已经看过Syslinux网站和Rod Smith的页面,并筋疲力尽地看着其他内容。

托马斯·施密特(Thomas Schmitt)

我必须使用xorriso吗?

不必要。您需要一个ISO生产者,该生产者可以将EFI系统分区标记为El Torito引导映像。mkisofs可能与您提到的选项有关。isohybrid --uefi之后可以应用以使其可从类似硬盘的设备引导。(可能也需要具有ISOLINUX BIOS引导映像,这样才能isohybrid起作用。)

主要问题是,您需要一个EFI系统分区文件,该文件必须是FAT文件系统映像,并带有必要的程序才能启动操作系统文件,这些文件可以在FAT映像中,也可以包含在封闭的ISO 9660文件系统中。

SYSLINUX EFI软件无法从光学介质启动。因此,大多数项目为此使用GRUB 2(不是GRUB传统),并将其与ISOLINUX BIOS软件结合使用。例如,Debian netinst amd64 ISO的FAT映像很小,只有足够的GRUB大脑可以跳到ISO中的GRUB配置。在一个openSUSE的NET-x86_64的ISO较大。

要检查Debian的EFI设备,请将其安装为ISO,然后将其文件安装/boot/grub/efi.img为FAT。在内部,您找到了一个文件/efi/boot/bootx64.efi该文件经过了程序检查,发现其中strings包含嵌入式GRUB配置。

search --file --set=root /.disk/info
set prefix=($root)/boot/grub
source $prefix/x86_64-efi/grub.cfg
(memdisk)/boot/grub

我知道FAT映像文件是由GRUB程序创建的mkimage该文件/.disk/info被认为仅存在于Debian ISO中,因此search可以使用它来查找ISO文件系统。

在SuSE ISO中,FAT映像命名为/boot/x86_64/efi它比Debian包含更多的东西。除了EFI引导文件之外,bootx64.efi还有grub.cfg我不知道GRUB知识的其他文件。

如果您从头开始进行可启动ISO开发,请考虑通过GRUB程序生成ISO grub-mkrescue(那是您真正需要xorriso的时间,我是其中的开发人员。)

在Debian上,必须为BIOS和x86_64 EFI安装软件包grub-pc在目录树中准备有效负载并运行grub-efi-ia32-bingrub-efi-amd64-bin

grub-mkrescue -o output.iso my_prepared_dir

我假设SuSE提供与Debian类似的GRUB软件包,这些软件包配置grub-mkrescue运行以生产BIOS和/或EFI设备。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

xorriso:boot.catalog和-eltorito-catalog无法正常工作

如何使用mkisofs / genisoimage制作可复制的iso文件?

如何在大于4GB的USB闪存驱动器上安装DBAN(Darik的Boot和Nuke),并使其在配备UEFI的PC上可启动?

双启动Ubuntu和Windows 8(仅从“ Windows Boot UEFI Recovery”启动)

使用debootstrap创建可启动的Debian映像

Spring Boot和GraalVM本机映像

如何创建带有mkisofs的FreeBSD ISO,该mkisofs将在UEFI下的VirtualBox中启动?

使用Orbot的Spring Boot上传映像

无法启动EHCache和Spring Boot

Boot2Docker启动Ubuntu映像

如何使用 Spring Boot 制作搜索数据

可启动 BIOS 和 UEFI 的简易完全安装 USB

制作 VirtualBox 机器的可启动映像?

Linux无法使用u-boot和FIT(扁平化映像树)引导

如何使用预装的软件创建Windows 10的可启动映像?

如何从可启动DVD制作可启动ISO映像?

使用intellij启动Spring Boot#!NL!#

使用Spring Boot启动多个Rabbitmq队列

Spring Boot应用无法使用SSH启动

在GPT / UEFI卷上移动`/ boot`和`/`(根)分区

u-boot.bin和u-boot.img有什么区别

如何使用Spring Boot和Rabbit MQ启动Hello World JMS应用

使用spring-boot:1.5.1和spring-cloud-stream时无法启动bean'inputBindingLifecycle'

如何使用Spring Boot和Kotlin启动Web应用程序

无法使用Spring Boot 2和Trust Store在SSL模式下启动tomcat9

Ubuntu Server 18.04.2 HWE 内核:./boot/grub/efi.img 文件在引导 UEFI 时未能通过 MD5 校验和

是否可以使用UEFI安全启动将统一的内核映像启动为Xen Dom0?

使用dd制作可启动USB闪存驱动器

如何使用命令行从可启动DVD制作可启动ISO?