设为首页 收藏本站
查看: 2630|回复: 0

[经验分享] centos6.5之ISO镜像精简制作及ks安装

[复制链接]

尚未签到

发表于 2015-11-23 14:40:04 | 显示全部楼层 |阅读模式
一、ISO目录文件介绍:
1、ISO目录列表:

[iyunv@zhuantang centos6]# ll

total 552
-r--r--r--. 1 root root     14 Nov 29 19:52 CentOS_BuildTag

-r--r--r--.  1 root root     31 Nov 29 20:08 .discinfo
dr-xr-xr-x. 3 root root   4096 Nov 29 20:05 EFI
-r--r--r--. 1 root root    212 Nov 28 03:12 EULA
-r--r--r--. 1 root root  18009 Nov 28 03:12 GPL
dr-xr-xr-x. 3 root root   4096 Nov 29 20:09 images
drwxr-xr-x. 2 root root   4096 Jan 10 16:39 isolinux
dr-xr-xr-x. 2 root root 495616 Jan 10 16:21 Packages
-r--r--r--. 1 root root   1354 Nov 28 03:13 RELEASE-NOTES-en-US.html
drwxr-xr-x. 2 root root   4096 Jan 10 12:12 repodata
-r--r--r--. 1 root root   1706 Nov 28 03:12 RPM-GPG-KEY-CentOS-6
-r--r--r--. 1 root root   1730 Nov 28 03:12 RPM-GPG-KEY-CentOS-Debug-6
-r--r--r--. 1 root root   1730 Nov 28 03:12 RPM-GPG-KEY-CentOS-Security-6
-r--r--r--. 1 root root   1734 Nov 28 03:12 RPM-GPG-KEY-CentOS-Testing-6
-r--r--r--. 1 root root   3380 Nov 29 20:09 TRANS.TBL

-r--r--r--.  1 root root    338 Nov 29 20:09 .treeinfo
.discinfo 和.treeinfo安装过程中,anaconda会去读取.discinfo文件,获取光盘信息
★  packages就是存放包的目录,对这个目录执行createrepo命令就会生成一个repodata的目录,这个repodata就是yum源,里面的文件基本都是xml格式,记录了Packages中所有包的基本信息,如包名、包信息、包版本、包中的文件清单等等;
2、isolinux目录列表:
[iyunv@zhuantang centos6]# ll isolinux
total 37168
-rw-r--r--. 1 root root       84 Nov 29 20:04 boot.msg
-rw-r--r--. 1 root root     1723 Jan 10 15:42 general-ks.cfg
-rw-r--r--. 1 root root      334 Nov 28 05:52 grub.conf
-rw-r--r--. 1 root root 33392971 Nov 28 05:52 initrd.img
-rw-r--r--. 1 root root    24576 Jan 10 16:02 isolinux.bin
-rw-r--r--. 1 root root     1263 Jan  9 18:23 isolinux.cfg

-rw-r--r--. 1 root root   165080 Nov 29 20:04 memtest
-rw-r--r--. 1 root root     2068 Jan 10 15:41 monitor_main-ks.cfg
-rw-r--r--. 1 root root     2068 Jan 10 15:42 monitor_node-ks.cfg

-rw-r--r--. 1 root root   151230 Nov 29 20:04 splash.jpg
-rw-r--r--. 1 root root     2215 Nov 29 20:09 TRANS.TBL
-rw-r--r--. 1 root root   162860 Nov 29 20:04 vesamenu.c32
-rwxr-xr-x. 1 root root  4128368 Nov 29 20:04 vmlinuz


其中
★ isolinux.bin是光盘引导程序,在mkisofs的选项中需要明确给出文件路径,这个文件属于SYSLINUX项目
★ isolinux.cfg是isolinux.bin的配置文件,当光盘启动后(即运行isolinux.bin),会自动去找isolinux.cfg文件
vesamenu.c32就是我们看到的光盘启动后的安装图形界面,也属于SYSLINUX项目,还有一个menu.c32版本,是纯文本的菜单;
memtest选项,则开始进行内存检测;这是一个独立的程序,属于memtest86+项目

splash.jgp是光盘启动界面的背景图

vmlinuz是内核映像,initrd.img是ramfs(先cpio,再gzip压缩),都是编译内核生成的;isolinux.bin根据安装选项找到对应的配置,装载内核和ramfs;
3、images目录列表:

[iyunv@zhuantang images]# ll
total 178100
-r--r--r--. 1 root root    376832 Nov 29 20:04 efiboot.img
-r--r--r--. 1 root root  37926912 Nov 29 20:04 efidisk.img
-r--r--r--. 1 root root 144060416 Nov 29 20:05 install.img
dr-xr-xr-x. 2 root root      4096 Nov 29 20:04 pxeboot

★  install.img是一个squashfs根文件系统,当内核启动后就装载install.img并切换根文件系统,执行里面的anaconda程序,anaconda是fedora的安装程序;


二、centos6.5之ISO镜像精简制作
1、下载centos6.5 64位ISO镜像:
    下载地址:http://mirrors.163.com/centos/6.5/isos/x86_64/

                CentOS-6.5-x86_64-bin-DVD1.iso
                CentOS-6.5-x86_64-bin-DVD2.iso
                md5sum.txt(进行md5校验)
2、挂载ISO并复制出文件:
       mount -o loop CentOS-6.5-x86_64-bin-DVD1.iso /mnt
       cp -a /mnt   /root/centos6.5(注意要复制整个目录,尤其是目录下的二个隐藏文件.discinfo和.treeinfo)
              如缺少这二个文件,会导致安装是找不到disc,如下图:
DSC0000.jpg

     其中可以将所有目录下的TRANS.TBL删除掉,用mkisofs生成ISO时加上-T参数,即可给所有目录下生成TRANS.TBL文件,TRANS.TBL文件的作用是用于提供比ISO9660标准约定的基本文件名更加灵活的文件名,然而,ISO9660规范已经用Rock Ridge和Joliet扩展替代TRANS.TBL文件很久了,因此,现代所用之创建ISO9660镜像文件的工具,或者根本不创建TRANS.TBL文件,或者仅在用户明确指定时才会创建它们。
3、对Packages目录下的包精简:
      把不需要的软件包可以删除(例:gnome,kde,xorg-X11,samba,evolution,emacs),只保留基础的@base组软件包,及glibc,libc,gcc库、perl、python等,之后执行createrepo程序生成repodata下的comps.xml文件
repodata目录下除了类似0dae8d32824acd9dbdf7ed72f628152dd00b85e4bd802e6b46e4d7b78c1042a3-c6-x86_64-comps.xml
的文件保留,其它文件都删除掉,然后将类似0dae8d32824acd9dbdf7ed72f628152dd00b85e4bd802e6b46e4d7b78c1042a3-c6-x86_64-comps.xml
的文件重命名成comps.xml

createrepo -g repodata/comps.xml.
4、修改isolinux/isolinux.cfg:
default vesamenu.c32  (必须的,因为要用到菜单功能,必须有这个vesamenu.c32文件,#具体可以看syslinux中vesamenu.c32所在目录的vesamenu.c文件说明。)
#prompt 1       (这是说,向用户提示输入选择,直接回车就是缺省选项了)
timeout 600     (时间限制,当然也可以指定一定时间之后自动进入缺省选项)
display boot.msg  (这指定了一个文件名,会在启动的时候显示的内容,该文件甚至可以包含一个 RLE 编码的图形文件,也就是大家在安装光盘启动时看到的那个)
menu background splash.jpg   
menu title Welcome to CentOS 6.5!
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000

label linux
menu label ^Install or upgrade an existing system
menu default
kernel vmlinuz
append initrd=initrd.img

label linux-ks
menu label ^Install CentOS 6.5(nagios-centreon-cacti server)
kernel vmlinuz
append ks=cdrom:/isolinux/monitor_main-ks.cfg initrd=initrd.img

label rescue
menu label ^Rescue installed system
kernel vmlinuz
append initrd=initrd.img rescue
label local
menu label Boot from ^local drive
localboot 0xffff
label memtest86
menu label ^Memory test
kernel memtest
append -




5、修改KS文件:
#vi /rice/isolinux/ks.cfg
以下是我的ks.cfg文件内容:
install     
text           //文本模式安装
cdrom       //从光盘安装

url --url="http://192.168.x.x/yum/centos/6/os/x86_64"
lang en_US.UTF-8          //设置默认字符集为美国英语UTF-8
keyboard us             //美式键盘
skipx                 //跳过xwindows
network --device eth0 --bootproto dhcp --hostname RiceOS      //默认开启网卡0,并让其自动获得ip,同时,计算机的hostname命名为RiceOS
rootpw --iscrypted $1$jPZf0P0r$JRe7pd.5wq9k.VZEMOgdq/      //root账号的密码,根据首次安装CentOS时使用的密码不同而不同,这里显示的密码是经过加密处理之后的字符。
authconfig --enableshadow --enablemd5      //密码使用md5加密
selinux --disabled                  //不启用selinux
timezone --utc Asia/Shanghai          //设置时区为亚洲/上海
bootloader --location=mbr           //读取mbr信息
zerombr yes                        //初始化//mbr
mouse generic3ps/2                     //鼠标为三键ps/2接口鼠标
clearpart --all --initlabel                    //初始化分区信息,这里考虑到每一台计算机的硬件情况不同,因此,将分区过程设置为手动,其他过程全为自动。
reboot                  //安装完成之后重启
%packages             //这一行之后,均为安装rpm包信息。
@development-libs
@editors
@text-internet
@legacy-network-server
@dialup
@core
@base

6、使用mkisofs发布iso文件:
不能将这个目录直接复制到windows用UltraISO这样的软件直接制作,因为这样做出来,不能够引导……
另外,在mkisofs的时候,需要在/centos6.5/目录下进行,呵呵!
[iyunv@localhost rice]#mkisofs -R -J -T -r -l -d -allow-multidot -allow-leading-dots -no-bak -o /glftpd/site/test/RiceOS-0.1-i386.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table .
参数解释:
如果改变目录结构,需要把该目录的TRANS.TBL删除,用mkisofs的-T参数重新生成

也可以如下操作,例:
       mkisofs -v -r -V "Custom ISO" -no-emul-boot  -boot-load-size 4 -boot-info-table -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/iso/mycentos65.iso .


原文链接:http://wushank.blog.iyunv.com/3489095/1350208

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-142721-1-1.html 上篇帖子: 分布式nagios的配置 下篇帖子: Nagios configuration Tools (Web frontends or GUI)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表