DevOps工具介绍连载(15)——PXE方式

2020-03-04 13:33:33 浏览数 (1)

原文链接:

https://blog.csdn.net/wangsuyu_1/article/details/51295459

1:前言

前两天由于工作的需要,研究了下pxe安装系统的方式。

虽然网上资料也蛮全的了,但是对于我这样对pxe,tftp,dhcp等完全不懂的人来说,就是按部就班地做,也是错误百出,花了好久才找到方法。

所以就记录下具体的操作步骤和一些细节性的问题。

2:准备工作

我的主机系统用的是Fedora 23官方最新的版本,直接官网下载的,因为官方的各种服务软件包比较好下载,如果有错误也不用怀疑软件包的问题。

IP我用了静态的ip,10.3.3.138。

要安装的机器的系统我是选的centos,CentOS-6.4-x86_64-bin-DVD1.iso。因为别人教程里就是按照centos来的,所以就偷个懒,好歹先实现一下。

3:设置BIOS

想要pxe安装系统,启动项肯定要改成pxe优先级最高。而且BIOS里有一个Network Setup总的Onboard Ethernet Contorller给调整为enable。刚开始

一直没法调整网络启动,被排除在了boot order外面。后来慢慢去试了试终于找到了方法。

4:配置dhcpd

原版的Fedora 23并没有装dhcpd相关的包

所以使用dnf install dhcp就可以自动安装相关的包了

然后使用vim 打开/etc/dhcp/dhcp.conf (如果没有这个文件也没关系,直接编辑就好了)

代码语言:javascript复制
subnet 10.3.3.0 netmask 255.255.255.0 {
range 10.3.3.139 10.3.3.140;
option routers 10.3.0.2;
option subnet-mask 255.255.255.0;
option domain-name "domain.org";//名字好像可以随便写
option domain-name-servers 223.6.6.6;
next-server 10.3.3.138;
filename "pxelinux.0";
}

这里要注意的是

1:subnet 10.3.3.0 netmask 255.255.255.0

10.3.3.0是因为我主机的IP是10.3.3.138。应该是要放在同一个网段里

2: range 10.3.3.139 10.3.3.140;

这个是给要安装系统的机器的ip区域范围。我Ip分配的少,就没写那么多。

其他的照着写就行了

5:配置TFTP

第一步安装包dnf install tftp tftp-server

第二部修改配置

代码语言:javascript复制
vim /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
}

这边就不解释了,不是很理解他的原理。有机会深入研究

6:拷贝一些文件到/tftpboot,如果没有这个目录就自己新建一个

cp /usr/share/syslinux/pxelinux.0 /tftpboot

如果没有这个文件需要安装syslinux,我本来系统就有。

7:挂载光盘到/mnt目录下面,然后把其中的内核等拷贝过去

还有就是把ISO中的/mnt/isolinux/isolinux.cfg 这个文件复制到 /tftpboot/pxelinux.cfg 目录下,并重命名为default。pxelinux.cfg自己去创建

ls /tftpboot 一下可以看到下面的目录,内核是这些文件都是iso /mnt/image/pxeboot中的。但是那些.c32结尾的文件是syslinux目录下的文件,安装的时候提示缺少的,到时候缺什么拷贝什么就可以了,也不用提前拷贝

boot.msg ldlinux.c32 libutil.c32 pxelinux.cfg vmlinuz

initrd.img libcom32.c32 pxelinux.0 vesamenu.c32

8:安装ftp服务软件

dnf install vsftpd

安装好以后,卸载之前挂载在/mnt的iso,然后把光盘给挂载到ftp默认的目录,/var/ftp/pub,然后就可以了。

9:启动相关的服务和关闭防火墙

systemctl start tftp.service

systemctl start xinetd.service

systemctl start vsftpd.service

systemctl start dhcpd.service

有些服务可能本身就打开了,需要用restart。不然我估计会出问题。可以先用status看看当前服务的状态

systemctl stop firewalld.service(一定要关闭啊,不然主机连接pxe的时候会报PXE-E32:TFTP open timeout)

10:正式开始安装 具体图片到公司以后上传

此时把网线什么的都连接好,然后启动客户机。

如果一切顺利,可以看到引导界面。之后选择语言和键盘。

需要注意的是,安装方法(Install Method)需要选择url安装

然后的配置ipv4选择手动配置(Manual configuration)

输入分配给客户机的ip范围和子网掩码和网关,。

等待一会网卡配置好了后,会有一个URL setup的。

输入自己的ftp地址

我的是ftp://10.3.3.138/pub

也可以先在自己的浏览器上面输入,看看能不能找到。之后就是正常的系统安装,就不说了。

11:遗憾

可惜的是uefi方式引导安装一直没有成功(当然系统不是centos了,而是一个fedora 23 aarh版本,而客户机是一个华为的服务器),网上资料也查了很多。不知道哪边有问题,总之感觉一直找不到我开启的tftp服务。报server response timeout。

参考链接:

http://blog.chinaunix.net/uid-24261911-id-2620662.html

基本注意的地方好像都概括了,以后如果想起来有什么需要补充的再回来补充。

0 人点赞