CDに焼いたISOファイルがあります。今CDが正しく作成されたことを確認するには? ISOファイルで計算されたハッシュ合計を確認するために使用できるハッシュ合計を計算するコマンドが必要です。理想的には、コマンドは次のようになります。
- これはISOファイルに関係なく機能します。つまり、ディスク上のすべてのファイルのハッシュとリストを保持したり、ブロック数を覚えたりしたくありません。
- 比較的短い:1行のコマンドは大丈夫、2行の長いコマンドチェーンは大丈夫で、1ページにわたるスクリプトは悪いです。
- かなり効率的です。たとえば、
dd
ディスクをファイルに復元してからmd5sum
そのファイルから実行することはできません。
誰もが満足できない答えがなければ、最近の競争に感謝します。なぜそれほど直接的ではないのか教えてください。
答え1
基本的な問題は、元のISOとまったく同じ情報のmd5sumを取得したいということです。 ISOをCDに書き込むと、ディスクの末尾にスペースがある可能性があり、これは必然的にmd5sumを変更します。したがって、最も短い方法は次のとおりです。
md5sum /dev/cdrom
動作しません。動作するもの(そして一般的に使用されるもの)オンライン文書)デバイスから正しいバイト数を読み取り、実行してくださいmd5sum
。バイト数がわかっている場合は、次のことができます。
dd if=/dev/cdrom bs=1 count=xxxxxxxx | md5sum
ここで、「xxxxx」はisoのサイズ(バイト単位)です。
既存のバイトがわからないがディスクにまだISOがある場合は、次のようにしてlsを使用してそのバイトを取得できます(ここからインポート):
dd if=/dev/cdrom | head -c `stat --format=%s file.iso` | md5sum
動作しなければならない他の断線構造がたくさんあります。それぞれの場合、dd
ディスクからバイトを読み取るために使用しますが、そのバイトをファイルに転送せずにすぐにmd5sumに渡します。
bs=
より大きなブロックサイズを使用するためにいくつかの計算を実行すると、速度が向上する可能性があります(コマンドでdd
)。
答え2
これを行うためのプログラムがあります。これは…呼ばれる-- checkisomd5
。 Ubuntuでは、次のコマンドでインストールできます。
sudo apt-get インストール isomd5sum
答え3
ディスクのイメージサイズが一般的なように見える2048(整数)に分割できる場合は、以下のように正確なMD5sumを取得できます。sr0
光学デバイスの名前はlshw -C disk
- と「を使用して見つけることができます。count」は、画像サイズを2048年で割った値です。
dd if=/dev/sr0 bs=2048 count=356352 |md5sum