系统版本centos5.6-x86_64
一直使用centos5.x系列,比较稳定,一些软件兼容性很好。Centos6.x也有使用,但感觉一些软件兼容性没有5系好,而且本人在使用过程中好像偶尔会出现一些莫名其妙的小问题。
订制系统的目的是精简系统,达到快速安装。其核心是用一台母机,先根据自己的需要安装好系统,然后主要利用两个文件。一个是安装母机系统的安装包列表文件(install.log),另一个是实现自动安装的kickstart脚本(在安装好的系统上叫anaconda-ks.cfg)。因为这两个文件是配套的,所以最好是用这两个文件,不要在网上随便找个就进行操作,这样容易出现问题。
下面是订制精简系统的过程:
1. 母机安装好后,把原版光盘或镜像文件挂载到一个目录。然后拷贝除CentOS之外的所有文件到要订制系统的文件目录。
首先安装一些一会订制系统要用到的包:
yum -y install createrepo mkisofs anaconda-runtime
建立一个订制目录:
[root@localhost ~]# mkdir /live_os
挂载原版光盘到/mnt目录:
[root@localhost ~]# mount /dev/cdrom /mnt/
利用shell模式的rsync把文件拷贝过去:
[root@localhost ~]#rsync -a --exclude=CentOS /mnt/ /live_os
建立订制目录的CentOS文件夹(用来存放自己需要的rpm包):
[root@localhost ~]#mkdir /live_os/CentOS
接下来获取所需的rpm包:
[root@localhost ~]#awk '{print $2}' install.log |sed s/^[0-9]*://g |grep -v 'i386' > /root/packages.list
(这条命令利用awk打印第二个字段,用sed过滤掉以数字开头的内容,用grep过滤掉i386的安装包)
[root@localhost ~]#for i in `cat packages.list` ; do cp /mnt/CentOS/$i* /live_os/CentOS/; done
(这条命令是利用package.list中的文件内容把光盘上的包拷贝到CentOS目录)。
2. 拷贝kickstart文件到指定位置:
[root@localhost ~]#cp anaconda-ks.cfg /live_os/isolinux/ks.cfg
编辑ks.cfg文件:
我的ks文件内容如下:
[root@localhost isolinux]# cat ks.cfg
# Kickstart file automatically generated by anaconda.
install
text
cdrom
lang en_US.UTF-8
keyboard us
reboot
skipx
network --device eth0 --bootproto dhcp
rootpw --iscrypted $1$XigKVP5d$j4kCF.nEOQdq769algNmP/
firewall --disabled
authconfig --enableshadow --enablemd5
selinux --disabled
timezone --utc Asia/Shanghai
bootloader --location=mbr
zerombr yes
#--driveorder=sda
# 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
clearpart --all --initlabel
part /boot --fstype ext3 --size=256 --asprimary
part / --fstype ext3 --size=80000
part swap --size=16000
part /opt --fstype ext3 --size=100 --grow
%packages
@admin-tools
@base
@core
@development-libs
@development-tools
@editors
@system-tools
keyutils
kexec-tools
iscsi-initiator-utils
trousers
fipscheck
device-mapper-multipath
imake
audit
iptraf
3. 编辑isolinux.cfg文件:
[root@localhost isolinux]# chmod a+w isolinux.cfg
[root@localhost isolinux]# cat isolinux.cfg
default ks #指明默认使用kickstart脚本进行安装
prompt 1
timeout 600
display boot.msg
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
label linux
kernel vmlinuz
append initrd=initrd.img
label text
kernel vmlinuz
append initrd=initrd.img text
label ks
kernel vmlinuz
append ks=cdrom:/isolinux/ks.cfg initrd=initrd.img #这个ks.cfg理论上可以放到其他位置,指定好正确路径就好。
label local
localboot 1
label memtest86
kernel memtest
append -
4. 回到订制目录的根下打包订制iso文件:
[root@localhost live_os]#declare -x discinfo=`head -1 .discinfo`
[root@localhost live_os]#createrepo -g repodata/*comps.xml /live_os/
[root@localhost cnlive_os]#mkisofs -o /tmp/MYCentOS_5.6_x86_64.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T /live_os/
完成@@@
刻录成光盘之后只有600多兆。相比4G多的dvd原版轻便多了。再装系统时只要让服务器从光盘启动就啥也不用管了。很方便!!!
上面是光盘版,现在再来一个U盘版
订制好的光盘虽然轻便,但读取速度还是不如U盘。
光盘适合的场景一个是服务器数量较少的情况。再有一个是带远程管理功能的服务器,比如配备了idrac卡的dell系列。还有最近接触的带BMC口的华为系列服务器。这些服务器支持KVM over IP。能冷重启,在关机的情况下开机,能远程设置bios,当然也能加载本地光盘或镜像供远程服务器使用。功能强大,很受sa的欢迎。所以如果服务器在idc,如果服务器系统崩溃的话,iso镜像就能很好的被利用了,利用本地镜像可以给远程服务器重装系统。免去了去机房的麻烦。
U盘安装速度快,几分钟就可以装完一个系统。比较适合服务器比较多,但又暂时不方便联网的时候用。
下面是安装过程制作过程,很简单,用上面制作好的镜像文件再简单配置就可以了。不过U盘装有一个比较不爽的地方,就是U盘在不同的服务器上可能被识别成不同的盘符。所以关键是确定要用U盘安装系统的服务器会把U盘识别成什么盘。不然可要头疼半天了。
1. 在windows下用ultraiso工具
文件---打开,选择制作好的光盘镜像(也可以是原版的)
双击p_w_picpaths(如下图)
双击boot.iso(如下图)
点击 启动-----写入硬盘映像(这时U盘应该是插在电脑上的)。弹出的界面,确认一下是要写入的U盘。
点击写入就可以了,ultraiso直接创建了启动linux所需的文件,和syslinux.cfg文件。直接编辑就可以了。
2. 经过以上操作在U盘里会生成一个isolinux的文件夹,点击进去后,编辑syslinux.cfg文件,这个是U盘启动的配置文件。
我的文件内容如下:
default ks
prompt 1
timeout 600
display boot.msg
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
label linux
kernel vmlinuz
append initrd=initrd.img
label text
kernel vmlinuz
append initrd=initrd.img text
label ks
kernel vmlinuz
append ks=hd:sdb4:/ks.cfg initrd=initrd.img #这里注意了,其他的和光盘的配置文件一样。
label local
localboot 1
label memtest86
kernel memtest
append -
3. 拷贝ks.cfg文件到U盘根下,内容大致如下:
# Kickstart file automatically generated by anaconda.
install
harddrive --partition=sdb4 --dir= #这里注意
text
lang en_US.UTF-8
keyboard us
reboot
skipx
#network --device eth0 --bootproto dhcp
rootpw --iscrypted $1$XigKVP5d$j4kCF.nEOQdq769algNmP/
firewall --disabled
authconfig --enableshadow --enablemd5
selinux --disabled
timezone --utc Asia/Shanghai
bootloader --location=partition --driveorder=sda #这里bootloader注意,如果有错误可能导致系统装完后不能启动
zerombr yes
#--driveorder=sda
# 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
clearpart --all --initlabel
part /boot --fstype ext3 --size=256 --asprimary
part / --fstype ext3 --size=80000
part swap --size=16000
part /opt --fstype ext3 --size=100 --grow
%packages
@admin-tools
@base
@core
@development-libs
@development-tools
@editors
@system-tools
keyutils
kexec-tools
iscsi-initiator-utils
trousers
fipscheck
device-mapper-multipath
imake
audit
4. 拷贝订制好的iso镜像到U盘根目录下(也可以是原版,只不过占地方吧)
完成@@@
插上U盘,让系统从U盘启动。喝杯茶吧。茶没喝完就装完了!!!
再次提醒不同的服务器可能会把U盘识别成不同盘符。确定好之后修改ks.cfg和syslinux.cfg文件!!!
本文也是参考网上文章制作而成,感谢网络上朋友们的奉献精神,同时把自己制作过程记录下来,希望能帮到有需要的朋友。同时做个备忘。下一步打算把这个订制系统用到pxe环境。再实验一下!把步骤记录下来。