
我使用的是 Nano Pi 設備,裡面有 Debian 作業系統。作業系統映像存在於其內部記憶體 (8 GB) 中。使用的記憶體總大小約為 4GB。我想將此作業系統備份到映像檔中。
做完之後
dd if=/dev/mmcblk1 of=NanoPi.img bs=8M status=progress
影像檔案總大小可達 8GB。如何製作僅記憶體使用的圖像而不是全部?
答案1
您無法輕鬆使用此操作,dd
因為區塊設備只是位元組轉儲。它可能包含未分配空間中長期刪除的檔案的資料。dd
不知道這一點,因為這是檔案系統的工作。你有幾個選擇:
繼續使用dd
...並接受更大的空間使用。相反,做類似的事情dd if=/dev/mmcblk1 of=NanoPi.img bs=64K conv=noerror,sync status=progress
。較小的區塊大小可以在發生讀取錯誤時提供更高的安全性。如果dd
未能讀取至少一個磁區 - 該區塊的其餘部分將不會被處理。區塊大小是一個壞磁區可能遺失的最大位元組數。conv=noerror
確保克隆在出現錯誤時繼續進行。conv=sync
如果出現讀取錯誤,則向前移動目標檔案中的指針,以便資料保持對齊並保持有效。
您可以dd
透過管道輸出gzip
來壓縮資料並節省一些空間:
dd if=/dev/mmcblk1 bs=64K conv=noerror,sync status=progress | gzip -c > NanoPi.img.gz
要返回原始影像,請執行gunzip -c ./NanoPi.img.gz > NanoPi.img
.
使用rsync
...並處理原始文件。rsync -aAXv /path/to/mounted/mmcblk1 /path/to/destination/folder
。這可能對您有用,也可能不起作用,具體取決於您的檔案系統是否已安裝。