파일 시스템을 파괴하지 않고 하드 드라이브의 내용을 제로화

파일 시스템을 파괴하지 않고 하드 드라이브의 내용을 제로화

노인이 사용하다가 악성코드에 감염되었을 가능성이 있는 오래된 컴퓨터에서 외장하드에 사진을 많이 복사해 봤습니다. 사진은 다른 하드에 넣어두었어요. 이제 외장 하드 드라이브는 완전히 비어 있지만 편집증이 심해서 드라이브에 맬웨어나 악성 코드가 남아 있지 않은지 확인하고 싶습니다.

그래서 파일 시스템이나 파티션 테이블을 파괴하지 않고 0으로 채우고 싶습니다. 어떤 면에서는 디스크를 방금 구입한 것처럼 돌려받고 싶습니다.

그렇게 하는 것이 가능합니까? 그리고 그렇게 하는 Linux 명령이 있습니까?

내 하드 드라이브는 msdos(mbr) 파티션 테이블을 사용하여 NTFS로 포맷되었습니다.

답변1

쉬운 대답:

mount /dev/your/disk /some/free/mountpoint
dd if=/dev/zero of=/some/free/mountpoint/zero bs=512
sync # See edit below
rm /some/free/mountpoint/zero
umount /some/free/mountpoint

이렇게 하면 요청한 대로 정확하게 수행됩니다. 파일 시스템의 파일에 사용할 수 있는 모든 공간을 0으로 덮어씁니다.

더 복잡한 답변:

  • MBR을 핵무기로 공격하지 않으면 MBR 바이러스가 없는지 확신할 수 없습니다.
  • 빈 파일 시스템은 가치가 없습니다

따라서 나는 장치를 핵폭발한 다음(즉, MBR 및 파일 시스템을 포함하여 장치를 0으로 설정) 파티션 테이블을 다시 생성하고mkfs.ntfs -f -L LABEL -I

편집하다

sync@Nyos가 주석 에서 지적했듯이 NTFS 드라이버가 동기화를 마운트하지 않는 경우(기본값을 모르겠습니다) rm. 현재 버전(2020-05-02로 완전히 패치된 Ubuntu 18.04 기준)은 지연된 블록을 할당하지 않으므로 sync할당된 모든 블록이 에 기록되므로 꼭 필요한 것은 아니지만 umount우리도 미래를 알 수 없고 나도 알 수 없습니다. 전체 소스 코드를 읽어보세요.

같은 참고 사항: NTFS 드라이버가 스파스 파일 지원을 받으면 (거의) 끝없는 쓰기를 피하기 위해 /dev/urandom대신 사용해야 할 수도 있습니다./dev/zero

답변2

이것은 귀하의 질문에 전혀 대답하지 않지만 ... 그럼에도 불구하고 :

첫째, 디스크를 0으로 만드는 것은 정말 나쁜 생각입니다. 이는 "전통적인" 디스크의 경우에도 마찬가지이며 솔리드 스테이트 디스크의 경우에는 더욱 그렇습니다. 디스크를 제로화하는 것은 쉬운 일이지만(파일을 만들고 채우면 됩니다. Eugen Rieck이 정확한 방법을 제공합니다) 시간이 오래 걸리고 디스크가 마모됩니다. 모든 종류의 하드 디스크에서 쓰기 주기는 무한하지 않습니다.
또한 덮어쓰기가 실제로 의도한 대로 작동한다는 보장도 없다는 점에 유의하세요. 귀하의 목적에서는 차이가 눈에 띄지 않지만 다른 목적(기밀 데이터의 안전한 삭제 등)에서는 접근 방식이 완전히 신뢰할 수 없습니다. 웨어 레벨링과 재할당 덕분에 무언가를 덮어쓸 때 무슨 일이 일어나는지 전혀 알 수 없기 때문입니다. 드라이브는 변경은커녕 누구도(운영 체제 포함!) 모르거나 알 수 없는 상태에서 많은 작업을 수행합니다. 예를 들어 컨트롤러가 재시도 횟수나 CRC 등에 만족하지 않아 섹터가 재할당된 경우 앞으로 원하는 것은 무엇이든 할 수 있으며 해당 섹터에 더 이상 액세스할 수 없게 됩니다. 다시는. 그럼에도 불구하고 데이터 또는 그 중 남은 것(알 수 없음)은 그대로 유지되며 잠재적인 도둑이 이를 읽을 수 있습니다.

둘째, 완전한 편집증 모드로 작동할 때, 특히 디스크가 "비어 있을" 때 파일 시스템(및 MBR)을 유지하는 것은 정말 정말 나쁜 생각입니다. 파일 시스템의 UUID 외에는 새 파일 시스템을 생성하는 것만으로는 아무것도 잃지 않습니다(아마도될 수 있다어떤 상황에서는 약간 성가시지만 해결하기도 쉽습니다.) 그러나 예상하지 못한 곳에는 아무것도 남지 않았다는 확신을 얻게 됩니다(예: MBR).

셋째, 실제로는 전혀 비어 있지 않은 "빈" 파일 시스템을 제로화하고 재사용하는 것은 좋지 않은 생각입니다. 대신 처음부터 새 FS(오래된 변경 저널 항목, 보이지 않는 항목, 잊어버린 스트림, 속성, 조각화된 MFT 등 없이)를 생성할 수 있으면 성능 측면에서 나쁩니다. 모든 것을 처음부터 다시 만드는 것이 훨씬 더 안전할 뿐만 아니라 훨씬 더 빠르며 앞으로 전반적인 성능이 향상될 가능성이 높습니다.

tl;dr

대부분의 장치에는 함께 제공되는 관리 도구 또는 표준 ATA 명령을 통한 다른 도구에서 지원되는 전용 보안 삭제 또는 "공장 재설정" 옵션(동일함)이 있습니다. 드라이브는 가장 효율적이고 가장 덜 파괴적인 방법을 사용합니다. 일부 드라이브는 실제로 기능을 지원하지 않고 전체 디스크를 덮어쓰지만 대부분은 디스크 크기에 관계없이 거의 즉시 작동하는 암호화 또는 비트 스크램블링 키를 덤프합니다.

hdparm거의 모든 Linux 배포판에서 사용할 수 있는 이 버전에는 --security-erase정확한 목적에 맞는 옵션이 있습니다.

그러면 디스크가 제공됩니다."방금 산 것처럼"잠시 사용한 것을 제외하고. 가장 빠르고(기술적으로 가능한 범위 내에서) 디스크 손상을 최소화하는 방식으로 수행됩니다. 그런 다음 파티션을 나누고 파일 시스템을 만듭니다.

관련 정보