传统的系统安装需要有安装光盘或者U盘,当一个网络有数百台主机需要安装操作系统时采用传统的安装不仅浪费时间又增加了网络管理员的工作量,为了减轻管理员的工作量可以采用网络安装。随着我们的硬件的革新,现在几乎所有的集成在电脑主板上的网卡,都已经有了支持PXE的NIC卡。通过NIC卡,我们能够实现网络安装,并且可以避免交互,从而提高系统的安装速度。
实现PXE安装的环境需求:首先必须要有安装文件,因为其是基于网络安装,所以我们的安装树必须是一个网络服务器(FTP、HTTP、NFS三者之一),由于在进行PXE安装时,客户机会发出dhcp广播请求,所以我们的网络中必须要有dhcp server。而PXE是基于网络引导系统的,而引导文件会存放在tftp的目录下,因此我们的网络中必须要有tftp server,在这个tftp server的目录下存放有引导文件驱动程序和内核。
下面我们就基于FTP服务器,来实现网络中其他主机系统的网络引导与安装 (系统环境是:rhel 5.4):
首先,我为了方便起见,将我们的网络中的一台主机打造成ftp server、dhcp server、tftp server 和yum server;
将我们的主机的ip address 设置为192.168.2.10,保存并且退出使用serivice networkrestart命令重启网络服务。
建立/mnt/cdrom挂载点,挂载光驱,安装vsftpd服务,启动vsftpd服务并且改为开机自启动:
[root@localhost~]# mkdir /mnt/cdrom
[root@localhost~]# mount /dev/cdrom /mnt/cdrom/
[root@localhost~]# cd /mnt/cdrom/Server/
[root@localhostServer]# rpm �Civh vsftpd-2.0.5-16.el5.i386.rpm
[root@localhostServer]# service vsftpd start
[root@localhostServer]# chkconfig vsftpd on
注意:由于我们只是采用ftp进行linux系统的安装,因此我们并不需要进行其他的配置。
安装dhcp服务,并且修改/etc/dhcpd.conf,启动dhcp服务,并且改为开机自启动:
[root@localhost Server]# rpm -ivhdhcp-3.0.5-21.el5.i386.rpm
[root@localhost Server]# vim/etc/dhcpd.conf
dhcpd.conf的内容如下:
[root@localhost Server]# servicedhcpd start
[root@localhost Server]# chkconfigdhcpd on
使用rpm �Cqa |grep tftp-server查看是否安装,若没有安装,先安装tftp-server服务,然后编辑/etc/xinetd.d/tftp文件,将disable= yes改为disable= no,后将xinetd重启一下:
[root@localhost Server]# vim/etc/xinetd.d/tftp
tftp的内容如下:
[root@localhost Server]# servicexinetd restart
由于我们在用kickstart产生ks.cfg文件时,是基于图形界面的,我们知道linux下要想在图形界面下安装软件就必须配置yum服务;由于我们只在我们这台主机上使用,所以将yum服务器配置成本地服务器。需要修改/etc/yum.repos.d/rhel-debuginfo.repo文件:
[root@localhost Server]# vim/etc/yum.repos.d/rhel-debuginfo.repo
1[rhel-server]
2 name=Red Hat Enterprise Linux server
3 baseurl=file:///mnt/cdrom/Server
4 enabled=1
5 gpgcheck=1
6 gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release
7 [rhel-cluster]
8 name=Red Hat Enterprise Linux cluster
9 baseurl=file:///mnt/cdrom/Cluster
10 enabled=1
11 gpgcheck=1
12 gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release
13 [rhel-clusterstorage]
14 name=Red Hat Enterprise Linuxclusterstorage
15 baseurl=file:///mnt/cdrom/ClusterStorage
16 enabled=1
17 gpgcheck=1
18gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release
19 [rhel-vt]
20 name=Red Hat Enterprise Linux vt
21 baseurl=file:///mnt/cdrom/VT
22 enabled=1
23 gpgcheck=1
24gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release
接下来将安装文件,PXE的引导文件、驱动和内核等文件拷贝到相应的位置,并进行相应的配置;
将光盘上的安装文件全部拷贝到FTP的根目录下面:
进入到/mnt/cdrom/images/pxeboot/目录下,将与pxe引导相关的驱动和内核文件拷贝到/tftpboot/目录下:
然后,进入/usr/lib/syslinux/目录下,将pxe的引导文件pxelinux.0文件拷贝到/tftpboot目录下:
[root@localhost pxeboot]# cd/usr/lib/syslinux/
[root@localhost syslinux]# cp pxelinux.0 /tftpboot/
由于pxe的引导文件还依赖于相应的配置文件,在/tftpboot目录下创建一个pxelinux.cfg的目录,将/mnt/cdrom/isolinux/目录下的isolinux.cfg文件拷贝到/tftpboot/pxelinux.cfg/目录下并且改名为default:
[root@localhost ~]# cd /tftpboot/
[root@localhost tftpboot]# mkdirpxelinux.cfg
[root@localhost tftpboot]# cp/mnt/cdrom/isolinux/isolinux.cfg ./pxelinux.cfg/default
修改pex的配置文件default,并强制保存退出:
当客户机在pxe启动时,客户端会发送dhcp广播,dhcp server 收到广播后会告诉客户机ip 地址 和tftp server的ip地址,tftp server会为客户机指明pxe引导文件。此时修改/etc/dhcpd.conf文件:
重启dhcp服务。
现在,主机已经能够获取到ip地址了,现在我们也想给我们网络内的每台主机都以station+ip地址的最后三位+.a.com命名:我们需要写个脚本,写在生成ks.cfg的后安装脚本位置处:
现在去采用kickstart去生成ks.cfg文件,由于kickstart也是一个工具,这个工具包含在system-config-kickstart.noarch包内,现在采用yum安装这个rpm包:
[root@localhost ~]# yum install -ysystem-config-kickstart
注意:yum进行rpm包的好处是能够自动解决包的依赖关系。
执行system-config-kickstart进行kickstart的配置最终产生ks.cfg文件:
然后打开ks.cfg文件,在文件内的network --bootproto=dhcp --device=eth0 --onboot=on后面追加一句key--skip:
此时,在ks.cfg中我们还能看到要安装的软件包:
现在所有配置已经完成,我们只要把网络内的机器加电开机,系统便会自动安装出现如下界面:
接着会安装我们选择的软件包:
安装完成,会重启系统进入字符终端:
输入正确的用户名和密码便完成了登录,在里面我们可以使用hostname查看主机名,使用ifconfig查看ip地址:
至此,整个PXE的引导过程也已经完成,中间不需要我们做任何操作,系统便能成功安装。