모든 여유 블록(삭제된 파일)을 완전히 제로화하는 방법

모든 여유 블록(삭제된 파일)을 완전히 제로화하는 방법

저는 Raspbian을 백업하고 있습니다(Raspbian Pi SE는 아니지만 Linux 문제이고 아마도 Raspbian에만 이 문제가 있는 것은 아닙니다. 그런데 드라이브 크기는 128GB입니다). 첫 번째 백업은 압축 후 68GB에 불과했습니다. 그런 다음 첫 번째 백업을 삭제했습니다. 다음 백업 크기가 100GB를 초과합니다! 두 번째 백업을 삭제하고 다시 백업을 하면 백업이 진행되는 동안 공간이 부족해집니다. (사용한 sudo dd if=/dev/mmcblk0 bs=1M | gzip – | dd of=~/Desktop/backup-23-may-2020.gz공간과 사용하지 않은 공간이 모두 0이 아니기 때문에 압축이 더 심해집니다.)

내가 아는 한, 파일을 삭제하면 rm파일이 0으로 바뀌는 것이 아니라 삭제된 것으로 표시됩니다. 삭제된 모든 파일을 완전히 비울 수 있기를 원하므로 전체 디스크를 백업할 때 사용되지 않은 모든 공간이 0이므로 압축이 더 잘 작동합니다.

이 명령이 그렇게 됩니까? ( 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직접 사용해 본 경험이 없습니다.

관련 정보