系统:centos 6.5
工具:system-config-kickstart
环境:Vmware
参考文档:http://liaoph.com/linux-kickstart/
https://fedoraproject.org/wiki/Anaconda/Kickstart/zh-cn
http://lovelace.blog.51cto.com/1028430/1217195/
1.原理:
参考:http://liaoph.com/linux-kickstart/ 这里摘抄重要的片段
#从系统安装说起
在 RHEL,CentOS,Fedora 等系统中,安装系统使用的程序名叫 anaconda,它属于 FedoraProject,由 Python 开发,能够提供图形或者文本界面用于系统安装。
在安装系统之前,计算机的硬件上可能是没有操作系统的,因此为了能够运行安装程序,需要一个临时的操作系统,引导开机,启动安装程序,在使用光盘安装操作 linux 系统(这里特指 RHEL 系列的系统)时,一共有两个阶段,分别为引导和安装。
#Stage 1
使用光盘引导时,系统启动过程为 POST(加电自检) —> BIOS 进行硬件检测并载入光盘的 MBR —> 光盘的引导程序为 isolinux.bin,它根据 isolinux.cfg 生成一个菜单。当用户选择安装操作系统后,引导程序加载内核(vmlinuz)和 initrd.img 文件,initrd.img 会在内存中生成一个临时的操作系统,为安装过程提供一个安装环境。当系统切换至 initrd 文件系统后,initrd.img 中的 init 进程调用 /sbin/loader 程序,loader 探测安装介质,加载光盘 /img/in-post/stage2.img (在 RHEL6 中叫 install.img ),切换到 stage2,stage2.img 的文件系统类型是 suqashfs,安装系统的程序 anaconda 就包含其中。
#Stage 2
stage2.img 是 SquashFS 类型文件系统,其中包含了安装程序 anaconda 和它的配置文件。anaconda 提供了安装过程的配置界面,它可以提供文本、图形等安装管理方式,并支持 kickstart 等脚本提供自动安装的功能。在安装系统之后会自动生成 /root/anaconda-ks.cfg 的配置信息,其中记录了安装系统所选取选项自动生成的,方便以后自动安装。
#Kickstart
在常规系统安装中的需要手动选定系统安装的各种选项,kickstart 文件定义了这些系统安装需要选择的选项,anaconda 读取 kickstart 文件后,就可以根据文件的设置来进行系统安装,而不需要人为的选择安装配置了。
Kickstart 分为三个段:(具体参考: https://fedoraproject.org/wiki/Anaconda/Kickstart/zh-cn)
命令段:
必选命令:keyboard lang auth 等
可选命令:autopart autostep等
软件包选择段:%packages表示以下是软件包选择段,@开头的表示包组,也可以指定单个包名,如:
%packages
@Base
@Core
@base
@basic-desktop
@chinese-support
脚本段:
%pre 表示安装前脚本,此时的 Linux 系统环境为微缩版环境,脚本应尽可能简单
%post 表示安装后脚本,此时的 Linux 系统环境为已经安装完成的系统。
2.安装system-config-kickstart
yum install system-config-kickstart-2.8.6.6-1.el6.noarch 即可
注意:在windows下用xshell使用system-config-kickstart需要安装Xmanager软件,启动system-config-kickstart可能还需要安装额外的桌面环境,具体操作没记录,这里不再重复此情景
3.创建kickstart配置文件,(利用图形界面或者手动编辑皆可),如下:
[root@cqhdtest tmp]# cat iso/ks.cfg
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --enabled --ssh
# Install OS instead of upgrade
install
# Use network installation
url --url="ftp://192.168.2.221/pub/iso"
# Root password
rootpw --iscrypted $1$/IK2ojw3$l5MudyE13/w3txJD1poG7.
# System authorization information
auth --useshadow --passalgo=sha512
# Use graphical install
graphical
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux --enforcing
# Do not configure the X Window System
skipx
# Installation logging level
logging --level=info
# System timezone
timezone Africa/Abidjan
# Network information
network --bootproto=static --device=eth0 --gateway=192.168.2.1 --ip=192.168.2.212 --nameserver=8.8.8.8 --netmask=255.255.255.0 --onboot=on
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all
# Disk partitioning information
part /boot --fstype="ext4" --size=200
part / --fstype="ext4" --size=8000
reboot --eject
4.配置vsftp和修改isolinux.cfg (用vsftp的原因是我本地的镜像一直没制作成功,一直提示centos disc没在cdrom中,具体原因有待深究,理论上本地的linux安装树可以和anaconda做在一起)
vsftp的配置:略(以后会专门写一篇,参考:http://www.ha97.com/4113.html)
挂载安装镜像:mount /dev/sr0 /tmp/source (cdrom 都是被识别为sr0,可以ls -a /dev 看到cdrom其实指向sr0)
复制镜像内容到ftp:
mkdir /var/ftp/pub/iso
cp -drp /tmp/source/* /var/ftp/pub/iso (在配置kickstart的时候记得ftp目录是/pub/iso,不是/var/ftp/pub/iso,因为我的ftp根目录为/var/ftp )
制作新的镜像:
mkdir /tmp/iso
cp -drp /tmp/source/* /tmp/iso
vi /tmp/iso/isolinux/isolinux.cfg (在append ,添加ks=cdrom:/ks.cfg 这行)片段如下:
label linux
menu label ^Install or upgrade an existing system
menu default
kernel vmlinuz
append initrd=initrd.img ks=cdrom:/ks.cfg
(还可以修改isolinux.cfg的timeout时间,可以减少开机界面stage1那个选择等待时间)
mkisofs -R -J -T -v -no-emul-boot -boot-load-size 4 -boot-info-table -V "centos install" -b isolinux/isolinux.bin -c isolinux/boot.cat -o install.iso /tmp/iso/
5.安装测试:直接拿install.iso 挂载安装即可