すべての空きブロック(削除されたファイル)を完全にゼロ化する方法

すべての空きブロック(削除されたファイル)を完全にゼロ化する方法

私はRaspbianをバックアップしています(Raspbian Pi SEではありませんが、Linuxの問題であり、おそらくRaspbianにのみこの問題があるわけではありませんが、ドライブサイズは128 GBです)。最初のバックアップは圧縮後68GBに過ぎませんでした。その後、最初のバックアップを削除しました。次のバックアップサイズが100GBを超えています! 2番目のバックアップを削除して再度バックアップすると、バックアップ中にスペースが不足します。 (使用されているsudo dd if=/dev/mmcblk0 bs=1M | gzip – | dd of=~/Desktop/backup-23-may-2020.gzスペースと未使用のスペースの両方がゼロではないため、圧縮が激しくなります。)

私が知っている限り、ファイルを削除すると、rmファイルがゼロに変わるのではなく、削除されたとマークされます。削除されたすべてのファイルを完全に空にしたいので、ディスク全体をバックアップするときに使用されていなかったすべてのスペースがゼロであるため、圧縮はうまく機能します。

このコマンドはそうなりますか? (pvこのコマンドを実行して使用するには(Pipeline Viewer)インストールが必要ですsudo apt install pv。)

dd if=/dev/zero | pv -s 100g -S | dd of=~/zeros.txt

編集2:忘れられた=。 @ Hermanに感謝します。

私はここでOpenCVをコンパイルし、再びそれを拒否するので、このコマンドを盲目的に実行したくありません。

編集する:私によると、df -h102Gメモリがあります。

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
...

ベストアンサー1

このコマンドはそうなりますか?

=裏面はありませんif。しかし、それ以外はそうです。これがこれを達成する最も効率的な方法であるかどうかはわかりませんが、作業は完了します。

以下のddのみのバリエーションをお勧めしますが:

dd if=/dev/zero of=~/zeros.txt bs=16M status=progress

不要pv

完全なルートファイルシステムのバックアップには、オフラインバックアップを使用することをお勧めしますe2image。つまり、パイを終了してカードをPCに移動してからいいえルートパーティションをマウントします。代わりに を使用して折りたたみ、 を使用してresize2fs -Mコピーを作成し、 をr2image -rap使用して再展開しますresize2fs

を使用する方が良いかもしれませんが、partclone自分で試したことはありません。

おすすめ記事