频道栏目
首页 > 网络 > 其他 > 正文

PXE网络装系统(PXE+DHCP+TFTP+FTP)

2017-07-21 11:30:28         来源:NetScotte的博客  
收藏   我要投稿

PXE(preboot execute environment,预启动执行环境)工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。

本方案采用(pxe+dhcp+tftp+ftp)进行配置。

测试环境:window10+virtualbox5.1.22+centos7.3

1.关闭防火墙和selinux
vim /etc/selinux/config # 将SELINUX=enforcing改为disabled并重启
systemctl stop firewalld # 关闭防火墙
systemctl disable firewalld #永久关闭firewalld

sestatus                            # 查询selinux状态
systemctl status firewalld      #查询防火墙状态

2.yum准备
mount /dev/cdrom /media/cdrom #确保将centos镜像分配到虚拟机,且新建了目录/media/cdrom

#隐藏其他repo配置文件,自定义repo文件,使用本地yum源,前一步挂载的镜像
将/etc/yum.repo.d下的所有文件移动到当前目录的新文件夹bak下,新建my.repo,内容如下
[development]          <--注意:这里一定要写development
name=my-centos7-dvd
baseurl=file:///media/cdrom
enabled=1
gpgcheck=0

3.安装并配置dhcp服务
yum -y install dhcp

vim /etc/dhcp/dhcpd.conf        内容如下:
subnet 192.168.56.0 netmask 255.255.255.0 {
  range 192.168.56.10 192.168.56.20;            # 用于分配的ip地址
  default-lease-time 600;                       #   IP地址租约
  max-lease-time 7200;          
  filename "pxelinux.0";                        #指定引导文件
  next-server 192.168.56.14;                # tftp服务器
}

#如果要为指定MAC地址赋予指定IP,去掉前面的range,否则不需要以下内容,
host centos7 {                                  #主机名为centos7
    hardware ethernet 08:00:27:5e:04:27;        #MAC地址是08:...:27的网卡
    fixed-address 192.168.56.15;                 #分配给它192.168.56.15的IP,
}

systemctl start dhcp

4.安装并配置tftp服务器
yum -y install tftp-server

vim /etc/xinetd.d/tftp
disable             = yes        # 将该项的yes改为no

systemctl start tftp.socket
systemctl start tftp.service

5.ftp服务准备(当然也可以用http,nfs等)
yum install -y vsftpd
systemctl start vsftpd

6.启动文件准备
#准备pxelinux.0
yum -y install syslinux #安装该服务可以产生pxelinux.0,然后将其复制到指定目录
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

#准备其他内核文件
cp -rf /media/cdrom/isolinux/* /var/lib/tftpboot/           # 将光盘镜像isolinux下的所有文件拷贝到指定目录

mkdir /var/lib/tftpboot/pxelinux.cfg
mv /var/lib/tftpboot/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
cd /var/lib/tftpboot/pxelinux.cfg
vim default                                     # 按照如下方式修改

timeout 600             #将该项值修改为60,即6秒

找到如下两项
label linux
  menu label ^Install CentOS Linux 7
  kernel vmlinuz
  append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet

label check
  menu label Test this ^media & install CentOS Linux 7
  menu default
  kernel vmlinuz
  append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rd.live.check quiet
将这两项删掉,使用如下设置
label linux
  menu label ^Install CentOS Linux 7 by kickstart
  menu default
  kernel vmlinuz
  append initrd=initrd.img inst.repo=ftp://192.168.56.14/pub inst.ks=ftp://192.168.56.14/ks.cfg

#default改完后便准备安装配置文件ks.cfg
yum -y install system-config-kickstart          # 安装system-config-kickstart,用于产生ks.cfg安装配置文件
system-config-kickstart                                 # 启动程序,图形化配置
注意
1.不要勾选安装后重启,不然会重新进行pxe安装
2.必须安装引导装载程序
3.软件选择上要保证正确完整,不然无法安装 。如果其他没问题,在anaconda上提示/run/install/ks.cfg is missing,就是这里软件不全,可以复制使用/root/anaconda-ks.cfg文件中%packages到%end中的内容
4.在末尾添加
%addon com_RedHat_kdump --disable --reserve-mb='auto'
%end

7.客户端准备
如果是真实机器,确保在bios中开启了pxe和虚拟化等功能,并且将pxe设为首选
如果是虚拟机,在设置中将网络启动设置为首选,硬盘,光盘等其次。确保虚拟机可以访问你的部署机

上一篇:Hadoop HA --- 网络原因/NN Full GC造成集群故障
下一篇:关于juniper配速小记
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站