別の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
尾部分も読んでくれます。尾がゼロであっても、ハッシュ値は変わります。
長さを確認foo.iso
したら、最初の部分のハッシュのみをインポートする必要があります。
たとえば、GNUシステムの場合:
len=$(stat -c %s foo.iso)
sudo head -c "$len" /dev/sdb | md5sum
(または出力を確認してls -l
ファイルの長さを取得します。)