Backup
如何將所有空閒塊(已刪除文件)完全歸零
我正在備份 Raspbian(我知道,這不是 Raspberry Pi SE,但這是一個 Linux 問題,可能不僅僅是 Raspbian 有這個問題,順便說一句,驅動器的大小是 128GB)。第一次備份壓縮後只有68GB。然後,我刪除了第一個備份。下一個備份的大小超過 100GB!如果我刪除第二個備份並進行另一個備份,則在進行備份時空間不足(因為我使用
sudo dd if=/dev/mmcblk0 bs=1M | gzip – | dd of=~/Desktop/backup-23-may-2020.gz
並且由於未使用的空間並非全為零,因此壓縮變得更糟)據我所知,刪除文件
rm
只使用標記該文件已刪除,而不是清零文件。我希望能夠將所有已刪除的文件完全歸零,因此當我備份整個磁碟時,壓縮效果會更好,因為所有未使用的空間都是零。這個命令會這樣做嗎?
pv
(如果您想通過執行來嘗試此命令,則需要安裝(管道查看器)sudo apt install pv
)dd if=/dev/zero | pv -s 100g -S | dd of=~/zeros.txt
**編輯 2:**忘記了
=
. 謝謝@赫爾曼。我不想盲目地執行這個命令,因為我確實在這裡編譯了 OpenCV 並且我拒絕再次這樣做。
**編輯:**根據
df -h
我有 102G 的記憶體。pi@raspberrypi:~$ df -h Filesystem Size Used Avail Use% Mounted on /dev/root 115G 7.9G 102G 8% / devtmpfs 1.6G 0 1.6G 0% /dev tmpfs 1.7G 0 1.7G 0% /dev/shm tmpfs 1.7G 26M 1.7G 2% /run tmpfs 5.0M 4.0K 5.0M 1% /run/lock ...
這個命令會這樣做嗎?
它缺少
=
之後if
,但除此之外:是的。我不知道這是否是實現它的最有效方法,但它會工作。雖然我推薦這樣的 dd-only 變體:
dd if=/dev/zero of=~/zeros.txt bs=16M status=progress
不需要
pv
。對於完整的根文件系統備份,我建議使用以下方式進行離線備份
e2image
:關閉 pi,將卡移動到 PC,不要掛載根分區。相反,使用 縮小它resize2fs -M
,使用 創建一個副本r2image -rap
,然後使用 再次展開它resize2fs
。使用
partclone
可能會更好,但我沒有第一手經驗。