다른 USB 플래시 드라이브를 사용하여 Centos 및 Ubuntu를 실행하는 다른 컴퓨터에서 이것을 시도했지만 dd는 부팅할 수 없는 플래시 드라이브를 계속 생성합니다.
$ sudo dd if=foo.iso of=/dev/sdb bs=1M status=progress && sync
548****** bytes (548 MB, 523 MiB) copied, 7 s, 78.3 MB/s
551+1 records in
551+1 records out
577****** bytes (578 MB, 551 MiB) copied, 8.70126 s, 66.4 MB/s
$ sudo md5sum /dev/sdb
****************************ef59 /dev/sdb
$ sudo md5sum foo.iso
****************************21ce foo.iso
MD5는 다릅니다.
sudo dd if=/dev/sdb of=bar.iso bs=1M status=progress &&sync 의 결과는 바이트 간 비교 도구의 foo.iso와 완전히 다릅니다.
또 다른 점은 설치 후 플래시 드라이브가 잘 읽히지 않는다는 것입니다.
이 문제를 해결하는 이유와 방법은 무엇입니까?
답변1
저장 하는 데이터 /dev/sdb
는 그보다 길 수 있습니다 foo.iso
. 디스크 드라이브는 특정 길이로 자를 수 없으므로 dd
복사해야 하는 데이터만 복사하고 나머지는 그대로 둡니다. 읽으면 md5sum
꼬리 부분도 읽어줍니다. 꼬리가 0이더라도 여전히 해시 값이 변경됩니다.
길이를 확인한 foo.iso
후 초기 부분의 해시만 가져와야 합니다.
예를 들어 GNU 시스템의 경우:
len=$(stat -c %s foo.iso)
sudo head -c "$len" /dev/sdb | md5sum
(또는 출력을 확인하여 ls -l
파일 길이를 얻으십시오.)