Iso
計算一張 CD/DVD 的 md5sum
我有一個 ISO 文件,我將其刻錄到 CD 上。現在如何檢查 CD 是否正確創建?我想要一個計算雜湊和的命令,我可以用它來檢查我在 ISO 文件上計算的雜湊和。理想情況下,該命令應該:
- 無論 ISO 文件如何工作:也就是說,我不想為磁碟中的每個文件保留雜湊和列表,或者記住塊數
- 相對簡短:單行命令很好,兩行長的命令鏈可以,跨一頁的腳本不行
- 相當有效率:例如,
dd
光碟回一個文件然後md5sum
在該文件上執行是不可接受的如果沒有不能滿足所有人的答案,我也會欣賞最近的比賽。如果你能告訴我為什麼它不那麼直截了當,那就更好了。
基本問題是我們想要獲取與最初在 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