다음은 이전 질문에 대한 나의 답변에 대한 수정되고 훨씬 확장 된 게시물입니다.
sfill
secure-delete
패키지 에서 원하는 것을 할 수 있습니다.
ext2, ext3 및 ext4 파일 시스템에서만 작동하는 zerofree와 달리 sfill은 모든 파일 시스템에서 작동합니다.
예 :
sfill -l -l -z /mnt/X
sfill / secure-delete 홈 페이지는 이제 사라진 것 같지만 데비안과 우분투 용으로 패키지되었습니다. 아마 다른 배포판도. 소스 코드가 필요하다면, 다른 곳에서 찾을 수 없다면 데비안 아카이브에서 찾을 수 있습니다.
참고 : sfill은 마운트 된 파일 시스템에서만 작동합니다. VM이 아닌 호스트 시스템에서 이미지 파일을 0으로 채우는 경우 호스트에 fs 이미지를 마운트해야합니다. 정확한 방법은 이미지 파일의 종류 (예 : qcow2 또는 raw)에 따라 다릅니다.
'원시'이미지 마운트는 쉽고 간단합니다. 그냥 사용kpartx
각 파티션에 대해 루프백 장치는 / dev / 매퍼 / 항목을 만들 수있는 이미지 파일에 다음 개별적으로 장착 할 수 있습니다.
다음은 net-bootable freedos 하드 디스크 이미지를 마운트하는 데 사용하는 스크립트 조각에서 수정 된 부분 스크립트입니다 (flashrom이 작동하지 않는 시스템의 BIOS 업데이트에 사용됨).
image="myrawimagefile.img"
# use kpartx to build /dev/mapper device nodes
KP=$(kpartx -a -v "$image")
# now mount each partition under ./hd/
for p in $(echo "$KP" | awk '/^add map/ {print $3}') ; do
dm="/dev/mapper/$p"
fp=$(echo "$p" | sed -r -e 's/^loop[0-9]+//')
mkdir -p "./hd/$fp"
mount "$dm" "./hd/$fp"
sfill -l -l -v "./hd/$fp"
umount "$dm"
done
# now remove the loopback device and /dev/mapper entries
kpartx -d "$image"
참고 : 이미지의 모든 파티션을 마운트 할 수 있다고 가정합니다. 내 유스 케이스 (하나의 파티션이있는 freedos hd 이미지)에서 true입니다. 파티션 중 하나가 스왑 공간 인 경우에는 해당되지 않습니다. 이러한 파티션을 감지하고 dd를 사용하여 스왑 파티션을 제로화하는 것은 독자의 연습으로 남아 있습니다 :)
이 방법 또는 변형은 LVM 볼륨에서도 작동합니다.
이미지가 qcow 인 qemu-nbd
경우qemu-utils
이미지 파일과 해당 파티션을 네트워크 블록 장치로 표시 패키지 예 : / dev / nbd0 / dev / ndb0p1-/와 유사한 방식으로 사용할 수 있음). 위의 dev / mapper 장치.
qemu-img
qcow에서 raw로 변환하고 위의 raw에 대한 방법을 사용한 다음 수정 된 raw 이미지를 다시 압축 된 qcow2로 변환하는 것이 더 쉽고 번거롭지 않지만 시간이 많이 소요 됩니다. 이것은 새로운 qcow2 이미지가 생성 될 때 압축 할 때 qemu-nbd를 사용하는 것보다 약간 더 작은 이미지를 생성 할 것입니다.
sfill
제안 을 시도 했습니까 ? extX가 필요하지 않은 것 같습니다.