通过PXE远程安装多台Linux系统
实验目的:同时安装多台服务器,如果一台一台装的话会吐血的,出于节省时间的考虑,选用PXE的方式。
实验环境:
服务器centos5.1
VM虚拟机N台(如果是给实机装的话那实机的网卡一定要有PXE功能)
软件要求:tftp-server,dhcp等
实验说明:
PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络启动。协议分为client 和server两端,PXE client在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后, PXE client将放置在远端的操作系统通过网络下载到本地运行。
由DHCP server来给PXE client 分配一个IP地址,DHCP Server是用来给DHCP Client动态分配IP地址的协议,不过由于这里是给PXE Client分配IP地址,所以在配置DHCP Server时,需要增加相应的PXE特有配置。
PXE Client使用TFTP Client,通过TFTP协议到 TFTP Server上下载所需的文件。
实验步骤;
我的机器里并没有这两个包,先安装一下,如果没有其它相应的包的话也先安装一下
# yum -y install dhcp
# yum -y install tftp-server
一,配置nfs服务器
1,将准备好要进行安装的内容复制到硬盘上,下面新建一个目录进行存放。
# mkdir /var/isofiles
由于我的FTP里面有系统的ISO,所以直接将ISO内的文件复制到上面的目录。
将ISO文件直接挂载到/mnt/中,用如下方法
# mount /var/ftp/linuxtools/CentOS-5.2-i386-bin-DVD.iso /mnt/ -t iso9660 -o loop
将ISO文件中的内容全复制到下刚才建立的目录下。
# cp -r * /var/isofiles/
2,打开NFS服务
# vi /etc/exports
添上下面的这行
/var/isofiles *(ro,sync)
可以用如下命令来查看NFS的目录
# showmount -e changzi.centos
Export list for changzi.centos:
/var/isofiles *
将NFS服务打开
# service portmap start
启动 portmap: [确定]
# service nfs start
启动 NFS 服务: [确定]
关掉 NFS 配额: [确定]
启动 NFS 守护进程: [确定]
启动 NFS mountd: [确定]
二,配置DHCP服务器和TFTP服务
1,DHCP
从文档中复制一个模板,在模板中直接修改即可
# cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample dhcpd.conf
# vim /etc/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
filename "pxelinux.0";
subnet 192.168.1.0 netmask 255.255.255.0 {
# --- default gateway
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option time-offset -18000; # Eastern Standard Time
range dynamic-bootp 192.168.1.60 192.168.1.62;
default-lease-time 21600;
max-lease-time 43200;
# we want the nameserver to appear at a fixed address
host ns {
next-server 192.168.1.63;
hardware ethernet 12:34:56:78:AB:CD;
fixed-address 207.175.42.254;
}
}
#p#副标题#e#
我把其中注示掉了的一些东西删除了,没有贴上,占地方。
# /etc/init.d/dhcpd start
启动 dhcpd: [确定]
2,TFTP
# vim /etc/xinetd.d/tftp
# default: off
# description: The tftp server serves files using the trivial file transfer \
# protocol. The tftp protocol is often used to boot diskless \
# workstations, download configuration files to network-aware printers, \
# and to start the installation process for some operating systems.
service tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -u nobody -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
# /sbin/chkconfig --level 345 xinetd on
# /sbin/chkconfig --level 345 tftp on
该命令配置 tftp 和 xinetd 服务被立即启用,还把配置它们在运行级别3、4和5的引导期间启动。
或者
# service xinetd restart
三,配置支持PXE
在根目录建立如下文件夹
# mkdir /tftpboot
将pxelinux.0文件考到刚建立好的文件夹中
# cp /usr/lib/syslinux/pxelinux.0 /tftpboot
此处要求已经安装了selinux,如果没有安装的话可以在下面这个网址下载syslinux-3.63.tar.gz
https://www.kernel.org/pub/linux/utils/boot/syslinux/
解压后将其中的pxelinux.0复制到/tftpboot中
# pwd
/tftpboot
# mkdir /tftpboot/pxelinux.cfg
将安装盘isolinux目录下的isolinux.cfg文件复制为/tftpboot/pxelinux.cfg/default
# cp /var/isofiles/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
将安装盘isolinux目录下的两个文件vmlinuz和initrd.img复制到/tftpboot中
# cp /var/isofiles/isolinux/vmlinuz ./
#
关键词标签:PXE,Linux系统