定制CentOS 51Redhat AS 51安装盘.docx
- 文档编号:9891714
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:12
- 大小:20KB
定制CentOS 51Redhat AS 51安装盘.docx
《定制CentOS 51Redhat AS 51安装盘.docx》由会员分享,可在线阅读,更多相关《定制CentOS 51Redhat AS 51安装盘.docx(12页珍藏版)》请在冰点文库上搜索。
定制CentOS51RedhatAS51安装盘
定制CentOS5.1(RedhatAS5.1)安装盘
CentOS(Redhat)提供了一套完整的自动化安装机制,利用该机制,我们可以自己定制无人值守的自动安装光盘,也可以进行系统裁减,甚至可以以CentOS为基础制作自己软件系统的系统安装盘。
以下全部内容以CentOS5.1版本为准
自定制安装盘主要有以下几个步骤
1、选取必要服务,去除不必要的RPM包
2、定制自动安装过程
3、定制安装界面(可选)
4、生成新安装盘
1创建源盘
首先我们需要从CentOS5.1的完整dvd版本创建源盘,假设我们已经有一个完整的CentOS5.1的dvd放在光驱中,源盘的位置为/disk,则执行以下操作
1. mountdvd
#mkdir/cdrom
#mount–oloop/dev/cdrom/cdrom
2.复制光盘内容
#mkdir/disk
#cp–R/cdrom/./disk
3.清除非必须的RPM
注意,此时/disk目录下实际上是一个DVD的备份景象,我们需要根据第5节的内容选取自定义安装盘所需的RPM包,然后在/disk/CentOS目录里删除所有不必要的RPM,以减小安装盘容量。
上述步骤完成后,我们已经有了一个与原版DVD基本相同,但是完全去除了无用RPM包的源盘,后续的定制工作将在该路径中进行。
典型的CentOS安装盘中,与光盘定制有关的主要有以下几个目录和文件:
/CentOS
/isolinux
/repodata
.discinfo
ks.cfg(此时尚未创建)
CentOS目录存放所有在安装过程中需要使用的RPM包
isolinux目录存放光盘启动时的安装界面信息
repodata目录是与RPM包安装相关的依赖信息
.discinfo是CentOS的识别信息,直接从CentOSDVD版本中获取,如果该文件丢失,会导致安装过程中,系统提示找不到CentOS光盘
ks.cfg是自动安装过程的主控配置文件
CentOS的自动安装过程如下:
1、光盘自动引导,调用isolinux中的信息生成启动界面
2、根据用户输入,选择ks.cfg作为安装控制文件
3、进入自动安装过程,根据ks.cfg安装RPM包、配置网络、进行硬盘分区等等
4、系统安装完成后,根据ks.cfg进行用户自定义的安装过程
5、安装完成,系统重起
2自定义启动界面
在isolinux里面有三个文件和自定义安装界面有关
boot.msg是定义启动界面如何显示
isolinux.cfg决定如何处理用户的输入,并执行对应的安装过程
splash.lss是启动界面的背景图片
2.1boot.msg
boot.msg内容大致如下:
^L
^Xsplash.lss
-XXXXauto-instiall,pressthe^O0f
文档中的^X用ctrl+X输入
^Xsplash.lss表示使用splash.lss作为启动界面的背景图片
后面就是启动时界面下的提示信息^O0f和^O07之间的内容作为高亮显示
2.2isolinux.cfg
isolinux.cfg设置进入启动页面后,系统如何处理用户输入。
主要内容如下:
defaultauto
默认执行auto段的安装进程
prompt1
timeout6000
设置用户输入的超时时间,单位:
秒。
超时未输入则执行默认的安装进程
displayboot.msg
将boot.msg作为显示的启动界面
F1boot.msg
F2options.msg
F3general.msg
F4param.msg
F5rescue.msg
F7snake.msg
labelauto
kernelvmlinuz
appendks=cdrom:
/ks.cfginitrd=initrd.imgramdisk_size=8192acpi=offnoapicskipddc
标记auto段,使用光驱根目录下的ks.cfg文件作为kickstart的配置文件
labelmanual
kernelvmlinuz
appendks=cdrom:
/ks_manual.cfginitrd=initrd.imgramdisk_size=8192acpi=offnoapicskipddc
标记manual段,使用光驱根目录下的ks_manual.cfg文件作为kickstart的配置文件。
如果用户在启动界面输入manual,则执行该段
2.3splash.lss
splash.lss是启动界面的背景图片,该图形文件比较特殊,只能使用14色(标准16色除去黑白两色)的原始图片来生成。
首先创建一个16色(包含黑白两色)的gif文档,名为splash.gif
将该文件转换为lss格式
#giftopnm < splash.gif | ppmtolss16 > splash.lss
3自定义安装过程
CentOS的安装主要是由anaconda来实现的,它通过kickstart配置文件来控制整个安装进程,以到达无人值守安装的效果。
kickstart文件具体配置可以参看:
进行配置前,需要创建目标ks文件
#cd/disk
#viks.cfg
ks文件主要分为三个部分
1、系统安装及配置
2、自定义安装准备(%post--nochroot)
3、用户自定义安装(%post)
3.1系统安装及配置
kickstart文件首先进行系统的设置,比如机器语言、时区、键盘等参数的设置,然后检查安装所需RPM是否都完整,然后根据分区信息进行格式化。
这部分配置信息写在ks文件的最前面,以“%post--nochroot”为结束,典型的配置信息如下:
#Systemlanguage
#系统语言简体中文
langzh_CN
#Languagemodulestoinstall
#要安装的语言模块以及默认语言
langsupportzh_CN--default=zh_CN
#Systemkeyboard
#系统键盘类型
keyboardus
#Systemmouse
mouse
#Sytemtimezone
#系统时区
timezoneAsia/Shanghai
#Rootpassword
#管理员密码,值为已加密字符串
rootpw--iscrypted$1$MGv8U4W0$BS7JLb3MZT70Z30mutWwO1
#Rebootafterinstallation
#安装完成后是否自动重起
reboot
#Usetextmodeinstall
#使用文本安装界面
text
#InstallOSinsteadofupgrade
install
#UseCDROMinstallationmedia
#使用光盘作为安装媒体
cdrom
#Systembootloaderconfiguration
bootloader--location=mbr
#CleartheMasterBootRecord
zerombryes
#Partitionclearinginformation
#清除原有分区信息
clearpart--all--initlabel
#Diskpartitioninginformation
#建立一个200-500M的引导区,一个300-500M的交换区,剩余磁盘空间划分给根路径/
part/boot--fstypeext3--size200--grow--maxsize500
partswap--size300--grow--maxsize500
part/--fstypeext3--size1--grow
#Systemauthorizationinformation
#设置系统验证方式
auth--useshadow--enablemd5
#Networkinformation
#使用dhcp获取ip
network--bootproto=dhcp--device=eth0
#Firewallconfiguration
#关闭防火墙
firewall--disabled
selinux--disabled
#DonotconfigureXWindows
#不设置xwindows
skipx
#Packageinstallinformation
%packages–resolvedeps
#以下全部是系统需要安装的rpm包,我们假设此时已经知道所有需要的包,并且全部放在/CentOS路径下
kernel
#autoconf
#e2fsprogs
#fonts-chinese
#...
请注意必须保证要安装的RPM包以及被依赖的RPM都存放在/CentOS目录下,在ks配置文件里只需要写要安装的RPM包名即可,anaconda会解析依赖关系并自动安装关联的包,如果没有需要的包,则会报错并终止安装。
3.2自定义安装准备
自定义安装准备部分以“%post--nochroot”作为开始,以“%post”作为结束。
该部分脚本使用bash语法,通常在这一段脚本中将用户自己的安装包从安装光盘复制到已经安装好的系统上。
这一阶段的脚本编写需要注意两个问题
1、此时要访问磁盘路径,则要在目标路径前增加“/mnt/sysimage”,例如要将某个文件复制硬盘的/var/log,则脚本应为#cpsomefile/mnt/sysimage/var/log。
2、如果要从光盘复制文件到硬盘,需要先将光驱mount到系统,但是根据主板不同,此时的光盘设备名不一定是/dev/cdrom,所以可能需要根据自己的情况创建一个link,以便进行mount,如:
#mkdir/mnt/cdrom/
光驱为usb外接光驱,建立链接
#ln-s/dev/scd0/dev/cdrom
mount设备为只读
#mount/dev/cdrom/mnt/cdrom/-oro
3.3自定义安装
自定义安装部分以“%post”作为开始,在前一部分将自定义安装包复制到硬盘之后,就可以在这里使用bash脚本进行软件的安装控制了。
唯一需要注意的是,此时访问磁盘路径已经不需要添加“/mnt/sysimage”,直接访问即可,如
#cpsomefile/var/log
此外,因为此时还没有设置用户的环境路径,所以调用系统命令时最好尽量带上完整地路径名,如:
/usr/sbin/groupaddxxxx
/usr/sbin/adduserxxxx-gxxxx
4生成安装盘
现在我们已经完成了自定义安装光盘的全部调整,就可以制作光盘镜像了。
生成安装盘ISO镜像,需要先在系统安装好createrepo和mkisofs两个软件包。
首先,必须同步光盘中RPM包的查询信息,否则安装过程中会提示找不到RPM包
#createrepo-g/disk/repodata/comps.xml/disk/
comps.xml是CentOS自带的RPM所属功能组以及依赖关系的信息,createrepo需要根据该文件来同步信息,最好不要手动修改该文件。
同步成功之后,就可以进行iso的创建了,我们假定光盘标签为sample,输出iso文件名为/sample.iso
#cd/disk
#mkisofs-o/sample.iso-A‘sample’-V‘sample’-bisolinux/isolinux.bin-cisolinux/boot.cat-no-emul-boot-boot-load-size4-allow-leading-dots-allow-multidot-udf-R-r-T-boot-info-table-J/disk/
该命令执行成功之后就会在生成sample.iso的镜像,刻录到光盘上就可以作为自制CentOS安装盘使用了。
5裁减RPM包
CentOS5.1完整版本容量接近4G,其中大部分功能包都不是必要的,完整安装不仅耗费磁盘空间,增加安装时间,还会因为运行无用服务影响系统性能,所以必须要对RPM包裁减。
RPM裁减,即是选出需要的包,去掉其他无用包。
但是Linux下安装RPM时,常常还需要依赖其他包,否则安装会失败,而被依赖的RPM包也常常需要依赖其他包,经常导致多层依赖,手动检查起来非常麻烦。
还好CentOS提供了RPM包安装工具yum,我们可以通过这个工具自动获取所有的关联包。
5.1准备工作:
1、 安装yum
2、 准备CentOS5.1完整版的DVD
yum查找RPM依赖包,首先需要提供全部可用RPM,yum会自动检查RPM包并检查关联信息,以确定所依赖的RPM包,所以首先我们要准备好全部RPM。
5.2加载光盘的RPM
#cd/mnt
#mkdircdrom
#mount–oloop/dev/cdromcdrom
加载完成后,/mnt/cdrom/CentOS就是RPM包的存放位置
5.3设置yum的RPM搜索信息
#cd/etc/yum.repos.d/
#ls
CentOS-Base.repoCentOS-Media.repo
该目录有两个文件,第一个文件是从网络读取RPM信息的配置文件,第二个是从本地媒体读取RPM信息的配置文件,因为yum优先从网络读取信息,所以我们必须修改第一个文件的名字,强制yum从本地媒体搜索文件。
#mvCentOS-Base.repoCentOS-Base.repo.bak
然后修改CentOS-Media.repo,把搜索位置指向/mnt/cdrom/,那么yum会自动在/mnt/cdrom/repodata的repomd.xml去寻找信息
#viCentOS-Media.repo
修改内容如下:
baseurl=file:
///mnt/cdrom/
file:
///media/cdrom/
file:
///media/cdrecorder/
gpgcheck=1
enabled=1
#rpm--import/mnt/cdrom/RPM-GPG-KEY-beta
5.4获取依赖包信息
按照上面步骤配置完成之后,就可以自动获取依赖包了。
以下以获取selinux-policy相关依赖包为例
进入RPM存放目录
#cd/mnt/cdrom/CentOS
使用指令尝试安装目标RPM包
#yuminstallselinux-policy
则yum输出类似如下信息:
DependenciesResolved
=============================================================================
PackageArchVersionRepositorySize
=============================================================================
Installing:
selinux-policynoarch2.4.6-104.el5c5-media365k
Installingfordependencies:
libsemanagei3861.9.1-3.el5c5-media135k
TransactionSummary
=============================================================================
Install2Package(s)
Update0Package(s)
Remove0Package(s)
Totaldownloadsize:
500k
Isthisok[y/N]:
显然,根据检索结果libsemanage是安装selinux-policy所依赖的RPM包。
此时可以选择N则返回命令行,选择y则会自动安装selinux-policy及其所有依赖包。
我们可以通过这种方式获取,我们所需RPM包的全部依赖包,然后将其他无关包全部裁减掉。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 定制CentOS 51Redhat AS 51安装盘 定制 CentOS 51 Redhat 安装盘
![提示](https://static.bingdoc.com/images/bang_tan.gif)