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 系統可能會正常工作,因此我不會太擔心這一點。

相關內容