首先使用 yum -y install system-config-kickstart.noarch安装kickstart软件包
ks.cfg是system-config-kickstart生成的kickstart配置文件,可以通过图形界面对过程进行配置,也可以直接编辑ks.cfg。下面介绍的是直接在ks.cfg中进行编辑的方式来实现系统定制。
正常安装好操作系统,在/root目录下会有install.log文件,里边是系统安装RPM包的记录,将所需的RPM包拷出。
1.挂载光驱
2.创建临时目录
-
mkdir -p /root/iso/CentOS
3.根据install.log文件将对应的RPM包拷出
-
#!/bin/bash
-
cd /root
-
awk '/Installing/{print $2}' install.log | sed 's/^[0-9]*://g' >package.txt
-
DVD='/mnt/CentOS'
-
PACKDIR='/root/package.txt'
-
NEW_DVD='/root/iso/CentOS/'
-
while read LINE
-
do
-
cp ${DVD}/${LINE}*.rpm /${NEW_DVD} || echo "$LINE don't cp......."
-
done < package.txt
-
rm -f package.txt
4.把原镜像除了CentOS目录外的所有文件复制到/root/iso目录下
-
cd /mnt
-
ls | grep -v CentOS | xargs -i cp -Rp {} /home/test/
5.把/root目录下的anaconda-ks.cfg复制至/root/iso目录下,并根据自己实际需要修改安装要求
6.让ISO按照anaconda-ks.cfg文件来执行安装
-
vi /root/iso/isolinux/isolinux.cfg
-
Default linux 修改成default linux ks=cdrom:/anaconda-ks.cfg
除了上面提到的工具,定制过程中还需要createrepo、mkisofs、isomd5sum。
生成comps.xml文件:
-
yum -y install createrepo mkisofs
-
cd /root/iso
-
createrepo -g repodata/*comps.xml /root/iso/
制作ISO:
-
mkisofs -o MyCentOS.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T /root/iso/
ks.cfg的内容基本如下,可根据需要做进一步调整
-
# Kickstart file automatically generated by anaconda.
-
-
install
-
cdrom
-
lang en_US.UTF-8
-
keyboard us
-
network --device eth0 --bootproto dhcp
-
rootpw --iscrypted $1$fupKhGiH$sx2TexUjriSyu..IZUwT9.
-
firewall --disabled --port=22:tcp
-
authconfig --enableshadow --enablemd5
-
selinux --disabled
-
timezone --utc Asia/Shanghai
-
bootloader --location=mbr --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 --linux
-
part /boot --fstype ext3 --size=100
-
part swap --size=512
-
part / --fstype ext3 --size=100 --grow
-
-
%packages
-
@base
-
@core
-
@development-tools
-
@dialup
-
@editors
-
@text-internet
-
perl
-
%post
-
# Disable unused service
-
chkconfig NetworkManager off
此外在ks.cfg的最后部分还可以用使用linux内建命令实现一些动作,如创建目录、编辑文件等。
在我的实现过程中就需要使用sed命令对grub进行修改。
不过这么做不知道还能不能实现
重新设置root密码,如果有好的方案希望能够分享。
在isolinux.cfg中,在不同的标签下引用不同的"ks.cfg
",还可实现在一张光盘中完成多种定制的目标
阅读(3444) | 评论(0) | 转发(0) |