Xorriso 在创建 Debian 压缩 ISO 时抱怨符号链接

Xorriso 在创建 Debian 压缩 ISO 时抱怨符号链接

我将按照以下步骤创建 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 系统可能能够正常工作,因此我不会太担心这个问题。

相关内容