저는 Windows 호스트의 가상 머신(VMWare)에서 Ubuntu 18.04.1을 실행하고 있습니다. dd를 사용하여 전체 SD 카드를 0으로 만들려고 합니다. 이는 임베디드 Linux를 소프트웨어 그룹에 릴리스하는 데 사용하는 프로세스의 일부입니다(빈 FS 데이터가 모두 0일 때 SD 카드 이미지가 더 잘 압축됩니다).
내가 사용하는 명령은 다음과 같습니다. sudo dd if=/dev/zero of=/dev/sdc bs=4M status=progress
성공적으로 완료되었습니다. 장치에 남은 공간이 없다는 메시지와 함께 전송 기록이 출력됩니다. 그런 다음 디스크 내용을 살펴보면 sudo cat /dev/sdc | hexdump
디스크는 여전히 0이 아닌 데이터로 가득 차 있습니다(단순히 끝이 아님).
SD 카드가 일관되게 작동하려면 SD 카드의 바이트 수를 지정해야 합니까? 이 문제는 SD 카드를 초기화할 때마다 발생하지 않습니다.
전체 콘솔 출력:
gen-ccm-root@ubuntu:~$ sudo dd if=/dev/zero of=/dev/sdc bs=4M status=progress
15929966592 bytes (16 GB, 15 GiB) copied, 1274 s, 12.5 MB/s
dd: error writing '/dev/sdc': No space left on device
3799+0 records in
3798+0 records out
15931539456 bytes (16 GB, 15 GiB) copied, 1274.19 s, 12.5 MB/s
gen-ccm-root@ubuntu:~$ sudo cat /dev/sdc | hexdump
[sudo] password for gen-ccm-root:
0000000 0000 0000 0000 0000 0000 0000 0000 0000
*
0101000 2004 0000 6004 0000 0000 0000 0000 0000
0101010 0000 0000 0000 0000 0000 0000 0000 0000
*
0101400 2005 0000 6005 0000 0000 0000 0000 0000
...
답변1
댓글에서 말했듯이 SD 카드에 불량 블록이 있습니다.
내가 생각해낸 해결책은 다음을 실행하는 것이었습니다.
badblocks -t 0x0000 -sw /dev/sdc
경고하다:이는 데이터를 파괴하는 행위입니다 dd if=/dev/zero
.
사용자는 다음과 유사한 내용을 받습니다.
7234624 done, 39:10 elapsed. (0/0/2417408 errors)
SD 카드가 손상되었음을 나타냅니다.
SD 카드를 교체하면 문제가 해결됩니다.
답변2
사용
sudo fdsik -l
예를 들어 결과를 확인하세요.
/dev/mmcblk0
/dev/mmcblk01
/dev/mmcblk02
결과가 다를 수 있습니다!
이제 다음을 사용해야 합니다.
sudo dd bs=4M if=exmple.img of=**/dev/mmcblk0** conv=fsync status=progress