USB에 장착된 하드 드라이브가 있습니다.7GB다음 명령을 사용하여 의사 난수 데이터로 채우려고 시도한 여유 공간:
$ cd /media/username/volume_name
$ sudo dd if=/dev/urandom of=random_data_file.txt
random_data_file.txt
이전에는 존재하지 않았습니다. 나는 명령이 파일을 만들고, 의사 난수 데이터를 쓰고, 포함된 파티션이 가득 차면 중지할 것으로 예상했습니다. 파일 관리자의 상태 표시줄에는 결국 0 bytes
여유 공간이 표시됩니다. 그러나 dd
명령은 중지되지 않았으며 터미널 에뮬레이터나 파일 관리자 모두 드라이브가 가득 찼다는 알림을 표시하지 않았습니다. 으로 명령을 종료한 후 Ctrl+C
터미널 출력은 다음과 같습니다.40GB작성되었습니다. 관리자에서 파일을 선택했는데 상태 표시줄에도 크기가 다음과 같이 표시되었습니다.40GB이는 이전 여유 공간보다 33GB 더 많은 것입니다.
- 이 명령이 다른 파일, 파티션 또는 다른 파티션 중 일부를 덮어쓰거나 수정했을 가능성이 있습니까? 아니면
random_data_file.txt
40GB / 7GB = 5.7번 쓰고 덮어썼다는 뜻인가요 ? 후자인 경우 파일 관리자가 크기를 7GB보다 크게 표시한 이유는 무엇입니까? 파일 관리자를 사용하여 삭제하면random_data_file.txt
상태 표시줄에 여유 공간이 7GB로 표시됩니다. dd
해당 출력 파일을 포함하여 아무것도(동일한 파티션의 여유 공간 제외) 덮어쓰지 않고 포함 파티션이 가득 찰 때까지 출력 파일에 의사 난수 데이터를 생성하고 쓰는 명령을 사용하는 올바른 방법은 무엇입니까 ?
답변1
디스크 하드웨어가 양호하고(가짜 사용 가능한 공간을 표시하는 사기성 SD 카드가 아님) 파일 시스템이 손상된 여유 목록 및 블록이 아직 여유 목록에 있는 파일로 인해 손상되지 않았다고 가정하면 dd if=/dev/urandom of=random_data_file.txt
디스크가 손상되거나 아무것도 덮어쓰지 않을 것입니다(기타 random_datafile.txt보다).
앞에 sudo가 필요하지 않았을 가능성이 높으며 dd 명령이 올바른지 확실하지 않은 경우 sudo로 실행해서는 안 됩니다.
예상보다 많은 데이터를 쓴 한 가지 가능한 이유는 일반 사용자가 디스크가 꽉 찬 것을 볼 때 루트가 계속 쓸 수 있도록 대부분의 파일 시스템이 약간의 여유 공간(일반적으로 5%)을 예약하기 때문입니다. (다시 말하지만, sudo로 이렇게 하지 마세요...)