目前为止安装操作系统的途径相当的多,有光盘安装,U盘安装(当今比较流行),还有就是我今天要谈到的网卡安装,对于普通的个人PC机而言使用光盘或者U盘安装完全可以满足需求,但是如果针对大型企业或者是教育企业的网管人员而言上述的安装方案必然会带来相当大的麻烦,有需求就有了解决方案,通过网卡来安装操作系统是相当便捷的方式。 Pxe工作于c/s的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持来自网络的操作系统的启动过程,其启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中并执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。
对于我们今天的实验来说,我自己画了一个图,来谈谈我对于pxe安装的理解,我是针对与linux操作系统来做的:
下面我们就针对这个原理图来开始实验:
实验需求:vm虚拟机,完整的linux镜像
使用虚拟机虚拟出一台Server和pc机,Server的需求比较多,客户机不需要太多的设置(在真实环境中客户机的网卡需要支持pxe)
1.Server需要的功能:
A.Dhcp服务器的搭建:为了方便安装,我使用的是yum安装配置文件如下
[rhel-server]
name=Red Hat Enterprise Linux server
baseurl=file:///mnt/cdrom/Server
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
之后就是dhcp服务器的安装
配置dhcp服务器:一下是我的dhcpd.conf的配置参数,其中网段部分你可以根据自己的需求设置,要着重注意的是next-server参数(用于指明你的tftp服务器位置)和filename参数(指明你的pxe驱动位置)
#
# DHCP Server Configuration file.
ddns-update-style interim;
ignore client-updates;
subnet 192.168.111.0 netmask 255.255.255.0 {
# --- default gateway
option routers 192.168.111.254;
option subnet-mask 255.255.255.0;
option time-offset -18000; # Eastern Standard Time
range dynamic-bootp 192.168.111.128 192.168.111.200;
default-lease-time 21600;
max-lease-time 43200;
# --- tftp server
next-server 192.168.111.10;
# --- pxe
filename "pxelinux.0";
}
启动dhcp服务
B.tftp服务器的搭建同样使用yum安装,有图有真相
对于tftp服务器,它的启动是用到超级守护进程的,所以要配置它的启动脚本/etc/xinetd.d/tftp,一下是我的配置参数
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
然后重新启动超级守护进程
Tftp的根目录是在/tfptroot/,之后我们就要将linux内核文件、小镜像、启动配置文件、pxe驱动文件复制到tftp的根目录下,这些东西我们可以从linux的完整镜像中找到首先我们要将linux镜像挂载
mount /dev/cdrom /mnt/cdrom
cd /mnt/cdrom
进入p_w_picpaths文件夹下并查看内容
其中pxeboot文件夹中有内核文件和小镜像
将文件拷贝到tftp根目录
拷贝pxe驱动文件到tftp根目录下
cp /usr/lib/syslinux/pxelinux.0 /tftpboot/
接下来要拷贝启动配置文件到tftp服务器上去
修改default文件,主要注意ks.cfg的路径
default linux
prompt 1
timeout 6
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 ks=ftp://192.168.111.10/ks.cfg
label text
kernel vmlinuz
append initrd=initrd.img text
label ks
kernel vmlinuz
append ks initrd=initrd.img
label local
localboot 1
label memtest86
kernel memtest
append -
接下来就是来创建ks.cfg文件,可以使用system-config-kickstart软件来手工生成,当然这个软件是需要实现安装的同样是使用yum安装
yum install system-config-kickstart
然后打开软件创建ks.cfg文件,一下是我的操作截屏
基本配置 这里我设置了安装成功之后的root用户的密码123456
安装方法 这里我使用了root用户登录(这个在之后的ftp配置中要配置运行root用户登录)
这里有个错误ftp的根目录应该是/pub
引导选项
分区
网络设置使用dhcp自动获取
认证
防火墙设置
显示设置
软件包得选择可以根据个人情况定制
安装完成之后要执行的脚本
脚本内容如下
#!/bin/bash
ADDRESS=`/sbin/ifconfig eth0|grep -i "inet\>" |awk '{print $2}'`
NUM=${ADDRESS##*.}
NETADDRESS=${ADDRESS#*:}
sed -i -e "s/HOSTNAME.*/HOSTNAME=station$NUM.a.com/g" /etc/sysconfig/network
sed -i -e "s/127.0.0.1.*/127.0.0.1 station$NUM.a.com localhost localhost.localdomain/g" /etc/hosts
sed -i -e "s/BOOTPROTO.*/BOOTPROTO=static\nIPADDR=$NETADDRESS\nNETMASK=255.255.255.0/g" /etc/sysconfig/network-scripts/ifcfg-eth0
之后将ks.cfg文件保存到/var/ftp/目录下
之后还要修改一下ks.cfg文件,添上key –skip
C.ftp服务器的搭建
yum install vsftp
安装完成之后将/etc/vsftpd/ftpusers和/etc/vsftpd/user_list文件中的root用户删除以保证root用户能够登录,将光盘重新挂载到ftp的根目录下可以省去拷贝光盘镜像文件到根目录下的麻烦,同时我在vsftp.conf文件中添加了local_root=/var/ftp/使得一root用户登陆默认目录也是/var/ftp
这样所有的准备工作就完成了
2.pc机测试
打开虚拟PC机的电源,安装过程截图
到此启动成功,整个实验下来最重要的是要注意ks.cfg文件和安装后自动执行的脚本编写,希望你能成功!!!!