一.为什么要制作Linux自动安装光盘
1.机房的服务器少则几十台,多则上百台,几千台,安装的时候,这么多的服务器不可能一台一台的安装,这时候就需要自动安装光盘的协助。
2.如果机房的某台服务器需要格式化,重新安装系统,这时候,制作一个自动安装的镜像给机房的工程师下载刻录,也不用告诉他如何分区,如何选择时区等等麻烦的事,自动安装就可以了。至于分区,选择软件包之类的已经定义在配置文件里了。
二.制作自动安装镜像
1.生产环境一般使用的Linux发行版都是CentOS系列,我这里就以CentOS6.4 x86_64为例,下文说的Linux,就是代表CentOS6.4 x86_64发行版,我这里假设读者有一定的Linux使用经验,包括安装Linux,会使用简单的Linux命令,如cd,ls,vi,yum等等。
2.硬件环境,我这里是Dell C6100的一个节点服务器,CPU是:Intel(R) Xeon(R) CPU L5335@2.00GHz,内存是16GB,硬盘大小为1TB(制作镜像与硬件关系不大)。
3.系统环境,操作系统是:CentOS6.4 x86_64,我这里系统安装的时候选择的是最小化安装(minimal)。
4.制作Linux自动安装镜像:
(1).安装制作Linux自动安装镜像的软件包
#yum -y install createrepo mkisofs
(2).制作安装需要的软件列表,也就是rpm包的列表
#awk '/Installing/{print $2}' /root/install.log |sed 's/^[0-9]*://g' >/root/packages.list
(3).挂载Linux镜像,拷贝出相关目录及文件
#mkdir -p /mnt/iso && mkdir -p /data/os
#mount -o loop /data/CentOS-6.4-x86_64-bin-DVD1.iso /mnt/iso
#rsync -a --exclude=Packages /mnt/iso/* /data/os
(4).制作脚本,拷贝软件包
#mkdir -p /data/os/Packages
#vi /data/cprpms.sh
#!/bin/bash
for i in $(cat /root/packages.list)
do
cp /mnt/iso/Packages/${i}.rpm /data/os/Packages
done
#chmod +x /data/cprpms.sh
#/data/cprpms.sh
(5).配置ks文件
#vi /data/os/isolinux/ks.cfg
install
text
cdrom
lang en_US.UTF-8
keyboard us
network --onboot yes --bootproto dhcp --noipv6
rootpw mirrtalk
firewall --disabled
authconfig --enableshadow --enablemd5
selinux --disabled
timezone --utc Asia/Shanghai
bootloader --location=mbr
zerombr yes
clearpart --all --initlabel
part /boot --fstype ext4 --size=200 --asprimary
part / --fstype ext4 --size=102400
part swap --size=16384
part /data --fstype ext4 --size=100 --grow
reboot
%packages
@core
@server-policy
%end
(6).生成comps.xml文件
#cd /data/os
#rm -rf /data/os/repodata/*
#cp /mnt/iso/repodata/*-comps.xml /data/os/repodata
#declare -x discinfo=`head -1 .discinfo`
#createrepo -u "media://$discinfo" -g repodata/*-comps.xml /data/os/
(7).让系统根据ks.cfg文件启动
#vi /data/os/isolinux/isolinux.cfg
default auto
label auto
kernel vmlinuz
append ks=cdrom:/isolinux/ks.cfg initrd=initrd.img
(8).生成iso镜像文件
#cd /data/os
#mkisofs -R -J -T -r -l -d -joliet-long -allow-multidot -allow-leading-dots -no-bak -o /data/mirrtalk-linux-x86_64.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table /data/os
会在/data/os目录下产生一个mirrtalk-linux-x86_64.iso镜像文件。
做的严谨一点的话,再生成一个校验码
# cd /data/os
# md5sum mirrtalk-linux-x86_64.iso
dc44c880e0689720aa0e6c4f0d1a4b4a mirrtalk-linux-x86_64.iso