我将按照以下步骤创建 Debian 预置 ISO:https://wiki.debian.org/DebianInstaller/Preseed/EditIso。建议xorriso
按照此处的说明使用来创建 EFI 系统的最终 ISO 映像:https://wiki.debian.org/RepackBootableISO
我从这个页面得出的命令如下:
xorriso \
-as mkisofs \
-r \
-V "Debian 10.6.0 amd64 n preseed" \
-o "${out}" \
-R \
-J \
-joliet-long \
-cache-inodes \
-isohybrid-mbr "isohdpfx.bin" \
-b isolinux/isolinux.bin \
-c isolinux/boot.cat \
-boot-load-size 4 \
-boot-info-table \
-no-emul-boot \
-eltorito-alt-boot \
-e boot/grub/efi.img \
-no-emul-boot \
-isohybrid-gpt-basdat \
-isohybrid-apm-hfsplus \
ISO_FILES_DIRECTORY
此命令会生成有关符号链接的警告,尤其是有关固件文件的警告。这让我认为最终的 ISO 不是包含预置文件的 ISO 的忠实再现。
GNU xorriso 1.5.2 : RockRidge filesystem manipulator, libburnia project.
Drive current: -outdev 'stdio:debian-10.6.0-amd64-netinst-preseed-20201030120440.iso'
Media current: stdio file, overwriteable
Media status : is blank
Media summary: 0 sessions, 0 data blocks, 0 data, 1267g free
xorriso : WARNING : -volid text problematic as automatic mount point name
xorriso : WARNING : -volid text does not comply to ISO 9660 / ECMA 119 rules
xorriso : NOTE : -as mkisofs: Ignored option '-cache-inodes'
Added to ISO image: directory '/'='ISO_FILES_DIRECTORY'
xorriso : UPDATE : 1561 files added in 1 seconds
xorriso : UPDATE : 1561 files added in 1 seconds
xorriso : NOTE : Copying to System Area: 432 bytes from file 'isohdpfx.bin'
libisofs: WARNING : Cannot add /debian to Joliet tree. Symlinks can only be added to a Rock Ridge tree.
libisofs: WARNING : Cannot add /dists/stable to Joliet tree. Symlinks can only be added to a Rock Ridge tree.
libisofs: WARNING : Cannot add /doc/FAQ/html/basic-defs.html to Joliet tree. Symlinks can only be added to a Rock Ridge tree.
libisofs: WARNING : Cannot add /doc/FAQ/html/choosing.html to Joliet tree. Symlinks can only be added to a Rock Ridge tree.
libisofs: WARNING : Cannot add /doc/FAQ/html/compatibility.html to Joliet tree. Symlinks can only be added to a Rock Ridge tree.
libisofs: WARNING : Cannot add /doc/FAQ/html/contributing.html to Joliet tree. Symlinks can only be added to a Rock Ridge tree.
libisofs: WARNING : Cannot add /doc/FAQ/html/customizing.html to Joliet tree. Symlinks can only be added to a Rock Ridge tree.
libisofs: WARNING : Cannot add /doc/FAQ/html/faqinfo.html to Joliet tree. Symlinks can only be added to a Rock Ridge tree.
libisofs: WARNING : Cannot add /doc/FAQ/html/ftparchives.html to Joliet tree. Symlinks can only be added to a Rock Ridge tree.
libisofs: WARNING : Cannot add /doc/FAQ/html/getting-debian.html to Joliet tree. Symlinks can only be added to a Rock Ridge tree.
libisofs: WARNING : Cannot add /doc/FAQ/html/index.html to Joliet tree. Symlinks can only be added to a Rock Ridge tree.
libisofs: WARNING : Cannot add /doc/FAQ/html/kernel.html to Joliet tree. Symlinks can only be added to a Rock Ridge tree.
libisofs: WARNING : Cannot add /doc/FAQ/html/nextrelease.html to Joliet tree. Symlinks can only be added to a Rock Ridge tree.
libisofs: WARNING : Cannot add /doc/FAQ/html/pkg-basics.html to Joliet tree. Symlinks can only be added to a Rock Ridge tree.
libisofs: WARNING : Cannot add /doc/FAQ/html/pkgtools.html to Joliet tree. Symlinks can only be added to a Rock Ridge tree.
libisofs: WARNING : Cannot add /doc/FAQ/html/redistributing.html to Joliet tree. Symlinks can only be added to a Rock Ridge tree.
libisofs: WARNING : Cannot add /doc/FAQ/html/software.html to Joliet tree. Symlinks can only be added to a Rock Ridge tree.
libisofs: WARNING : Cannot add /doc/FAQ/html/support.html to Joliet tree. Symlinks can only be added to a Rock Ridge tree.
libisofs: WARNING : Cannot add /doc/FAQ/html/uptodate.html to Joliet tree. Symlinks can only be added to a Rock Ridge tree.
libisofs: WARNING : Cannot add /firmware/firmware-linux-free_3.4_all.deb to Joliet tree. Symlinks can only be added to a Rock Ridge tree.
xorriso : UPDATE : 11.40% done
xorriso : UPDATE : Thank you for being patient. Working since 1 seconds.
ISO image produced: 179712 sectors
Written to medium : 179712 sectors at LBA 0
Writing to 'stdio:debian-10.6.0-amd64-netinst-preseed-20201030120440.iso' completed successfully.
尤其是关于固件文件的最后一条警告让我很紧张。有人能告诉我该怎么做才能做xorriso
对吗?
答案1
标准 ISO 9660 格式对大多数类型的对象的支持非常有限。例如,文件名仅限于 8.3 格式,并且无法存储权限。
但是,此格式有多种扩展,可以为现代操作系统提供更好的支持。其中一种扩展名为 Rock Ridge,提供 Unix 文件名和权限支持;xorriso 默认启用它。另一种主要格式 Joliet 由 Microsoft 定义,包含 Unicode 文件名。第三种格式是 HFS-hybrid,用于 Apple 的扩展。
就您而言,您正在写入 Rock Ridge(因为您没有关闭它)和 Joliet。此警告告诉您 Joliet 不支持符号链接。您仍在写入 Rock Ridge 格式,您的可启动 Debian 系统将优先使用该格式,因此您的符号链接应该保持可访问。但是,如果您将此映像放入 Windows 计算机中,您的符号链接将会丢失,这是不可避免的。
由于您的可启动 Debian 系统可能能够正常工作,因此我不会太担心这个问题。