Centos 6.5PXE+kickstart 无人值守安装操作系统
PXE一种引导方式。进行 PXE 安装的必要条件是在要安装的计算机中必须包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE 协议可以使计算机通过网络启动。此协议分为 Client端和 Server 端,而PXE Client则在网卡的 ROM 中。当计算机引导时,BIOS 把 PXE Client 调入内存中执行,然后由 PXE Client将放置在远端的文件通过网络下载到本地运行。运行 PXE 协议需要设置 DHCP 服务器和 TFTP 服务器。DHCP 服务器会给 PXE Client(将要安装系统的主机)分配一个 IP 地址,由于是给 PXE Client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加相应的 PXE 设置。此外,在 PXE Client 的 ROM 中,已经存在了 TFTP Client,那么它就可以通过 TFTP 协议到 TFTP Server 上下载所需的文件了。
PXE的工作过程:
1. PXE Client 从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP;
2. DHCP 服务器返回分配给客户机的IP 以及PXE文件的放置位置(该文件一般是放在一台TFTP服务器上) ;
3. PXE Client 向本网络中的TFTP服务器索取pxelinux.0 文件;
4. PXE Client 取得pxelinux.0 文件后之执行该文件;
5. 根据pxelinux.0 的执行结果,通过TFTP服务器加载内核和文件系统;
6. 进入安装画面, 此时可以通过选择HTTP、FTP、NFS 方式之一进行安装;
备注:我们这次试验使用HTPD方式进行安装
PXE工作的详细流程(下图):
Kickstart解释:
Kickstart是一种无人值守的安装方式。它的工作原理是在安装过程中记录典型的需要人工干预填写的各种参数,并生成一个名为ks.cfg的文件。如果在安装过程中(不只局限于生成Kickstart安装文件的机器)出现要填写参数的情况,安装程序首先会去查找Kickstart生成的文件,如果找到合适的参数,就采用所找到的参数;如果没有找到合适的参数,便需要安装者手工干预了。所以,如果Kickstart文件涵盖了安装过程中可能出现的所有需要填写的参数,那么安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后就去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中的设置重启系统,并结束安装。
实验环境:
实验环境:VMware Workstation 10
系统平台:CentOS release 6.5 (桌面安装)
网络模式:NAT模式(共享主机的IP地址)
DHCP / TFTP IP:192.168.77.150
HTTP / FTP / NFS IP:192.168.77.150
防火墙已关闭/iptables: Firewall is not running.
SELINUX=disabled
配置HTTP方式安装:
Yum install httpd �Cy 安装http
Service httpd start 启动http
Chkconfig httpd on 开机启动
添加centos6.5系统并挂载把光盘所有内容复制到http工作目录下
Cp �Cr /mnt/cdrom/*/var/www/html/cdrom
到此HTTP设置完毕
配置TFTP:
Yum install tftp-server �Cy 安装tftp
启用tftp(tftp是由xinetd超级守护进程管理):
将disable改为no
因为tftp服务是挂载在超级进程xinetd 下的,所以通过启动xinetd 来启动tftp服务。
Chkconfig xinetd on 设置开机启动
配置支持PXE启动的程序:
复制pxelinux.0 文件至/var/lib/tftpboot/ 文件夹中
$cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
说明:syslinux是一个功能强大的引导加载程序,而且兼容各种介质。更加确切地说:SYSLINUX是一个小型的Linux操作系统,它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。
复制iso 镜像中的/image/pxeboot/initrd.img 和vmlinux 至/var/lib/tftpboot/ 文件夹中
$ cp /var/www/html/cdrom/images/pxeboot/{initrd.img,vmlinuz}/var/lib/tftpboot/
复制iso 镜像中的/isolinux/*.msg 至/var/lib/tftpboot/ 文件夹中
$cp /var/www/html/cdrom/isolinux/*.msg /var/lib/tftpboot/
在/var/lib/tftpboot/中新建一个pxelinux.cfg目录
$mkdir /var/lib/tftpboot/pxelinux.cfg
将iso 镜像中的/isolinux 目录中的isolinux.cfg复制到pxelinux.cfg目录中,同时更改文件名称为default
$cp /var/www/html/cdrom/isolinux/isolinux.cfg/var/lib/tftpboot/pxelinux.cfg/default
修改default文件
$ vi /var/lib/tftpboot/pxelinux.cfg/default(红色箭头为必须修改的行)
配置DHCP:
Yum install dhcp �Cy 安装dhcp服务
复制配置模板文件到DHCP的配置目录中
$ cp -f /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
修改/etc/dhcp/dhcpd.conf配置文件,内容如下:
启动服务:
生成ks.cfg文件:
生成ks.cfg 文件需要system-config-kickstart 工具,而此工具依赖于X Windows,所以我们需要安装X Windows 和Desktop 并重启系统,操作如下:
$yum groupinstall "X Window System"
$yum groupinstall Desktop
$reboot
$yum install system-config-kickstart 安装Kickstart
$system-config-kickstart 启动图像界面生成ks.cfg
1. 设置语言,键盘,时区,Root密码,安装完毕后重启等
2. 设置安装方式,这篇文章介绍的是HTTP方式的安装,故选择HTTP
3. 安装MBR
4. 配置分区信息(我以下只是实验分区)
5. 网络使用DHCP
6. 认证配置
7. selinux和防火墙
8. 图像界面配置
9. 软件包选择
10. 以下两项是可选
11. 生成ks.cfg 文件,保存在/var/www/html/ 文件夹下
我们可以打开/var/www/html/ks.cfg文件进行查看并做修改。
说明:key --skip 如果是红帽系统,此选项可以跳过输入序列号过程;如果是CentOS 系列,则可以不保留此项内容;
reboot 此选项必须存在,也必须文中设定位置,不然kickstart显示一条消息,并等待用户按任意键后才重新引导;
clearpart --all --initlabel 此条命令必须添加,不然系统会让用户手动选择是否清除所有数据,这就需要人为干预了,从而导致自动化过程失败;
测试安装:
自动化安装系统设置完毕,现在我们新建一个虚拟机测试安装
指定磁盘大小,ks.cfg 文件中,我们定义了/ 大小为10GB,swap 分区为8GB,所以这里的磁盘大小至少要为18GB。
而且,一定要勾选上“立即分配所有磁盘空间”,不然在后来安装的时候将提示没有磁盘空间。
正在创建磁盘过程很慢要创建20G的文件
启动虚拟机,选择从网卡启动,DHCP 服务器正在给客户机分配IP地址。
开始下载vmlinuz 和initrd.img
安装过程……
安装过程……
安装完毕重启后进去登录界面
查看分区正常
到此PXE+kickstart无人值守按章centos6.5完成