Linux
為什麼 Linux 發行版的 Live ISO 的基本系統通常與 squashfs 一起儲存?
為什麼 Live ISO 不能只是帶有安裝程序的最小 Linux 系統?是否有任何理由使用 squashfs 來保存文件系統的根目錄?只是為了更好的壓縮,還是有其他原因?
我已經看到一些答案(和評論)說這是出於只讀原因。持久性怎麼樣,就像 Ubuntu 或 EndeavourOS 在他們的 Live USB 中所擁有的那樣?
這有幾個重要原因,但最大的兩個原因是空間限制和文件系統本身的要求。
SquashFS 是一種高度優化的文件系統映像格式,除其他優點外,它還提供:
- 高水平的數據壓縮。
- 內置塊級重複數據刪除(任何給定塊僅儲存一次,包含該塊副本的所有文件僅引用該副本)。
- 對文件大小沒有實際限制(這通常無關緊要,但值得一提的是 IMO)。
- 對文件所有權、文件權限、擴展屬性的適當支持(例如 SELinux 需要)
- 儘管有上述好處,但執行時成本非常低。
- 性能相當不錯。
可刻錄的實時系統映像需要符合它所使用的媒體類型所需的文件系統格式,如果它是光碟,則可以是 ISO 9660(因為雖然它可以使用 UDF,但實際上幾乎沒有人這樣做),或者大多數 USB 上的 FAT32連接的儲存設備。眾所周知,FAT32不支持上面列出的前四個好處。ISO 9660在技術上支持 POSIX 樣式的文件所有權和權限(Rock Ridge 擴展),但它缺乏對壓縮和重複數據刪除的實際支持。
但是,Linux需要POSIX 樣式的文件所有權和權限才能正常工作,並且在大多數情況下,非常希望最終的實時系統映像盡可能小,因此需要良好的壓縮,因為 SquashFS 在這方面做得比其他任何現在可用於 Linux 的選項,它用於實時映像的根文件系統(因為這通常是映像的最大部分,並且是引導載入程序不需要了解的唯一部分) .