Dd
將整個分區或硬碟複製到稀疏文件
我喜歡將整個分區或整個硬碟驅動器複製到更大的外部磁碟上,但喜歡創建稀疏文件。我經常
dd
用於複製,但它不支持稀疏文件。作為一種解決方法,我使用了類似的東西:cp --sparse=always <(dd if=/dev/sda1 bs=8M) /mount/external/backup/sda1.raw
但是,這對我的口味來說有點太棘手了,如果中止,我將無法恢復該過程。有趣的是,有一個 NTFS 工具來解決這個問題
ntfsclone
(有沒有更好的工具,例如
dd
支持稀疏的變體?我不尋找一些用於磁碟備份的專有軟體,而只是想製作一個稀疏複製副本,如果需要,我可以將其掛載為循環設備。
你想要
dd_rescue
。dd_rescue -a -b 8M /dev/sda1 /mount/external/backup/sda1.raw
可隨時中斷複製
Ctrl-C
,顯示目前位置。-s
當通過添加和位置到原始命令重新啟動時,可以使用此值,例如dd_rescue -a -b 8M -s 42000k /dev/sda1 /mount/external/backup/sda1.raw
更容易的是指定第三個文件名,它作為一個日誌文件。重新啟動
dd_rescue
時將讀取該日誌文件並從中斷處繼續。
只是為了完整起見,呼叫ddrescue。
--sparse
or-S
標誌允許稀疏地寫入目標:$ ddrescue -S -b8M /dev/sda1 /mount/external/backup/sda1.raw
或長選項:
$ ddrescue --sparse --block-size 8M /dev/sda1 /mount/external/backup/sda1.raw
或者,如果您更喜歡MiB:
$ ddrescue -S -b8Mi /dev/sda1 /mount/external/backup/sda1.raw
要允許救援被中斷和恢復,您還可以使用日誌文件:
$ ddrescue -S -b8Mi /dev/sda1 /mount/external/backup/sda1.raw ~/sda1.rescue.log
注意 GNU
ddrescue
和dd_rescue
是不同的程序。但 GNUddrescue
似乎更普遍。例如,它已經與GRML打包在一起。