二.个性化定制你的系统
去掉装机图片:修改/tank-os/isolinux/boot.msg文件,删除“splash.lss”。
删除/tank-os/isolinux/splash.lss这个图片。
去掉安装过程中的CentOS字样:
在安装光盘里面有两个.buildstamp文件,一个位于stage2.img中,一个位于initrd.img中,
安装光盘运行时读取的是initrd.img中的那个.buildstamp文件,所以只要把initrd.img文件改了就可以了。
2.6内核中的initrd.img采用cpio压缩,不再是2.4内核使用的ext2格式,无法使用mount -o loop 挂载。需
要使用gunzip解压缩,然后再使用利用cpio给img解包
# cd /tank-os/isolinux/
# cp initrd.img /tmp/initrd.img.gz
# cd /tmp
# gunzip initrd.img.gz
# mkdir initrd
# mv initrd.img initrd
# cd initrd
# cpio -ivmd < initrd.img
然后修改.buildstamp文件,将CentOS改为tank-os即可.当然,里面的网址也可以改。
生成新的initrd.img文件:
#cd /tmp/initrd
# find . | cpio -c -o > ../initrd.img
# gzip ../initrd.img
#cd ..
# mv initrd.img.gz initrd.img
# cp initrd.img /tank-os/isolinux/
然后将 initrd.img复制到/tank-os/isolinux/,覆盖旧的。
三.打包发布
# cd /tank-os
# declare -x discinfo=`head -1 .discinfo` //指定环境变量discinfo
# createrepo -u "media://$discinfo" -g repodata/comps.xml . //生成repodata数据库。
说明:repodata 数据库精确描述一个rpm包的详细信息,如依赖关系,包含文件,校验码信息。它的文件主要是XML格式。
生成ISO文件
#cd /tank-os
#mkisofs -R -J -T -r -l -d -allow-multidot -allow-leading-dots -no-bak -o /tmp/tank-os-0.1-i386.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table .
生成Md5,供下载后校验ISO
#md5sum /tmp/tank-os-0.1-i386.iso > tank-os-0.1-i386.iso.md5
四.另建立个虚拟机测试安装该ISO
下面是补充
二.个性化定制你的系统(问答形式)
1.如何定制安装开机画面:
启动画面用的是一种比较奇怪的格式lss16,它限制图片使用16种颜色,除去前景和背景色只能有14种颜色。我们需要ppmtolss16 giftopnm等程序,系统一般默认都安装了。
一般用gimp生成一个index模式的gif图形,颜色限制为14, 然后通过如下的办法进行转:
安装yum -y install syslinux
giftopnm < splash.gif | ppmtolss16 > splash.lss
另外你还需要修改isolinux/boot.msg文件,做一些个性化的提示.
?如何生成高质量的图。
先用photoshop打开任何一张图片,然后在文件的下拉菜单里,保存的时候选择“保存为WEB和设备使用格式“,再然后选择gif再选择16色保存就OK.
仍后利用giftopnm < splash.gif | ppmtolss16 > splash.lss 转换即可.
2.如何生成GRUP的xpm文件?
(1) 将备一张640 x 480 16色图片,档案类型为JPG的格式
conver命令没有话,就:yum install ImageMagick
(2)convert grub.gif -colors 14 -geometry 640x480! splash.xpm && gzip -9 splash.xpm
(3) 直接替换/boot/grup/splash.xpm.gz 文件即可.
? 利用上面方法生成的图片可能无法显示,或者质量不高,如何生成高质量的grub图片呢.
利用文中后面我提供的ltospackl.tar.gz里面的grubtool.exe即可在windows平台将jpg,bmp图生成为.xpm.gz格式的文件,直接替换/boot/grup下的文件即可.
2.如何去掉安装过程中的CentOS字样?
在安装光盘里面有两个.buildstamp文件,一个位于stage2.img中,一个位于initrd.img中,
安装光盘运行时读取的是initrd.img中的那个.buildstamp文件,所以只要把initrd.img文件改了就可以了。
如何解压initr.dimg文件:
2.6内核中的initrd.img采用cpio压缩,不再是2.4内核使用的ext2格式,无法使用mount -o loop 挂载。需要使用gunzip解压缩,然后再使用
利用cpio给img解包
# cd /ltos/isolinux/
# cp initrd.img /tmp/initrd.img.gz
# cd /tmp
# gunzip initrd.img.gz
# mkdir initrd
# mv initrd.img initrd
# cd initrd
# cpio -ivmd < initrd.img
仍后修改.buildstamp文件,将CentOS改为LTOS即可.
如何制作initrd.img文件:
#假设当前目录位于准备好的initrd文件系统的根目录下
# find . | cpio -c -o > ../initrd.img
# gzip ../initrd.img
# mv initrd.img.gz initrd.img
# cp initrd.img /ltos/isolinux/
仍后将initrd.img复制到/ltos/isolinux/3. 如何替换安装以后的grub ?
在安装光盘里的ks.cfg文件里写好替换splash.xpm.gz文件即可.
4. 如何去掉启动过程中的"CentOS release 5 (Final)"
在安装光盘里的ks.cfg文件里写好脚本,直接替换/etc/redhat-release即可.
三.打包生成ISO文件发布
# cd /ltos
# declare -x discinfo=`head -1 .discinfo`
# createrepo -u "media://$discinfo" -g repodata/comps.xml .
生成ISO文件
#mkisofs -R -J -T -r -l -d -allow-multidot -allow-leading-dots -no-bak -o /tmp/ltos-0.1-i386.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table .
Md5
/usr/lib/anaconda-runtime/implantisomd5 /tmp/ltos-0.1-i386.iso
在RH下使用mkisofs制作启动镜像时碰到问题
#mkisofs -R -J -T -V Boot -r -d -allow-multidot -allow-leading-dots -no-bak -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o boot.iso
Warning: creating filesystem that does not conform to ISO-9660.
INFO: UTF-8 character encoding detected by locale settings.
Assuming UTF-8 encoded filenames on source filesystem,
use -input-charset to override.
mkisofs: Missing pathspec.
1、去掉-d选项,解决Warning: creating filesystem that does not conform to ISO-9660.
2、增加-input-charset UTF-8,解决INFO: UTF-8 character encoding detected by locale settings.
3、在句尾"-o /dada/boot/boot.iso"之后增加". "变成"-o /dada/boot/boot.iso ." ,解决mkisofs: Missing pathspec.
最终命令如下:
mkisofs -R -J -T -V Boot -joliet-long -no-bak -allow-multidot -allow-leading-dots -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -input-charset UTF-8 -o /dada/boot/boot.iso .
-----------------------------------
我查到另外的生成ISO命令
mkisofs -o ../cdrom.iso -A 'ISOLINUX' -V 'ISOLINUX' -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -input-charset UTF-8 .