这段时间一直在弄发行版的事,网上的资料很多,起初感觉很happy,后来发觉不对劲了,全是基于CentOS5的,难得找了一个据说是基于CentOS6的,介绍里面的文件的时候,还是用CentOS5的结构,比如:stage2.img、boot.iso。解压CentOS6.2的iso镜像,我KAO,打死我也找不到这些东西啊。老老实实自己去摸索了一把,把自己所得记录下来,供有需求的人少走弯路吧。挂载、复制文件到本地,这个简单,但是要注意确保复制了隐藏文件,特别是.discinfo、.treeinfo,否则制作的iso镜像无法使用。首先,CentOS5下面的stage2.img文档在CentOS6下面变成了images/install.img,解压过程同网上的资料一致:# mount –o loop –t squashfs install.img /mnt/install这个文件包含很多东西:usr/lib/anaconda/iw 这个目录保存了图形安装过程中对Next/Prev按钮的响应函数,用Python写成。usr/bin/anaconda这是用Python写的安装程序的主执行文件,配合上述的文件,你可以为所欲为。usr/share/anaconda/pixmaps/这个目录下面是图形安装过程的图片,要修改背景的话直接更换图片即可修改完成后重新生成install.img,也和网上说的一样:# mksquashfs /tmp/install /tmp/install.imag –all-root -noF上述可修改整个安装过程第二点,介绍下如何修改如图所示的文字。这几个文字藏在isolinux/initrd.img中,同样是img结尾的,但是网上资料明确说了,这是cpio格式,不能简单用mount搞定,要执行以下代码:# cd /disk/isolinux/# cp initrd.img /tmp/initrd.img.gz# cd /tmp# gunzip initrd.img.gz# mkdir initrd# mv initrd.img initrd# cd initrd# cpio -ivmd 重点在“# gunzip initrd.img.gz”这个命令,我执行之后,跳出:gzip: initrd.img.gz: not in gzip format很明显这个行不通,问题是,网上n多关于定制发行版的资料,明确指出,对付initrd.img,需要这个命令。还好被我找到官方的解决方案:http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html-single/6.2_Release_Notes/index.html# xz -dc initrd.img | cpio -id# find . | cpio -c -o | xz -9 --format=lzma > initrd.img两行命令,一行解压,一行压缩。我为我逝去的3小时默哀。解压后,直接找到.buildstamp文件,注意前面有个小点~~这是个隐藏文件。# vi .buildstamp201112091719.x86_64InfocoreOS0.0http://www.infocore.cn/修改完成后重新生成initrd.img,万一出现如下错误:xz: Adjusted LZMA1 dictionary size from 64 MiB to 35 MiB to not exceed the memory usage limit of 398 MiB将xz -9 改成xz -5,减小压缩强度等级。完了关于repodata目录下的,如何获取rpm包,如何生成comps.xml,网上资料不少。贴个制作镜像的命令:#cd 到isolinux所在的目录# mkisofs -o /opt/infocore-OS.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -joliet-long -R -J -v -T .^C这个也和网上的一致。最后大概介绍下CentOS6镜像下面的文件吧,帮大家理清思路。images  |  |__ pxeboot  PXE的,没去理会  |     |__ initrd.img 文件系统  |     |__ vmlinuz linux内核  |  |__ efiboot.img  |__ efidisk.img 这两个efi开头的,据说是支持BIOS的下一代产品:EFI,具体百度吧。  |__ install.img 这个就是mount挂上后可编辑的,用于安装过程isolinux  |  |__ vesamenu.c32  |__ boot.cat 开机文件名称,执行mkisofs的时候生成  |__ boot.msg  |__ grub.conf  |__ initrd.img 内存虚拟文件系统,用xz解压缩  |__ vmlinuz linux内核文件  |__ isolinux.bin 开机镜像文件  |__ isolinux.cfg 与isolinux.bin组成引导工具  |__ memset  |__ splash.jpg 开机引导界面的背景图片EFI 这个目录估计也和EFI有关,没去关心。TRANS.TBL 执行mkisofs -T参数的时候生成我知道的,差不多都交待清楚了,接下来研究anaconda代码,实现真正为所欲为~~=================================来自第二天的补充==============================发现两篇博文:http://blog.csdn.net/woods2001/article/details/7297195http://blog.csdn.net/woods2001/article/details/7297197比我写得专业很多。
01-22 04:20