1、檢驗(yàn)下載的ISO鏡像的MD5值:
$ md5sum download.iso
2、刻錄ISO:
1)先下載cdrecord:
$sudo apt-get install cdrecord
2)尋找設(shè)備(刻錄機(jī)):
$ cdrecord --scanbus (這會(huì)給出類似這樣的一組數(shù)字:0,0,0)
3)開始刻錄:
$ cdrecord dev=0,0,0 download.iso
3、檢驗(yàn)已經(jīng)刻錄好的光盤的md5值:
(確保安裝了isoinfo 沒有的話apt-get~~~)
$ isoinfo -d -i /dev/cdrom
(查看光盤信息,會(huì)出現(xiàn)如下字樣: Logical block size is: 2048 Volume size is: 339344)
$ dd if=/dev/cdrom bs=2048 count=339344 conv=notrunc,noerror|md5sum
制作ISO鏡像
===========
mkisofs -J -T -R -V volume_id -o mycd.iso source_dir
mkisofs 主要參數(shù)說明:
-J/-joliet 使用 Joliet 格式的目錄與文件名稱
-T/-translation-table 為每個(gè)目錄都生成一個(gè) TRANS.TBL 文件名轉(zhuǎn)換表文件
-R/-rock 使用 Rock Ridge Extensions
-V/-volid 光盤ID> 指定光盤的卷標(biāo)ID
制作具有自我校驗(yàn)功能的光盤
==========================
ISO文件在網(wǎng)絡(luò)傳輸過程中可能會(huì)發(fā)生改變,這個(gè)可以通過MD5校驗(yàn)碼來檢測文件的完整性,即:發(fā)布ISO的同時(shí)也公布其MD5校驗(yàn)碼,這樣他人下載 ISO后,再進(jìn)行一次MD5運(yùn)算,如果得到的MD5值和提供的一樣,則ISO文件和原始文件一模一樣,否則就得重新下載。
將ISO刻錄到光盤后,又如何校驗(yàn)光盤上刻錄的內(nèi)容是否和原始ISO中的內(nèi)容完全一樣呢?因?yàn)樵诳啼涍^程中,也許...也許會(huì)出現(xiàn)錯(cuò)誤。
這就需要用到 isomd5sum 這個(gè)工具了
加入MD5校驗(yàn)信息:
implantisomd5 --force ISO文件
刻錄后,可以通過 checkisomd5 --verbose 光盤設(shè)備地址,如/dev/hdb> 來校驗(yàn)數(shù)據(jù)完整性
ISO制作完整腳本(帶MD5校驗(yàn))
腳本運(yùn)行參數(shù)
mkiso.sh 需要刻錄的原始文件或目錄> 輸出ISO文件>
#!/bin/sh
#****************************************************
# Author: Muddyboot - toobyddum@gmail.com
# Last modified: 2007-09-11 21:21
# Filename: mkiso.sh
# Description: script for easy creating ISO image
#****************************************************
if [ $# -lt 3 ]; then
echo -e "\nUsage: `basename $0` source_dir output_iso cd_label \n"
exit 1
fi
source=$1
output=$2
label=$3
### extra mkiso argument
shift 3
for i in $@; do
extra_args="$extra_args $1 "
shift
done
if [ ! -e "$source" ]; then
echo -e "\nERR: Source file or directory does not exist ! \n"
exit 1
fi
## remove exists TRANS.TBL files
if [ -d "$source" ]; then
find $source -name TRANS.TBL | xargs rm -f
fi
### 制作ISO
mkisofs -J -T -R $extra_args \
-V $label -o $output $source
### 加入 MD5 校驗(yàn)信息
MD5_CHECKSUM=`whereis implantisomd5|awk -F': ' '{print $2}'`
if [ -z "$MD5_CHECKSUM" ]; then
echo -e "\n** WARNING: implantisomd5 not found, no md5sum added.\n"
else
echo -e "\n** Good, implantisomd5 program found."
echo "Adding md5sum information for ISO image ..."
implantisomd5 --force $output
fi
echo
echo "** ISO image $output created successfully ! "
echo