红帽官方安装文档介绍:https://pan.baidu.com/s/1o86570e 密码:6npx
红帽官方的介绍文档,关于kickstart部分(CHAPTER 32)的参数介绍非常详细,如果有不懂的参数,可以参考文档进行学习和修改。
实现的功能介绍:
工作中,我们想要进行CentOS系统的自动化批量部署,可以用U盘做一个安装介质,将小的引导系统iso程序拷贝到里面。安装的时候,系统读取U盘中的ks.cfg文件,并根据ks.cfg中的配置信息,在网络上找安装介质的的路径,下载并按照ks.cfg里面的信息自动完成系统的安装。
这时候,我们一方面需要做一个小的启动程序,大小在30M左右大小;另一方面,我们要配置ftp或者http服务,以便在网络上提供安装介质的加载途径。
必要的时候,dhcp服务也需要安装。这个集合了dhcp、ftp/http等服务的服务器,是其他系统安装的重要组成部分。
试验主机信息:
ip:192.168.75.77
系统:CentOS-6.6-x86_64
一、ftp/http/nfs服务
因为引导系统很小,不可能容纳系统文件,我们可以将系统文件的主要部分文件,全部挂载到ftp,nfs,http服务器上,然后用–url来在ks文件里面进行指定,在安装过程中会自动去哪个地方下载文件。
试验中,我用的是vsftpd服务,且是yum直接安装的。默认的ftp目录是/var/ftp/pub,所以,我将iso系统直接挂载在了这个目录:
[root@rs1 ~]# mount /dev/sr0 /var/ftp/pub
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@rs1 ~]# ls /var/ftp/pub
CentOS_BuildTag EULA images Packages repodata RPM-GPG-KEY-CentOS-Debug-6 RPM-GPG-KEY-CentOS-Testing-6
EFI GPL isolinux RELEASE-NOTES-en-US.html RPM-GPG-KEY-CentOS-6 RPM-GPG-KEY-CentOS-Security-6 TRANS.TBL
http和nfs的配置方法就不做介绍,实现的功能是一样的,就是将系统放到网络上,让安装引导程序可以获取到。
二、小引导linux系统iso镜像制作
在Centos 6x系列的系统iso文件中,我们可以看到这个目录:
[root@rs1 ~]# ls /var/ftp/pub/isolinux/
boot.cat boot.msg grub.conf initrd.img isolinux.bin isolinux.cfg memtest splash.jpg TRANS.TBL vesamenu.c32 vmlinuz
这里面包含了我们引导系统所用到的绝大多数的文件:
initrd.img:为引导系统提供驱动模块、网络配置命令等
isolinux.bin:镜像引导程序,类似于MBR的功能
isolinux.cfg: 引导程序的配置文件,我们可以自定义一个简单的
vesamenu.c32: 菜单显示模块
vmlinuz:内核镜像的压缩文件
另外,还差一个重要的文件,那就是kickstart的配置文件,名称自定义,一般命名为:ks.cfg.
接下来,制作这个小的引导镜像文件。
第一步:复制相应的文件,修改配置,编辑ks.cfg文件
[root@rs1 ~]# mkdir -p /createiso/isolinux && cp /var/ftp/pub/isolinux/{initrd.img,isolinux.bin,isolinux.cfg,vesamenu.c32,vmlinuz} /createiso/isolinux
第二步:清空isolinux.cfg, 加入如下配置:
default vesamenu.c32
prompt 1
timeout 1
label linux
menu lable ^Install or upgrade an existing system
menu default
kernel vmlinuz
append initrd=initrd.img ks=cdrom:ks.cfg
注:
default:后面的vesamenu.c32指定菜单显示文件
timeout:菜单显示的最长时间,过期自动进入默认的菜单
menue: default定义了这个菜单是默认选项,因为是引导程序,所以只做了这一个菜单
kernel:定义内核镜像文件的名称
append:附加的文件,initrd定义所需驱动、网络配置所需文件的位置; ks指定kickstart文件的位置
第三步:在/createiso目录,建立ks.cfg文件(可以复制anaconda-ks.cfg并做修改)
kickstart范本地址:点击查看
# Kickstart file automatically generated by anaconda.
#version=DEVEL
install // 升级,还可以是upgrade(升级)
url --url ftp://192.168.75.77/pub // 因为是网络下载,所以指定了ftp服务器的地址
lang zh_CN.UTF-8 // 默认的语言
keyboard us // 默认的键盘,美式键盘
network --onboot yes --device eth0 --bootproto=dhcp // 网络用initrd.img中的网络模块,自动通过dhcp在本地获取一个ip
rootpw --iscrypted $6$BW20j5cP4TyhmGw6$OvrIwWNeWocCFjmgjJQwHuTxjfoOHutnyLpisk0Ex.317AmOKWcSfm6cSk0IuqMf0wOd4TPst.BhVEZkEMeJC0 // root密码,加密
text // 纯文本的方式来安装系统,还可以是graphical,只要有256M内存,选text格式即可。
firewall --service=ssh // 防火墙,--service指定要放行的服务
authconfig --enableshadow --passalgo=sha512 // 是密码认证的,--enableshadow是默认的,用--passalgo指定SHA-512做为哈希加密算法。
selinux --permissive // selinux的permissive,想要修改的时候不用重启服务器
timezone --utc Asia/Shanghai // 时区亚洲/上海
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet" // bootloader指定,默认就是mbr
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
zerombr // 如果是64位系统安装,UEFI格式分区的分区表是GUID格式,需要先清空MBR
clearpart --initlabel --all // 首装系统,需要清空所有分区,--linux表示清除linux分区,--none表示不清除分区。如果硬盘没用过,需要先--initlabel来初始化,否则中断报错。
#ignoredisk --only-use=sda
part /boot --fstype=ext4 --size=200 // 分区开始,分三个部分,/boot, swap, /
part swap --size=2048
part / --fstype=ext4 --grow --size=200
repo --name="CentOS" --baseurl=ftp://192.168.75.77/pub/ --cost=100 // 默认下载依赖的安装文件的地址,因为是ftp服务器,所以在ftp上面。
reboot // 安装后重启
%packages // 要安装的包和包组,@引导的是包组的名称,没有引导的是软件包的名称
@additional-devel
@chinese-support
@core
@development
@server-policy
@workstation-policy
libgcrypt-devel
libXinerama-devel
xorg-x11-proto-devel
startup-notification-devel
libgnomeui-devel
libbonobo-devel
libXau-devel
libXrandr-devel
popt-devel
libxslt-devel
libglade2-devel
gnutls-devel
jpackage-utils
%end // 安装结束后执行的脚本。因为安装前的命令有限,很多功能无法实现,所以可以在这里添加脚本。比如增加几个用户,禁掉不用的服务等。
第四步:打包iso文件
[root@rs1 createiso]# mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "Centos" -b isolinux/isolinux.bin -o /tmp/centos-test.iso /createiso
将这个iso文件拷贝出来,制成U盘镜像,或者光盘镜像,即可引导安装系统了。
转载请注明:liutianfeng.com » CentOS-6.x安装引导iso小镜像制作&kickstart自动安装