设为首页 收藏本站
查看: 946|回复: 0

[经验分享] PXE 装机详解

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-11-8 08:20:23 | 显示全部楼层 |阅读模式
===========================================================================
概述:
   在实际工作中,我们经常会遇到这样的情况:想要安装Linux但是计算机没有光驱,或者是有大批量的计算机需要同时安装Linux,如果通过光驱的方式一个个安装,不仅效率低,也不利于维护。这是时候你就需要PXE的强大功能了。本文就将讲解利用PXE自动化安装CentOS6和CentOS7的安装过程。
===========================================================================
1.安装原理
★安装流程
  • 客户机从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP
  • DHCP服务器返回分给客户机IP
  • 客户机向本网络中的TFTP服务器索取文件
  • 客户机取得bootstrap文件后之执行引导文件完成引导
  • 然后读取配置文件,通过TFTP服务器加载内核和文件系统
  • 进入安装画面, 此时可以通过选择HTTP、FTP、NFS(这里以http为例)方式进行安装

★实现PXE网络安装必需的4个要素
  • 客户机的网卡必须为PXE网卡
  • 网络中必须要有DHCP和TFTP服务器,当然这两个服务器可以是同一台物理主机
  • 所安装的操作系统必须支持网络安装。
  • 必须要有FTP,HTTP,NFS至少一个服务器,当然也可以和DHCP和TFTP服务器同为一台物理主机

2.PXE配置流程图
wKiom1gga__SUx_uAABD8nsverQ638.jpg
3.实验环境描述:
  • 这里我使用的dhcp和tftp服务器为同一台CentOS 7主机;


4.CentOS 7具体实现如下:
1)安装dhcp服务器,配置自定义作用域,如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[iyunv@centos7 ~]# yum install dhcp -y
[iyunv@centos7 ~]# cd /etc/dhcp/
[iyunv@centos7 dhcp]# ls
dhclient.d  dhcpd6.conf  dhcpd.conf
[iyunv@centos7 dhcp]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example ./dhcpd.conf
cp: overwrite ‘./dhcpd.conf’? y   

[iyunv@centos7 dhcp]# vim dhcpd.conf
subnet 10.1.0.0 netmask 255.255.0.0 {
         range 10.1.252.151 10.1.252.161;
     filename "pxelinux.0";
     next-server 10.1.252.153;

}



启动dhcp服务,验证端口(67/udp)是否处于监听状态
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[iyunv@centos7 dhcp]# systemctl start dhcpd
[iyunv@centos7 dhcp]# ss -unl
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port              
UNCONN      0      0              *:67                         *:*                  
UNCONN      0      0              *:68                         *:*                  
UNCONN      0      0      127.0.0.1:323                        *:*                  
UNCONN      0      0              *:31084                      *:*                  
UNCONN      0      0              *:3031                       *:*                  
UNCONN      0      0              *:514                        *:*                  
UNCONN      0      0             :::69                        :::*                  
UNCONN      0      0             :::50914                     :::*                  
UNCONN      0      0             :::46863                     :::*                  
UNCONN      0      0            ::1:323                       :::*                  
UNCONN      0      0             :::514                       :::*



2)配置tftp服务器,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
[iyunv@centos7 ~]# yum install tftp-server tftp -y  # 安装

[iyunv@centos7 ~]# systemctl start tftp.socket      # 启动

[iyunv@centos7 dhcp]# ss -unl                       # 查看端口69/udp
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port              
UNCONN      0      0              *:67                         *:*                  
UNCONN      0      0              *:68                         *:*                  
UNCONN      0      0      127.0.0.1:323                        *:*                  
UNCONN      0      0              *:31084                      *:*                  
UNCONN      0      0              *:3031                       *:*                  
UNCONN      0      0              *:514                        *:*                  
UNCONN      0      0             :::69                        :::*



3)准备安装树
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[iyunv@centos7 ~]# mkdir /var/ftp/pub/CentOS7
[iyunv@centos7 ~]# mount -r /dev/cdrom /var/ftp/pub/CentOS7
[iyunv@centos7 ~]# df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda2       41922560  1017984  40904576   3% /
devtmpfs          477776        0    477776   0% /dev
tmpfs             500644        0    500644   0% /dev/shm
tmpfs             500644    13168    487476   3% /run
tmpfs             500644        0    500644   0% /sys/fs/cgroup
/dev/sda3       20961280 12449428   8511852  60% /usr
/dev/sda1         496300   192472    303828  39% /boot
/dev/sda6        5094652    11284   5022748   1% /testdir
tmpfs             100132        0    100132   0% /run/user/0
/dev/sr0         7587292  7587292         0 100% /var/ftp/pub/CentOS7  # 挂载成功
[iyunv@centos7 CentOS7]# ls
CentOS_BuildTag  EFI  EULA  GPL  images  isolinux  LiveOS  Packages  repodata  
RPM-GPG-KEY-CentOS-7  RPM-GPG-KEY-CentOS-Testing-7  TRANS.TBL

[iyunv@centos7 CentOS7]# systemctl start vsftpd # 启动ftp服务



4)准备/var/lib/tftpboot下文件
1
2
3
4
5
6
7
8
9
10
11
12
13
# 我们需要安装syslinux程序包,它会提供 pxelinux.0 文件,然后复制到其目录下;
[iyunv@centos7 dhcp]#  yum install syslinux -y
[iyunv@centos7 dhcp]# cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/

# 挂载关盘,复制光盘中images/pxeboot下的文件(为pxe安装专用的内核等文件)
[iyunv@centos7 ~]# cp /var/ftp/pub/CentOS7/images/pxeboot/{initrd.img,vmlinuz} /var/lib/tftpboot/
[iyunv@centos7 ~]# ls /var/lib/tftpboot/
initrd.img  pxelinux.0  vmlinuz

# 复制syslinux程序包下的文件,分别为基于链式方式引导文件,内存磁盘引导项,菜单项,内存当磁盘的模拟文件
[iyunv@centos7 ~]# cp /usr/share/syslinux/{chain.c32,mboot.c32,menu.c32,memdisk}  /var/lib/tftpboot
[iyunv@centos7 ~]# ls /var/lib/tftpboot/
chain.c32  initrd.img  mboot.c32  memdisk  menu.c32  pxelinux.0  vmlinuz



  在/var/lib/tftpboot下创建为menu.c32提供菜单的配置文件(菜单加载时用到的配置文件信息)
1
2
3
4
5
6
7
8
9
10
11
[iyunv@centos7 tftpboot]# mkdir pxelinux.cfg
[iyunv@centos7 tftpboot]# vim pxelinux.cfg/default
default menu.c32   
     prompt 5
     timeout 30
     MENU TITLE CentOS 7 PXE

     LABEL linux
     MENU LABEL Install CentOS 7 X86_64
     KERNEL vmlinuz
     APPEND initrd=initrd.img inst.repo=ftp://10.1.252.153/pub/CentOS7/



5.此时,如果我们想手动安装,到这步就已经可以了,不防我们先测试一下
  1)新建一个虚拟机,网卡改到和10.1.252.153同一网络,如下
wKioL1ggrU7RCLDbAACP1nKfztk286.jpg
wKiom1ggrWrxhNRrAACHy1e4J0M174.jpg
  2)启动此虚拟机,可以看到能正常获取到IP地址,并显示我们自己设定的安装界面,如下:
wKioL1ggrfvBHl-zAAAM87FdjWs854.jpg
  3)5s钟之后开始加载程序,然后进入到手动安装界面,如下:
wKioL1ggrwDjIeqOAAGWuoq5dqA186.jpg





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-297128-1-1.html 上篇帖子: 公司内部中搭建wiki服务做项目管理系统 下篇帖子: 关于DNS服务无法解析问题处理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表