FreeBSD系统下创建DVD.iso安装光盘
<p>准备刻一张FreeBSD-7.0-RELEASE的DVD,网上很多介绍都是在Windows下使用什么iso提取工具的,貌似很麻烦。参考了一些FreeBSD高手的实现,我写了一个简单的脚本,主要功能是从3张disc*.iso创建出一个dvd.iso<br /><br />
1,准备工作:<br />
工作目录 work/ 和 3张disc*.iso, 比如<br />
work/<a href="ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/7.0/7.0-RELEASE-i386-disc1.iso" target="_blank">7.0-RELEASE-i386-disc1.iso</a><br />
work/<a href="ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/7.0/7.0-RELEASE-i386-disc2.iso" target="_blank">7.0-RELEASE-i386-disc2.iso</a><br />
work/<a href="ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/7.0/7.0-RELEASE-i386-disc3.iso" target="_blank">7.0-RELEASE-i386-disc3.iso</a><br />
<br />
2,用以下代码创建脚本文件,比如 mkdvd.sh,放在work目录下。用root用户执行,将在work目录下产生一个7.0-RELEASE-i386-dvd.iso的文件。<br />
<br />
<table style="border-collapse: collapse" bordercolor="#999999" cellspacing="0" cellpadding="0" width="95%" bgcolor="#f1f1f1" border="1">
<tbody>
<tr>
<td>
<p style="margin: 5px; line-height: 150%"><code><span style="color: rgb(0,0,0)"><font face="新宋体"><span style="color: rgb(0,0,204)">#</span><span style="color: rgb(0,0,204)">!</span><span style="color: rgb(0,0,204)">/</span>bin<span style="color: rgb(0,0,204)">/</span>sh<br />
<br />
disc1<span style="color: rgb(0,0,204)">=</span><span style="color: rgb(0,0,204)">`</span>ls <span style="color: rgb(0,0,204)">|</span> grep <span style="color: rgb(255,0,255)">"disc1.iso"</span><span style="color: rgb(255,0,255)">`</span><br />
disc2<span style="color: rgb(0,0,204)">=</span><span style="color: rgb(0,0,204)">`</span>ls <span style="color: rgb(0,0,204)">|</span> grep <span style="color: rgb(255,0,255)">"disc2.iso"</span><span style="color: rgb(255,0,255)">`</span><br />
disc3<span style="color: rgb(0,0,204)">=</span><span style="color: rgb(0,0,204)">`</span>ls <span style="color: rgb(0,0,204)">|</span> grep <span style="color: rgb(255,0,255)">"disc3.iso"</span><span style="color: rgb(255,0,255)">`</span><br />
<br />
dvd<span style="color: rgb(0,0,204)">=</span><span style="color: rgb(0,0,204)">`</span>echo $disc1 <span style="color: rgb(0,0,204)">|</span> sed <span style="color: rgb(255,0,255)">"s/disc1/dvd/"</span><span style="color: rgb(255,0,255)">`</span><br />
<br />
<span style="color: rgb(0,0,204)">#</span><span style="color: rgb(0,0,204)">#</span> Prepare temporary dir to store dvd files<br />
<span style="color: rgb(0,0,255)">if</span>
<span style="color: rgb(255,0,0)">test</span>
<span style="color: rgb(0,0,204)">-</span>e tmp <span style="color: rgb(0,0,204)">&</span><span style="color: rgb(0,0,204)">&</span>
<span style="color: rgb(255,0,0)">test</span>
<span style="color: rgb(0,0,204)">-</span>d tmp<br />
then<br />
rm <span style="color: rgb(0,0,204)">-</span>fr tmp<br />
fi<br />
mkdir tmp<br />
<br />
<span style="color: rgb(0,0,204)">#</span><span style="color: rgb(0,0,204)">#</span> Extract contents of each disc<span style="color: rgb(0,0,204)">*</span><span style="color: rgb(0,0,204)">.</span>iso to temporary dir<br />
<span style="color: rgb(0,0,255)">for</span> disc in $disc3 $disc2 $disc1<br />
<span style="color: rgb(0,0,255)">do</span><br />
mdconfig <span style="color: rgb(0,0,204)">-</span>a <span style="color: rgb(0,0,204)">-</span>f $disc <span style="color: rgb(0,0,204)">-</span>u 66<br />
<span style="color: rgb(0,0,255)">if</span>
<span style="color: rgb(255,0,0)">test</span>
<span style="color: rgb(0,0,204)">-</span>e <span style="color: rgb(0,0,204)">/</span>dev<span style="color: rgb(0,0,204)">/</span>md66<br />
then<br />
echo Extract $disc <span style="color: rgb(0,0,204)">.</span><span style="color: rgb(0,0,204)">.</span><span style="color: rgb(0,0,204)">.</span><br />
mount <span style="color: rgb(0,0,204)">-</span>t cd9660 <span style="color: rgb(0,0,204)">/</span>dev<span style="color: rgb(0,0,204)">/</span>md66 <span style="color: rgb(0,0,204)">/</span>mnt<br />
tar <span style="color: rgb(0,0,204)">-</span>cf <span style="color: rgb(0,0,204)">-</span>
<span style="color: rgb(0,0,204)">-</span>C <span style="color: rgb(0,0,204)">/</span>mnt <span style="color: rgb(0,0,204)">.</span>
<span style="color: rgb(0,0,204)">|</span> tar <span style="color: rgb(0,0,204)">-</span>xf <span style="color: rgb(0,0,204)">-</span>
<span style="color: rgb(0,0,204)">-</span>C tmp<span style="color: rgb(0,0,204)">/</span><br />
umount <span style="color: rgb(0,0,204)">/</span>mnt<br />
mdconfig <span style="color: rgb(0,0,204)">-</span>d <span style="color: rgb(0,0,204)">-</span>u 66<br />
<span style="color: rgb(0,0,255)">else</span><br />
echo Can <span style="color: rgb(0,0,255)">not</span> create memory disk<span style="color: rgb(0,0,204)">.</span><br />
<span style="color: rgb(255,0,0)">exit</span>
<span style="color: rgb(0,0,204)">-</span>1<br />
fi<br />
done<br />
<br />
<span style="color: rgb(0,0,204)">#</span><span style="color: rgb(0,0,204)">#</span>
<span style="color: rgb(255,0,0)">Merge</span> index to point to the first disc<br />
echo <span style="color: rgb(255,0,0)">Merge</span> index <span style="color: rgb(0,0,204)">.</span><span style="color: rgb(0,0,204)">.</span><span style="color: rgb(0,0,204)">.</span><br />
cd tmp<br />
cat INDEX <span style="color: rgb(0,0,204)">|</span> sed <span style="color: rgb(255,0,255)">"s/||2/||1/g"</span>
<span style="color: rgb(0,0,204)">></span> index<br />
cat index <span style="color: rgb(0,0,204)">|</span> sed <span style="color: rgb(255,0,255)">"s/||3/||1/g"</span>
<span style="color: rgb(0,0,204)">></span> INDEX<br />
cat INDEX <span style="color: rgb(0,0,204)">|</span> sed <span style="color: rgb(255,0,255)">"s/|3/|1/g"</span>
<span style="color: rgb(0,0,204)">></span> index<br />
mv index INDEX<br />
cd <span style="color: rgb(0,0,204)">.</span><span style="color: rgb(0,0,204)">.</span><br />
<br />
<span style="color: rgb(0,0,204)">#</span><span style="color: rgb(0,0,204)">#</span> Make dvd iso <span style="color: rgb(255,0,0)">file</span><br />
echo Make $dvd <span style="color: rgb(0,0,204)">.</span><span style="color: rgb(0,0,204)">.</span><span style="color: rgb(0,0,204)">.</span><br />
mkisofs <span style="color: rgb(0,0,204)">-</span>R <span style="color: rgb(0,0,204)">-</span>no<span style="color: rgb(0,0,204)">-</span>emul<span style="color: rgb(0,0,204)">-</span>boot <span style="color: rgb(0,0,204)">-</span>b boot<span style="color: rgb(0,0,204)">/</span>cdboot <span style="color: rgb(0,0,204)">-</span>o $dvd tmp<br />
rm <span style="color: rgb(0,0,204)">-</span>fr tmp<br />
<br />
<span style="color: rgb(255,0,0)">exit</span> 0</font></span></code></p>
</td>
</tr>
</tbody>
</table>
</p>
頁:
[1]