准备刻一张FreeBSD-7.0-RELEASE的DVD,网上很多介绍都是在Windows下使用什么iso提取工具的,貌似很麻烦。参考了一些FreeBSD高手的实现,我写了一个简单的脚本,主要功能是从3张disc*.iso创建出一个dvd.iso
1,准备工作:
工作目录 work/ 和 3张disc*.iso, 比如
work/7.0-RELEASE-i386-disc1.iso
work/7.0-RELEASE-i386-disc2.iso
work/7.0-RELEASE-i386-disc3.iso
2,用以下代码创建脚本文件,比如 mkdvd.sh,放在work目录下。用root用户执行,将在work目录下产生一个7.0-RELEASE-i386-dvd.iso的文件。
#!/bin/sh
disc1=`ls | grep "disc1.iso"`
disc2=`ls | grep "disc2.iso"`
disc3=`ls | grep "disc3.iso"`
dvd=`echo $disc1 | sed "s/disc1/dvd/"`
## Prepare temporary dir to store dvd files
if
test
-e tmp &&
test
-d tmp
then
rm -fr tmp
fi
mkdir tmp
## Extract contents of each disc*.iso to temporary dir
for disc in $disc3 $disc2 $disc1
do
mdconfig -a -f $disc -u 66
if
test
-e /dev/md66
then
echo Extract $disc ...
mount -t cd9660 /dev/md66 /mnt
tar -cf -
-C /mnt .
| tar -xf -
-C tmp/
umount /mnt
mdconfig -d -u 66
else
echo Can not create memory disk.
exit
-1
fi
done
##
Merge index to point to the first disc
echo Merge index ...
cd tmp
cat INDEX | sed "s/||2/||1/g"
> index
cat index | sed "s/||3/||1/g"
> INDEX
cat INDEX | sed "s/|3/|1/g"
> index
mv index INDEX
cd ..
## Make dvd iso file
echo Make $dvd ...
mkisofs -R -no-emul-boot -b boot/cdboot -o $dvd tmp
rm -fr tmp
exit 0
相关文章:
1. Win11右下角弹出英特尔无线bluetooth的解决教程2. Win11怎么把C盘分成几个盘?Win11电脑磁盘分区的方法3. Win10 Build 1904x.2673 预览版更新 KB5022906内容汇总4. Win11 22H2 Moment 2更新后将彻底修复文件复制缓慢的问题5. Win11 KB5022913更新解决文件传输速度问题6. Win11预览版25309怎么启动全新音量控件? win11打开音量控件的快捷键7. Win11 release preview通道是什么?release preview频道更新Win11好吗?8. Win11语音输入没反应怎么办?Win11无法使用语音输入解决方法9. KB5022845导致Win1122H2更新驱动失败 Surface出现0x80070103错误10. Win10 发布 3 月补丁 KB5023696,版本号升至 Build 1904x.2728