Linux에 능숙한 어린 조카에게 노트북을 잠시 빌려주기 전에, 그가 드라이브의 빈 공간에 내 개인 데이터를 새길 수 없도록 하고 싶었습니다. 나는 드라이브의 빈 공간을 여러 번 채웠습니다.
sudo cat /dev/urandom > some-file
sudo를 사용하면 남은 5% 공백이 무시되고 오류가 발생할 때까지 파일이 계속 커지므로 주의하시기 바랍니다.
그런데 해당 파티션에 대해 photorec을 실행했는데 갑자기 수백 개의 오래된 파일이 나타납니다. 그래서 적어도 호기심에서,이러한 파일은 어디에 저장되어 있으며 왜 무작위 노이즈로 덮어쓰지 않습니까?
(지금까지 내가 가진 유일한 설명은 파일 끝과 파일이 포함된 섹터 끝 사이의 빈 공간에 있을 수 있다는 것입니다. 그게 가능합니까?)
답변1
여기에는 약간의 오해가 있을 수 있으므로 명령이 예상한 대로 수행되지 않습니다.
sudo
sudo
을 읽을 필요가 없으므로 중복됩니다 /dev/urandom
. 해당 > some-file
부분은 셸 리디렉션이므로 sudo
전혀 포함되지 않습니다. 그래서 sudo
효율성이 매우 낮습니다. (노트:이 특별한 경우에는 sudo
어쨌든 예상대로 작동할 수 있습니다. 설명을 참조하세요. 그러나 sudo
이것을 사용하지 않는 것은 다른 상황에서 당신을 물릴 것이기 때문에 패턴입니다. )
그런 다음 일반 파일에 씁니다. 이는 파일이 있는 파일 시스템의 사용 가능한 공간을 채웁니다. 여러 파일 시스템(부팅 및 스왑 파티션 /
용 하나 등)이 있는 경우 /home
에도 영향을 받지 않습니다.
기껏해야 이것은 단지 다룰 것입니다사용 가능한 공간. 파일 시스템 내부, 루트 예약, 로그, 기타 압축/예약/기타 섹터에 따라 모든 것을 덮어쓰게 될 것이라는 보장은 없으며 여전히 정기적으로 존재하는 파일(숨겨진 파일을 포함할 수 있음)을 덮어쓰지 않을 것이라는 보장은 없습니다. /thumbnails/cache 폴더 또는 잊어버린 하위 디렉토리).
photorec
덮어쓰지 않으므로 이 모든 항목은 계속 선택됩니다 .
또한 파일 쓰기가 먼저 완료되어야 합니다. 따라서 나중에 삭제하는 대신 sync
모든 임의의 데이터가 실제로 디스크에 도달하고 단순한 RAM 쓰기 버퍼가 아니며 기록되지 않는지 먼저 확인 해야 합니다 .
따라서 이 방법을 사용하면 보장할 수 없습니다. 또한 파일 시스템의 여유 공간이 부족해지면 다른 모든 프로그램의 쓰기 실패로 인해 예상치 못한 데이터 손실이 발생할 수 있으므로 위험합니다.
답변2
조카가 보지 말아야 할 모든 데이터를 삭제하는 방법
나는 "삭제된" 데이터가 보관될 수 있는 모든 장소를 포괄할 수 있는 방법은 단 하나라고 생각합니다.
시스템을 백업합니다(전체 백업). 대안은 Clonezilla를 사용하여 복제 이미지를 만드는 것입니다.
전체 드라이브를 지웁니다(드라이브 1개 가정). HDD 또는 SSD인 경우 낮은 수준에서 작동하는 특수 도구/방법(논리적 메모리 위치와 물리적 메모리 위치 간의 매핑 변경)이 있으며 이는많은
dd
예를 들어 0으로 덮어쓰는 것 보다 빠릅니다. 일반적으로 (내부 드라이브)를 통해 이러한 도구에 액세스할 수 있습니다hdparm
.컴퓨터를 다시 설치하고 Linux에 능숙한 어린 조카에게 선물했습니다.
가장 간단한 방법
하지만 여유가 있다면 내장 드라이브를 분리하고 새 드라이브로 교체하세요. 조카가 가장 좋아하는 Linux 배포판을 설치하게 하세요 :-)
답변3
안전한 제거에는 sfill(안전 채우기) 도구를 사용해 보세요.
sudo apt-get install secure-delete
(에서https://superuser.com/questions/19326/how-to-wipe-free-disk-space-in-linux)