PXE自动化安装的流程:
开机自检 > 加载ROM中的bios代码 > 检查设备启动顺序,由于PXE自动安装是基于网卡作引导的,所以,会选择网卡 > 网卡中会有PXE的模块,从dhcp服务器获取ip地址 掩码 网关 dns 重要的是tftp服务器的地址 从tftp服务器需要获取的bootloder的文件名的信息 > 从tftp中加载pxelinux.0引导程序 > 加载内核和initrd.img > 从initrd中的虚拟根中启动init,然后再从中启动/bin/loader,loader加载ks.cfg文件 > 最后从http服务器中加载启动anaconda,又根据ks.cfg文件 ,实现自动配置和安装。
实现过程:
-
安装好http tftp-server syslinux dhcp,我这里已经安装好了:
-
配置tftp服务器,tftp是基于udp协议的,是一个超级守护进程,他是被xinetd来管理的,xinetd帮他进行监听,当有请求是xinetd管理的进程时,才把它唤醒,把请求交回给它处理,这种方式适合一些访问量比较小的服务,可以节省资源,这些在xinetd内部的服务不一直占用系统资源;如果是独立进程,它会一直监听它的套接字上,常驻在内存上,比较消耗资源,但是请求反应速度快!
由于tftp是受xinetd管理的内部服务,他要先把他on起来:
方法一:
chkconfig tftp on
方法二:
修改/etc/xinetd.d/tftp
把里面的disable = yes 修改为 diaable = no
然后,service xinetd start
好了,要把需要的文件放到tftp服务器的下载目录下:
mount /dev/cdrom /media/cdrom(先进行光盘的挂载)
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ (把bootloder复制过去)
mkdir /var/lib/tftpboot/pxelinux.cfg
cp /media/cdrom/isolinux/{vesamenu.c32,splash.jpg,boot.msg} /var/lib/tftpboot/ (把引导时的菜单 背景图片boot的文字界面文件复制过去)
cp /media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default (这是一个pxelinux.0的引导中所需的配置文件)
然后我们修改这个default文件,在label linux 下加入 text(安装时文本模式) 还有指定ks文件的位置
cp /media/cdrom/image/pxelinux/{vmlinuz,initrd.img} (复制内核和initrd过去)
3.进行配置dhcp服务器:
cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf 把例子的配置文件复制过来进行覆盖和修改配置。
上面的next-server参数是为了给安装主机一个ip地址后,让他加载这个IP地址的服务器,然后加载filename定义的文件。
service dhcp start (注意:dhcp服务器的主机要使用静态地址)
3.配置http服务器
mkdir /var/www/html/centos6
mount –bind /media/cdrom /var/www/html/centos6(提供repo源)
service httpd start
4.创建ks文件
我们要使用system-config-kickstart这个工具,要进行安装,这个工具可以图形配置我们安装系统的配置
这里我会加载我配置好的ks文件。
配置 安装时的语言 键盘的语言类型 时区 root的密码 还有安装后重启
根据什么方式来获取安装的源和安装源在哪
clear master boot record 这个一定要选 不让在安装时,会有交互。
要创建lvm要在ks文件中手动加上去,这里不支持lvm创建
对你的系统需要的包或包组进行安装。
用ss命令检查服务是否处于监听状态
还有把iptables服务关闭
开始测试:
好了,我们可以等待它安装完成了!
最后,总结我做的过程中出现的错误:
由于我的ks文件中存在一个错误行:
repo –name="CentOS" –baseurl=cdrom:sr0 –cost=100
这个行是说用光盘提供安装源的,我们是基于http的安装源,所以,我把这行去了就ok了!
原创文章,作者:13-广州-杨过,如若转载,请注明出处:http://www.178linux.com/6937