系统版本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.cfgsyslinux.cfg文件!!!


 

本文也是参考网上文章制作而成,感谢网络上朋友们的奉献精神,同时把自己制作过程记录下来,希望能帮到有需要的朋友。同时做个备忘。下一步打算把这个订制系统用到pxe环境。再实验一下!把步骤记录下来。