一、创建DVD的目录:
#mkdir BUILD_DVD
#cd BUILD_DVD
#mkdir -p SLES9/CD1
#mkdir -p CORE/CD1
#mkdir -p CORE/CD2
#mkdir -p CORE/CD3
#mkdir -p SP2/CD1
#mkdir -p SP2/CD2
#mkdir yast
#mount -o loop /path_to/SLES9_CD1.iso SLES9/CD1
#mount -o loop /path_to/SLES9_CD2.iso CORE9/CD1
#mount -o loop /path_to/SLES9_CD3.iso CORE9/CD2
#mount -o loop /path_to/SLES9_CD4.iso CORE9/CD3
SLES9把安装盘分成两部分,启动盘叫SLES9,其他的盘叫CORE9
#mount -o loop /path_to/SLES9_SP2_CD1.iso SP2/CD1
#mount -o loop /path_to/SLES9_SP2_CD2.iso SP2/CD2
#ln -s SLES9/CD1/content
#ln -s SLES9/CD1/control.xml
#ln -s SLES9/CD1/media.1
#cp -R SP2/CD1/boot /path_to/BUILD_DVD
#cd boot
#ln -s ../SLES9/CD1/boot/rescuefloppy
在/path_to/BUILD/yast下建立两个文件,
文件名:order,内容为:
/SLES9/CD1 /SLES9/CD1
/CORE9/CD1 /CORE9/CD1
/SP2/CD1 /SP2/CD1
文件名:instorder,内容为:
/SP2/CD1
/SLES9/CD1
/CORE9/CD1
二、现在还缺少一个安装程序的影像文件,这个要作些手脚。
#mkdir /tmp/INST_IMG
#mount -o loop /path_to/BUILD_DVD/SLES9/CD1/boot/root /mnt/image
#cd /mnt/image
#tar cvf /tmp/root.tar
这个影像文件做得很奇怪,直接cp出来是不行的
#cd /tmp/INST_IMG
#tar xvf /tmp/root.tgz #会有一堆"不可信赖的时间"提示,不用理会
#cp /mnt/image/.package .
#cp /mnt/image/.timestamp .
#cd bin
#mkdir secret
#mv rpm secret
#vi rpm
存盘退出后设置可执行权限:
#chmod 755
现在我们要生成一个包装过的rpm脚本,内容如下:
#!/bin/bash
RPM_COMMAND=/bin/secret/rpm
YAST_FIRSTBOOT=/usr/lib/YaST2/bin/YaST2.firstboot
SRCMGR_DIR=/var/adm/YaST/InstSrcManager
$RPM_COMMAND $@
CHK_PKG=`echo $@ | grep yast2-installation | grep -v autoyast2 | grep -v grep`
if [ "$CHK_PKG" != "" ];then
#Rename the YaST2.firstboot
mv /mnt/$YAST_FIRSTBOOT /mnt/${YAST_FIRSTBOOT}_bin
#generate a new YaST2.firstboot
echo "#!/bin/bash" >> /mnt/$YAST_FIRSTBOOT
echo "tar cPf /tmp/inst_source.tar $SRCMGR_DIR" >> /mnt/$YAST_FIRSTBOOT
echo "${YAST_FIRSTBOOT}_bin \$@" >> /mnt/$YAST_FIRSTBOOT
echo "tar xPf /tmp/inst_source.tar 2>&1 1>/tmp/inst_source.log" >> /mnt/$YAST_FIRSTBOOT
chmod 755 /mnt/$YAST_FIRSTBOOT
fi
exit 0
之所以要包装rpm,是因为第一次启动后,YaST2.firstboot会把安装时设置的安装源抹掉。
重新生成安装程序的影像文件:
mkfs.cramfs ./ /path_to/BUILD_DVD/boot/root
三、创建DVD的iso文件
#cd /path_to/BUILD_DVD
mkisofs -o /tmp/SLES9_dvd.iso -b boot/loader/isolinux.bin -c boot/loader/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -jcharset=cp936 -l -r -P SuSE -V SLES9_x86 .
原理很简单,就是利用SuSE Linux的安装服务器的机制。