리눅스에서 디스크 여유 공간을 지우는 방법?


145

파일을 삭제해도 다른 내용으로 명시 적으로 덮어 쓰지 않는 한 파일 시스템에 내용이 남아있을 수 있습니다. 이 wipe명령은 파일을 안전하게 지울 수 있지만 파일이 사용하지 않는 디스크 여유 공간을 지울 수는 없습니다.

이것을 달성하기 위해 무엇을 사용해야합니까?


유일한 안전한 해결책은 파일을 다른 곳에 저장하고 전체 파티션을 지우고 파일 시스템을 다시 만든 다음 파일을 복원하는 것입니다. 나는 photorec를 실행 했으며 여유 공간을 '닦은'후에도 얼마나 많은 물건을 검색 할 수 있는지에 놀랐습니다. 타협 솔루션은 분명히 여유 공간을 닦은 후 파티션의 왼쪽 경계를 크기의 6 %만큼 이동시키는 것입니다.
user39559

답변:


107

경고 : 최신 디스크 / SSD 하드웨어 및 최신 파일 시스템은 데이터를 삭제할 수없는 곳에 데이터를 다람쥐로 만들 수 있으므로이 프로세스는 여전히 디스크에 데이터를 남길 수 있습니다. 데이터를 지우는 유일한 안전한 방법은 ATA Secure Erase 명령 (정확하게 구현 된 경우) 또는 물리적 파기입니다. 하드 드라이브의 모든 정보를 확실하게 지울 수 있는 방법을 참조하십시오 .

보안 삭제라는 도구 모음을 사용할 수 있습니다.

sudo apt-get install secure-delete

여기에는 네 가지 도구가 있습니다.

srm-기존 파일을
smem안전하게 삭제
sfill- 램에서 파일의 흔적을 안전하게 삭제 -하드 드라이브에 빈 공간으로 표시된 모든 공간을
sswap지우십시오-교체 공간에서 모든 데이터를 지우십시오.

의 맨 페이지에서 srm

srm은 도둑, 법 집행 기관 또는 기타 위협으로 복구 할 수없는 안전한 방식으로 매체의 데이터를 삭제하도록 설계되었습니다. 와이프 알고리즘은 선도적 인 민간 암호 해독가 중 한 명인 Peter Gutmann이 6 번째 유닉스 보안 심포지엄에서 발표 한 "자기 및 솔리드 스테이트 메모리에서 데이터의 안전한 삭제"를 기반으로합니다.

srm의 안전한 데이터 삭제 프로세스는 다음과 같습니다.

  • 0xff로 1 패스
  • 5 개의 무작위 패스. /dev/urandom사용 가능한 경우 보안 RNG에 사용됩니다.
  • Peter Gutmann이 정의한 특별한 값으로 27 개의 패스.
  • 5 개의 무작위 패스. /dev/urandom사용 가능한 경우 보안 RNG에 사용됩니다.
  • 파일 이름을 임의의 값으로 바꿉니다.
  • 파일 자르기

추가적인 보안 수단으로 파일은 O_SYNC 모드에서 열리고 각 패스 후에 fsync()호출이 수행됩니다. srm속도를 위해 32k 블록을 작성하고 디스크 캐시 버퍼를 채워서 파일에 속하는 오래된 데이터를 플러시하고 덮어 씁니다.


5
보안 삭제의 현재 "공식"홈페이지를 찾기가 어렵습니다. 이전 버전은 버그 보고서가 없다고 주장하지만 동시에 발견 한 버그를보고 할 수있는 공개 버그 추적 시스템이 없습니다. 보안 삭제 홈페이지는 또한 사용하는 파일 시스템에 따라 사용되지 않는 모든 데이터 블록을 지우지 않을 수도 있다고 지적 합니다.
user39559

11
최신 하드 디스크 (약 20GB보다 큼)를 사용하면 여러 번의 패스를 수행하고 오래 기다릴 수 없습니다. 따라서 특수 도구를 설치하는 것도 쓸모 없게되었습니다 (보안 삭제에 더 이상 홈페이지가없는 이유를 설명 할 수 있음). 적절한 파티션에서이 작업을 수행하십시오 cat /dev/zero >nosuchfile; rm nosuchfile.
mivk

1
@ mivk : 하나 이상의 패스를하는 것이 왜 쓸모가 없습니까? 왜 / dev / random 대신 / dev / zero를 사용합니까? 속도 문제 때문입니까?
naught101

5
/ dev / zero를 사용하는 것이 훨씬 빠릅니다. / dev / random에서 여유 공간을 쓰면 커널은 그 임의의 데이터를 즉시 생성해야합니다. 그것은 당신의로드 평균이 최대치까지 올라가는 것을 보는 재미있는 방법입니다 ...
dafydd

3
여러 번의 삭제가 필요한지 여부에 대한 질문에 대한 답이 여기에 있습니다. 왜 하드 드라이브에 0 (또는 임의의 데이터)을 여러 번 쓰는 것이 한 번만하는 것보다 낫습니까?
sleske

71

단일 패스 만 필요하고 모든 것을 0으로 바꾸려면 가장 빠른 방법은 다음과 같습니다.

cat /dev/zero > zero.file
sync
rm zero.file

(지울 파일 시스템의 디렉토리에서 실행)
( sync명령은 모든 데이터가 디스크에 기록되도록하는 편집증 측정입니다. 지능형 캐시 관리자는 파일이 링크 해제 될 때 보류중인 블록에 대한 쓰기를 취소 할 수 있도록 조치 할 수 있습니다. )

파일 시스템에 여유 공간이 전혀 없을 때이 작업을 수행하는 데 시간이 걸립니다. 결과 파일이 크거나 조각화 된 경우 수십 초가 걸릴 수 있으므로 삭제하는 데 시간이 걸립니다. 여유 공간이 완전히 0 인 시간을 줄이려면 다음을 수행하십시오.

dd if=/dev/zero of=zero.small.file bs=1024 count=102400
cat /dev/zero > zero.file
sync
rm zero.small.file
rm zero.file

값 비싼 법 의학적 조작없이 누군가가 오래된 파일 내용을 읽는 것을 막기에 충분해야합니다. 약간 더 안전하지만, 느린, 변형 들어 교체 /dev/zero와 함께 /dev/urandom. 더 많은 편집증을 위해서는로 여러 단계를 실행하십시오 /dev/urandom.하지만 많은 노력이 필요한 경우 shredcoreutils 패키지 의 유틸리티를 사용하는 것이 좋습니다 .

dd if=/dev/zero of=zero.small.file bs=1024 count=102400
shred -z zero.small.file
cat /dev/zero > zero.file
sync
rm zero.small.file
shred -z zero.file
sync
rm zero.file

위의 작은 파일은 더 큰 파일을 만들기 전에 파쇄되므로 큰 파일이 파쇄 될 때까지 기다리지 않고 파일 시스템에 여유 공간이없는 상태에서 파일 시스템을 남겨 두는 대신 큰 파일이 완성되 자마자 제거 할 수 있습니다. 큰 파일을 처리하는 시간 이 오래 걸리며 NSA에서 무언가를 숨기려고하지 않는 한 실제로는 필요한 IMO가 아닙니다.

위의 모든 파일 시스템에서 작동해야합니다.

파일 크기 제한 :

DanMoulding이 아래 주석에서 지적한 것처럼 일부 파일 시스템에서 파일 크기 제한에 문제가있을 수 있습니다.

FAT32의 경우는 것입니다 확실히 인해 2GiB 파일 제한에 대한 우려 : 대부분의 볼륨은 요즘 (8TiB 볼륨 크기 제한 IIRC입니다)이보다 큰. 큰 cat /dev/zero출력 출력을 파이핑하여 split여러 개의 작은 파일을 생성하고 파쇄 및 삭제 단계를 적절하게 조정 하여이 문제를 해결할 수 있습니다 .

외부 2 / 3 / 4로 그것은 우려의 작은 : 당신이 가지고해야 할 것 있도록 기본 / 일반 4K로 파일 크기 제한이 2TiB입니다 차단 거대한 이 문제 (이러한 조건에서 최대 볼륨 크기가 될 때까지 볼륨을 16TiB입니다).

(여전히 실험적인) btrfs를 사용하면 최대 파일 및 볼륨 크기는 모두 16EiB입니다.

NTFS에서는 최대 파일 길이가 최대 볼륨 길이보다 큰 경우도 있습니다.

자세한 정보의 시작점 :
http://en.wikipedia.org/wiki/Ext3#Size_limits
http://en.wikipedia.org/wiki/Btrfs
http://en.wikipedia.org/wiki/Ntfs#Scalability

가상 장치

최근 의견에서 언급했듯이 가상 장치에 대한 추가 고려 사항이 있습니다.

  • 드문 드문 할당 된 가상 디스크의 같은에서 사용하는 것과 같은 다른 방법은 zerofree빠른 (하지만 달리 할 것이다 cat그리고 dd이것은 당신이 거의 모든 유닉스-A와 같은 OS에서 사용할 수있는 신뢰할 수있는 표준 도구가 아닙니다).

  • 스파 스 가상 장치의 블록을 0으로 설정하면 기본 물리적 장치 의 블록이 지워지지 않을 수 있습니다 . 실제로는 가능하지 않다고 말할 수 있습니다. 가상 디스크 관리자는 더 이상 사용하지 않는 블록을 만듭니다. 나중에 다른 것에 할당 할 수 있습니다.

  • 고정 크기 가상 장치의 경우에도 장치의 물리적 위치를 제어 할 수 없으므로 언제든지 현재 위치를 중심으로 또는 새로운 물리 디스크 세트로 이동할 수 있으며 가장 많이 닦을 수있는 것은 현재 위치가 아닙니다. 과거에 블록이 있었던 이전 위치

  • 가상 장치에 대한 위의 문제의 경우 : 호스트를 제어하고 VM에서 디스크를 지우거나 가상 장치를 이동 한 후 할당되지 않은 공간을 안전하게 지울 수없는 경우가 아니면이 작업을 수행 할 수있는 작업이 없습니다. 것. 유일한 해결책은 처음부터 전체 디스크 암호화 를 사용하는 것입니다따라서 암호화되지 않은 것은 무엇이든 먼저 물리적 매체에 기록됩니다. 물론 VM 내에서 여유 공간 제거를 요구할 수도 있습니다. 또한 가상화 계층에서 사용되지 않는 블록을 실제로 볼 수 없으므로 FDE는 스파 스 가상 장치의 유용성을 떨어 뜨릴 수 있습니다. OS의 파일 시스템 계층이 가상 장치에 트림 명령을 전송하고 (SSD 인 경우) 가상 컨트롤러가이를 해석하면이 문제가 해결 될 수 있지만 실제로 이러한 상황이 더 넓은 상황은 알 수 없습니다. 그 문제에 대한 논의는 다른 곳의 문제입니다 (원래 질문에 대한 주제를 벗어난 것에 가까워지고 있습니다. 이로 인해 관심을 끌면 몇 가지 실험 및 / 또는 후속 질문이 순서에있을 수 있습니다).


4
간단한 영점 조정은 secure-delete도구를 사용하여 수행 할 수도 있습니다 sfill -llz.
foraidt

시간이 좀 걸립니다. 정말 빠른 방법입니까? 난 항상 시간이 걸릴 것입니다 데이터의 GB를 기록 같아요 ...
endolith

2
@endolith : 활성 파일 시스템의 여유 공간을 비우려면 파일 시스템 오버 헤드를 통해 많은 양의 데이터를 쓸 필요가 없습니다. fnord_ix가 제안한 보안 삭제 도구는 이러한 유형의 작업에 최적화되어 있기 때문에 더 빠를 수 있습니다.
David Spillett

2
@endolith : man page의 설명에서 zerofree의 변형은 드문 드문 할당 된 가상 디스크에 대해서만 더 빠를 것으로 예상됩니다. 실제로 읽기 전에 쓰기를 수행하는 경우 실제 또는 고정 크기 가상 디스크에서는 느릴 수 있습니다 블록에 내용이 없음을 확인합니다. 대부분의 스파 스 디스크 드라이버가 "이 블록을 할당하지 않음"으로 모두 0을 취하므로 가상 디스크의 벌룬 현상은 발생하지 않아야합니다. 또한, cat그리고 dd그들이 어디에 표준 도구로 간주되므로 거의 모든 유닉스-A와 같은 OS에서 사용할 수있는 zerofree명시 적으로 추가되지 않는 한 아마되지 않습니다.
David Spillett

1
@endolith : 위의 말 한 zerofree확실히 물론 작동합니다, (거의하지만 확실히 내 예제에서 small.file jiggery의 pokery에 의해 완화) 매뉴얼 페이지에서 언급 한 "전체 파일 시스템을 임시로 전체"일이 있다 진짜 관심사는 경우에 당신은 현재 활성화 된 시스템에이 일을하고 있으며, zerofree실제로이 최적화되어 특정 인스턴스에서 빠른 것 : 드문 드문 할당 된 가상 블록 장치. 보안 목적으로 가상 장치를 지우는 데 의존 할 수는 없지만,이 경우 유일한 대답은 처음부터 전체 장치를 암호화하는 것입니다.
David Spillett

45

경고

닦아 낸 후에도 photorec 이 디스크에서 검색 할 수있는 파일 수 에 충격을 받았습니다 .

"여유 공간"을 0x00으로 1 회 채우거나 다른 언어 적 표준으로 38 회 채우는 데 더 많은 보안이 있는지 여부는 학문적 논의에 더 가깝습니다. 파쇄에 관한 1996 년 논문의 저자는 현대 하드웨어에는 쓸모없고 불필요하다고 말하는 에필로그를 썼습니다 . 데이터가 물리적으로 0으로 대체되고 이후에 복구 된 경우에 대한 문서화 된 사례는 없습니다.

이 절차에서 실제로 깨지기 쉬운 링크파일 시스템 입니다. 일부 파일 시스템은 특수 용도로 사용 가능한 공간을 예약하며 "사용 가능한 공간"으로 사용할 수 없습니다. 그러나 데이터가있을 수 있습니다 . 여기에는 사진, 개인 일반 텍스트 이메일 등이 포함됩니다. reserved + space + ext4를 방금 검색 한 결과 home파티션 의 5 % 가 예약되어 있음을 알게 되었습니다. 나는 이것이 photorec내 물건을 너무 많이 찾은 곳이라고 생각한다 . 결론 : 파쇄 방법이 가장 중요하지는 않지만 다중 패스 방법으로도 여전히 데이터를 그대로 둡니다 .

# tune2fs -m 0 /dev/sdn0장착하기 전에 시도해 볼 수 있습니다 . (다시 부팅 한 후 루트 파티션이되면 실행 -m 5하거나 -m 1마운트 해제 한 후 확인하십시오 ).

그러나 여전히 어떤 방법 으로든 남은 공간이있을 수 있습니다.

진정으로 안전한 유일한 방법은 전체 파티션을 지우고 파일 시스템을 다시 만든 다음 백업에서 파일을 복원하는 것입니다.


빠른 길 (권장)

지우려는 파일 시스템의 디렉토리에서 실행하십시오.

dd if=/dev/zero of=zero.small.file bs=1024 count=102400
dd if=/dev/zero of=zero.file bs=1024
sync ; sleep 60 ; sync
rm zero.small.file
rm zero.file

작은 파일의 목적은 여유 공간이 완전히 0 인 시간을 줄이는 것입니다. 동기화의 목적은 데이터가 실제로 기록되도록하는 것입니다.

이것은 대부분의 사람들에게 충분해야합니다.

느린 길 (편집증)

위의 정리 후에 데이터가 복구 된 경우에 대해서는 기록 된 사례가 없습니다. 가능하다면 비용이 많이 들고 자원이 많이 필요할 것입니다.

그러나 비밀 기관이 파일을 복구하는 데 많은 리소스를 소비 할 것이라고 생각할만한 이유가 있다면 다음과 같이 충분합니다.

dd if=/dev/urandom of=random.small.file bs=1024 count=102400
dd if=/dev/urandom of=random.file bs=1024
sync ; sleep 60 ; sync
rm random.small.file
rm random.file

시간이 훨씬 더 걸립니다.

경고. 편집증 방식을 선택했다면, 그 후에도 여전히 빠른 닦기를하고 싶을 것입니다. 그것은 편집증이 아닙니다. 순전히 임의의 데이터가 있으면 쉽고 저렴하게 감지 할 수 있으며 실제로 암호화 된 데이터라는 의심이 제기됩니다. 암호 해독 키를 공개하지 않으면 고문을 당할 수 있습니다.

매우 느린 길 (미친 편집증)

파쇄에 관한 1996 년 논문의 저자조차도 이것이 현대 하드웨어에는 쓸모없고 불필요하다는 에필로그를 썼습니다.

그러나 아직 자유 시간이 많고 디스크를 너무 많이 쓰지 않고 낭비하지 않는다면 다음과 같이 진행됩니다.

dd if=/dev/zero of=zero.small.file bs=1024 count=102400
sync ; sleep 60 ; sync
shred -z zero.small.file
dd if=/dev/zero of=zero.file bs=1024
sync ; sleep 60 ; sync
rm zero.small.file
shred -z zero.file
sync ; sleep 60 ; sync
rm zero.file

참고 : 이는 기본적으로 보안 삭제 도구를 사용하는 것과 같습니다.


편집하기 전에이 게시물은 David Spillett의 글을 다시 썼습니다. "cat"명령은 오류 메시지를 생성하지만 다른 사람의 게시물에 대한 의견을 쓸 수 없습니다.


다른 사람의 게시물에서 50 개의 평판으로 댓글을 달 수 있습니다 .
Gnoupi

1
cat명령은 실행이 끝날 때 내 예제에서 "공백 없음"오류가 발생합니다. stderr을 /dev/null문제가있는 경우 리디렉션하여 이를 숨길 수 있습니다 . 나는 일반적으로 사용하는 pv것보다 cat또는 dd유용한 진행 표시를 얻기 위해, 이런 종류의 물건에 대해.
David Spillett

4
...raises the suspicion that it is actually encrypted data. You may die under torture for not revealing the decryption key.허, 정확히 내가 생각한 것입니다. 나는 그것이 편집증이라는 것을 의미한다고 생각합니다 ...
Navin

2
루트는 항상 예약 된 공간을 사용할 수 있습니다. 따라서 루트로 제로 채우기를 수행하면 예약 된 5 % 공간도 채울 수 있습니다. 조율사는 불필요합니다. 파일 시스템의 다른 부분에 데이터가있을 수 있습니다.
Nate Eldredge

1
@NateEldredge dd루트로 실행하면 루트가 dd없는 것보다 더 많은 파일 시스템에 액세스 할 수 있음을 나타내는 소스가 있습니까? 나는 이것이 사실이라고 믿고 싶지만 현재로서는 이유가 없다.
Hashim

27

적어도 우분투에는 제로 프리 유틸리티가 있습니다.

http://manpages.ubuntu.com/manpages/natty/man8/zerofree.8.html

   zerofree — zero free blocks from ext2/3 file-systems

   zerofree  finds  the  unallocated, non-zeroed blocks in an ext2 or ext3
   filesystem (e.g. /dev/hda1) and fills them with zeroes. This is  useful
   if  the  device  on  which this file-system resides is a disk image. In
   this case, depending on the type of disk image, a secondary utility may
   be  able  to  reduce the size of the disk image after zerofree has been
   run.

   The usual way to achieve  the  same  result  (zeroing  the  unallocated
   blocks)  is to run dd (1) to create a file full of zeroes that takes up
   the entire free space on the drive, and then delete this file. This has
   many disadvantages, which zerofree alleviates:

      ·  it is slow;

      ·  it makes the disk image (temporarily) grow to its maximal extent;

      ·  it  (temporarily)  uses  all  free  space  on  the disk, so other
         concurrent write actions may fail.

   filesystem has to be unmounted or mounted  read-only  for  zerofree  to
   work.  It  will exit with an error message if the filesystem is mounted
   writable. To remount the  root  file-system  readonly,  you  can  first
   switch to single user runlevel (telinit 1) then use mount -o remount,ro
   filesystem.

또한 zerofree :에 관한이 링크를 확인하십시오 : 파일 시스템 이미지를 드문 드문 유지하십시오 -그것은 작성자의 것입니다-Ron Yorston (2012 년 8 월 9 일)


3
zerofree가 작동하려면 파일 시스템을 마운트 해제하거나 읽기 전용으로 마운트해야합니다.
AntonioK

1
루트 파일 시스템에서이를 수행하는 방법에 대한 정보를 포함시키는 것이 좋습니다. 내 느낌은 이것이 작동하지 않는다는 것입니다. 파일 시스템을 마운트 해제해야하며 동시에 해당 파일 시스템에서 도구를 실행해야하기 때문입니다.
Ant6n

이것은 또한 CentOS와 함께 제공됩니다
davidgo

3

다음은 GUI를 사용하여 수행하는 방법입니다.

  1. BleachBit 설치
  2. 응용 프로그램-시스템 도구-BleachBit를 관리자로 클릭하여 루트로 실행하십시오.
  3. 환경 설정에서 원하는 경로를 알려주십시오. 일반적으로 잘 추측합니다. 각 파티션마다 하나의 쓰기 가능한 경로를 포함하려고합니다. 동일한 파티션이 아닌 경우 일반적으로 / home / username 및 / tmp입니다.이 경우 하나만 선택하십시오.
  4. 시스템-사용 가능한 디스크 공간 지우기 상자를 선택하십시오.
  5. 삭제를 클릭하십시오.

dd에 비해 BleachBit의 발전은 디스크가 마지막으로 가득 찼을 때 BleachBit가 작은 파일을 만들어 inode (파일 이름과 같은 메타 데이터를 포함)를 지우는 것입니다.


드라이브에서 여유 공간을 스스로 제거 할 수 있도록 Bleachbit의 오픈 소스 파이썬 코드를 검사 하십시오.
shadowbq

2

내가 사용 dd후 빈 공간을 채우기 안전한 삭제 유틸리티를 사용하여 하나 개 이상의 큰 파일을 할당 할 수 있습니다.

dd로 파일을 할당하려면 :

dd if=/dev/zero of=delete_me bs=1024 count=102400

delete_me100MB 크기 의 파일이 생성됩니다 . (여기서 bs"블록 크기"는 1k로 설정되어 count있으며 할당 할 블록 수입니다.)

그런 다음 shred생성 된 파일에서 즐겨 사용하는 보안 삭제 유틸리티 (사용했습니다 )를 사용하십시오.

그러나 참고 : 버퍼링은 전체 디스크를 사용 하더라도 모든 것을 얻지 못할 수도 있음을 의미합니다 !


링크scrub 는 여유 공간 제거를 권장 합니다. 시도하지 않았습니다.


오, 메모리가 나에게 도움이된다면 scrub한 번 시도해 전체 파일 시스템을 손상 시켰습니다. 운 좋게도 실제 데이터가 아닌 테스트 파일 시스템에서 처음 실험하는 것이 좋습니다.
landroni

2

최고 속도로 드라이브를 닦습니다.

요즘 드라이브 암호화에 대한 일반적인 지침은 먼저 드라이브를 WIPE하도록 지시합니다.

아래 명령은 AES 암호문으로 드라이브를 채 웁니다.

기본 부팅 드라이브를 닦아야 할 경우 라이브 CD를 사용하십시오.

터미널을 열고 권한을 높이십시오.

sudo bash

안전을 위해 시스템의 모든 드라이브를 나열하십시오.

cat /proc/partitions

참고 : /dev/sd{x}닦으려는 장치로 교체하십시오 .

경고 : 이것은 아마추어를위한 것이 아닙니다! 시스템을 부팅 할 수 없게 만들 수 있습니다 !!!

sudo openssl enc -aes-256-ctr -pass pass:"$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64)" -nosalt < /dev/zero > /dev/sd{x}

이것이 얼마나 빠른지 놀랐습니다.



2

보안 삭제 패키지를 사용하여 여유 공간을 정리할 수 있습니다.

이 패키지에는 sfill도둑, 법 집행 기관 또는 기타 위협으로 복구 할 수없는 안전한 방식으로 매체의 사용 가능한 디스크 공간에있는 데이터를 삭제하도록 설계된 도구가 있습니다.

Linux (Ubuntu)에서 보안 삭제 패키지를 설치하려면 다음 명령으로 설치하십시오.

$ sudo apt-get install secure-delete

여유 공간이없는 데이터 를 지우 려면 다음 명령을 시도하십시오.

sfill -f -v -ll /YOUR_MOUNTPOINT/OR_DIRECTORY

여기서 / YOUR_MOUNTPOINT / OR_DIRECTORY는 여유 공간을 지우는 마운트 지점 ( df -h, mount) 또는 디렉토리입니다.

http://manpages.ubuntu.com/manpages/hardy/man1/sfill.1.html 에서 설명서를 읽으십시오 .


1

dd를 사용하고 여유 공간을 0으로 만드십시오. 신화 데이터는 여러 번 덮어 써야하며 (Peter Guntmann에게 물어보십시오) 무작위 데이터는 1과 반대로 0은 부 자연스러운 활동을 암시합니다. 최종 결과는 쓰기에 소요되는 시간이 적은 깨끗한 드라이브입니다. 게다가, 안전한 삭제 프로그램은 심지어 최신 파일 시스템 (journaled)에서 실제 파일을 덮어 쓸 수 없습니다. 자신에게 호의를 베풀고 photorec를 얻고, 드라이브를 스캔하여 엉망을보고, 1로 지우고 선택적으로 0으로 닦아서 손대지 않게하십시오. photorec에서 여전히 항목을 찾으면 사용 가능한 모든 항목을 스캔하고 있으므로 루트 사용자로 다시 신중하게 수행하십시오.

cia / fbi / nsa에는 자기 미디어 비트의 실제 상태를 읽을 수있는 멋진 기계가 없습니다. 그것은 오래 전에 쓰여진 논문 일뿐입니다. "가정". 1 번만 닦으면됩니다.


1
몇 가지 흥미로운 말이 있지만 실제로이 정보를 뒷받침 할만한 자료가 있습니까? 모든 덮어 쓰기가 쓸모 없다고 믿기 어렵습니다. 또한 게시물을 개선하십시오. 문장 부호를 잘 읽어보기가 어렵습니다.
gronostaj

@gronostaj : " 최신 드라이브 에 대한"신화 데이터가 여러 번 덮어 써 져야한다 "는 주장 은 적어도 여러 연구에서 입증되었습니다. Gutmann이 추천 한 30 개 이상의 패스는 저자 자신이 인정한대로 더 이상 필요하지 않습니다.
Karan

1

scrub 을 사용하는 것이 더 쉽습니다 .

scrub -X dump

dump현재 위치에 폴더 가 생성 되고 디스크가 가득 찰 때까지 파일이 생성됩니다. -p옵션 ( nnsa|dod|bsi|old|fastold|gutmann)을 사용하여 패턴을 선택할 수 있습니다 .

스크럽을 설치하는 것은 쉽지 않지만 (이 부분 의 우분투 포럼 참조 ) 설치가 완료되면 실제로 간단하고 효율적인 도구를 사용할 수 있습니다.


메모리가 나에게 도움이 scrub되면 한 번 시도 하고 전체 파일 시스템이 손상되었습니다. 운 좋게도 실제 데이터가 아닌 테스트 파일 시스템에서 처음 실험하는 것이 좋습니다.
landroni

당신이 한 일이나 무슨 일이 일어나고 있는지 모르지만, 스크럽은 기본적으로 파일 시스템을 채울 때까지 새 파일을 만듭니다. ... 그것은 기존의 파일을 재생하지 않습니다, 둘은 그들 중 (적어도 명령 I 준)을 삭제 않습니다
FMaz008

1
과연. 시도 scrub -X dump_dir하고 잘 작동 한 것 같습니다. BTW, Ubuntu 14.04에 설치하는 것은 매우 간단 apt-get install scrub합니다.
landroni

1

내가 사용하는 "sdelete.sh"스크립트는 다음과 같습니다. 자세한 내용은 의견을 참조하십시오.

# Install the secure-delete package (sfill command).

# To see progress type in new terminal:
# watch -n 1 df -hm

# Assuming that there is one partition (/dev/sda1). sfill writes to /.
# The second pass writes in current directory and synchronizes data.
# If you have a swap partition then disable it by editing /etc/fstab
# and use "sswap" or similar to wipe it out.

# Some filesystems such as ext4 reserve 5% of disk space
# for special use, for example for the /home directory.
# In such case sfill won't wipe out that free space. You
# can remove that reserved space with the tune2fs command.
# See http://superuser.com/a/150757
# and https://www.google.com/search?q=reserved+space+ext4+sfill

sudo tune2fs -m 0 /dev/sda1
sudo tune2fs -l /dev/sda1 | grep 'Reserved block count'

sudo sfill -vfllz /

# sfill with the -f (fast) option won't synchronize the data to
# make sure that all was actually written. Without the fast option
# it is way too slow, so doing another pass in some other way with
# synchronization. Unfortunately this does not seem to be perfect,
# as I've watched free space by running the "watch -n 1 df -hm"
# command and I could see that there was still some available space
# left (tested on a SSD drive).

dd if=/dev/zero of=zero.small.file bs=1024 count=102400
dd if=/dev/zero of=zero.file bs=1024
sync ; sleep 60 ; sync
rm zero.small.file
rm zero.file

sudo tune2fs -m 5 /dev/sda1
sudo tune2fs -l /dev/sda1 | grep 'Reserved block count'

1

Linux 및 MacOS에서 작동하는 간단한 솔루션을 찾았습니다. 디스크의 루트 폴더로 이동하여 다음 명령을 시작하십시오.

for i in $(seq 1 //DISKSPACE//); do dd if=/dev/zero of=emptyfile${i} bs=1024 count=1048576; done; rm emptyfile*;

여기서 // DISKSPACE //는 하드 디스크의 크기 (GB)입니다.


0

때로는이 bash one-liner를 사용합니다.

while :; do cat /dev/zero > zero.$RANDOM; done

디스크가 가득 찼다는 메시지가 표시되면 Ctrl+를 누르고 C생성 된 zero.*파일을 제거하십시오 .

파일 크기 제한에 관계없이 모든 시스템에서 작동합니다. 오류를
무시하십시오 cat: write error: File too large.


0

이것은 대답이 아닙니다! 사용하고자하는 사람들을위한 코멘트 일 뿐이 pv므로 투표를 귀찮게하지 마십시오.

리눅스 민트 17.3 당신은 사용할 수 있습니다 pv( 파이프보기를 쓰기의 진행 상황을 얻기 위해). 예를 들면 다음과 같습니다.

# Install pv (pipe view)
sudo apt-get install pv

# Write huge file of approximate size of /dev/sdb, using urandom data:
pv --timer --average-rate --progress --numeric --eta --interval 5 --size "$(blockdev --getsize64 /dev/sda )" /dev/urandom >rand.file

여기서 장점은 진행률 표시 줄, ETA 및 지속적으로 업데이트되는 데이터 속도를 얻는 것입니다. 단점은 한 줄에 기록되며 디스크가 가득 차면 (오류를 반환) 사라집니다. OS가 디스크를 사용할 가능성이 높기 때문에 특히 OS 볼륨에서 전체 크기가 대략적으로 발생하기 때문입니다.

아주 오래된 HD에서는을 사용하여 약 13MB / s ,을 사용하면 약 70MB / s의 데이터 속도를 얻습니다 . 원료를 사용하는 경우 이것은 아마도 더 향상시킬 것이다 나 , 그리고 ./dev/urandom/dev/zeroddcatpv


-13

파일이 파일 시스템 레코드에서 제거되면 하드 디스크에 남아있는 데이터는 의미가없는 1과 0의 순서입니다. 무의미한 시퀀스를 다른 무의미한 시퀀스로 교체하려는 경우 arconis와 같은 드라이브를 안전하게 지우는 일부 상용 제품에 대한 조언을 얻을 수 있습니다.


22
이전 파일 내용의 연속 된 덩어리는 여전히 디스크에 남아 있으며 원시 디스크 데이터를 직접 검사하는 경우에는 의미가 없습니다.
Alex B
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.