나에게는 다음 명령이 정확히 동일한 작업을 수행합니다.
dd if=/dev/zero of=/dev/sd1
dd if=/dev/null of=/dev/sd1
rm -r /dev/sd1/*
즉, 적용 결과는 동일합니다. 아니면 적어도 첫 번째와 세 번째의 경우입니다. 이게 정말 사실인가요?
답변1
아니요, 그들은 같은 일을 하지 않습니다. rm /dev/sda1
장치 노드를 삭제하면 장치의 모든 파일이 변경되지 않습니다. 당신이 실수를 했다고 가정하고 실제로 그런 일을 했다면 rm -r /mountpoint/of/dev/sda1
, 이 명령들은 비슷한 효과를 낼 것입니다.
그러나 여전히 중요한 차이점이 있습니다. rm
inode를 제거하면 파일 시스템을 통해 파일 데이터에 효과적으로 액세스할 수 없게 됩니다. 그러나 데이터는 새 데이터로 덮어쓸 때까지 장치에 남아 있습니다. 일반적으로 원시 장치 데이터( dd if=/dev/sda1
)를 복사하고 이에 대해 복구 도구를 실행하여 대부분의 데이터를 복구할 수 있습니다 .
dd if=/dev/zero of=/dev/sda1
장치의 모든 바이트를 덮어쓰게 됩니다.상당히장치에서 데이터를 복구하는 것이 더 어려워집니다. 일부 법의학 회사에서는 여전히 마법을 사용할 수 있으며 이러한 일이 발생하지 않도록 장치를 무작위 데이터로 여러 번 덮어쓰는 것이 권장되는 경우가 많습니다. 그러나 이것이 정말로 걱정된다면 데이터를 제거하는 가장 좋은 방법은 장치를 물리적으로 파괴하는 것입니다.