
我按照以下步驟在此處建立 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 系統可能會正常工作,因此我不會太擔心這一點。