Debian

從 diff 創建 ext4 img

  • March 3, 2021

我正在嘗試從 ext4 文件系統創建更新映像,該文件系統應僅包含更改的文件。所以基本上我有一個帶有 ext4 根文件系統的 Debian 發行版。我想從中創建一個基本映像 A 並在之後安裝更新(例如 apt upgrade)。更新後我想創建另一個圖像 B。有沒有辦法通過比較圖像 A 和圖像 B 之間的變化來創建“差異圖像”,這樣我就不必一直複製完整的圖像 B?這樣做的原因是最終映像應該安裝在另一個設備上,並且所有更改都應該被複製過來(將其視為使用更新第一個設備的更改來更新第二個設備)。

我認為“差異圖像”不會像您希望的那樣在文件系統級別工作。文件/目錄的放置、元數據校驗和(在較新的系統上)、日誌塊等存在太多變數,這使得無法從一個文件系統獲取塊級差異並將其應用於另一個文件系統,即使兩者文件系統最初是相同的。如果在正常使用期間對第二個文件系統進行了任何修改,那麼應用塊級差異將損壞第二個文件系統。在某些情況下,損壞可能很小(例如,超級塊或組描述符中的空閒塊/inode 計數不一致),在其他情況下,可能會出現嚴重損壞(例如,不正確的點陣圖、日誌塊等)。

更實用的是使用文件級差異,它本質上是“rsync”(或其並行版本),而不是特定於 ext4。您可以通過在升級期間在文件系統上使用 fsnotify 觀察程序來加速 rsync 過程,以生成所有已修改文件的列表,這樣就不需要完整的文件系統掃描。

引用自:https://unix.stackexchange.com/questions/637400