1818IP-服务器技术教程,云服务器评测推荐,服务器系统排错处理,环境搭建,攻击防护等

当前位置:首页 - 运维 - 正文

君子好学,自强不息!

Linux的PXE与UEFI PXE远程安装系统

2022-11-05 | 运维 | gtxyzz | 577°c
A+ A-

在Linux中有多种的安装方式:HD、USB、CDROM、PXE及远程管理卡等。在我们的系统运维的生涯中,经常要安装操作系统,然而我们维护的机器不是一两台而已,一般的企业服务器数量都在几十、几百、几千、甚至上万台。这么多的机器,如果人工的一台一台去安装,那我们这些运维人员,可能要把大部分时间都花费在了安装系统上,所以,我们一般都会建立一个PXE服务器,通过网络来批量部署系统。

随着计算机产品的更新换代以及IT企业的发展,一个公司的计算机型号种类越来越多,硬盘也不一样,那么我们维护的手段也需要与时俱进。本文主要介绍硬件环境差异比较大的情况下,如何搭建一机多用的PXE服务器,下面以CentOS-6.4-x86_64版本为例,进行服务器的配置。

一、普通机器的PXE系统部署

实现自动获取IP网络安装linux是这样的:客启端PXE网卡启动–>通过Bootp协议广播dhcp请求–>DHCP服务器–>获取IP,TFTP服务器地址–>从TFTP上下载 pxelinux.0以及系统内核文件vmlinuz、initrd.img–>启动系统–>(到指定url去下载ks.cfg文件–>根据ks.cfg文件去NFS/HTTP/FTP服务器自动下载软件包)安装系统–>完成安装。

主要使用的使用到的服务,FTP server用来发布linux系统的安装树(也可以使用NFS、HTTP或HTTPS),DHCP server为客户端分配ip并提供TFTP服务器地址及PXE启动文件位置,TFTP server为客户端提供引导文件。三个服务可以安装在同一台服务器上,也可以安装在三台服务器上。

1、安装配置FTP server

[root@pxe~]#yuminstallvsftpd
[root@pxe~]#chkconfigvsftpdon
[root@pxe~]#servicevsftpdstart

vsftpd的默认配置文件在/etc/vsftpd/vsftpd.conf,共享目录在/var/ftp/pub/下,不用做什么修改就可以直接使用了。安装好后要把系统盘镜像的全部文件复制到这里,或挂载到这个目录下,我就是把光盘镜像挂载到了这里,因为还有个ks.cfg文件要发到这里,所以我在这里有建立了mirror目录,将系统镜像挂载到了/var/ftp/pub/mirror/下。

2、安装配置DHCP server

[root@pxe~]#yuminstalldhcp

编辑配置文件,这里是很重要的。

[root@pxe~]#vim/etc/dhcp/dhcpd.conf
default-lease-time600;
max-lease-time7200;
ddns-update-stylenone;
subnet10.12.190.0netmask255.255.255.0{
rangedynamic-bootp10.12.190.10010.12.190.120;
optionrouters10.12.190.254;
optionsubnet-mask255.255.255.0;
filename"pxelinux.0";//如果不是在TFTP根目录下,要写上目录
next-server10.12.190.140;//tftp服务器地址
}

3、安装配置TFTP server

①安装TFTP,然后编辑配置文件,开启开启服务,默认的数据目录/var/lib/tftpboot

[root@pxe~]#yuminstalltftp-server
[root@pxe~]#vim/etc/xinetd.d/tftp
servicetftp
{
socket_type=dgram
protocol=udp
wait=yes
user=root
server=/usr/sbin/in.tftpd
server_args=-s/tftpboot//这个可以自己修改
disable=no//将yes改成no是启用
per_source=11
cps=1002
flags=IPv4
}
[root@pxe~]#servicexinetdrestart

②将pxelinux.0拷贝到tftpboot目录下

[root@pxe~]#cp/usr/share/syslinux/pxelinux.0/tftpboot//如果找不到这个文件,要安装syslinux软件包

③将启动文件从光盘中找到,并复制到该目录下:

[root@pxe~]#ll/tftpboot/

总用量 36084:

-rwxrw-rw-1rootroot324918563月22013initrd.img//这是一个初始化文件,一个最小的系统镜像
-rwxrw-rw-1rootroot2682812月922:57pxelinux.0//这文件是为legcay启动,它是legcay的启动镜像,
drwxrwxrwx2rootroot40961月2812:14pxelinux.cfg//该文件夹下放的是启动菜单,手动创建
-rwxrw-rw-1rootroot1512303月52013splash.jpg//背景图片,可以不要
-rwxrw-rw-1rootroot1628603月52013vesamenu.c32//legacyBIOS引导菜单工具,可以从光盘或/usr/share/syslinux/中找到
-rwxrw-rw-1rootroot40438883月52013vmlinuz//内核文件

④在pxelinux.cfg目录下,建立默认文件,该文件可以使用光盘中的isolinux.cfg文件来当模板,这个启动菜单很重要

[root@pxe~]#vim/tftpboot/pxelinux.cfg/default
defaultvesamenu.c32
timeout30
menubackgroundsplash.jpg
menutitleWelcometoPXECentOS-6.4-x86_64!
menucolorborder0#ffffffff#00000000
menucolorsel7#ffffffff#ff000000
menucolortitle0#ffffffff#00000000
menucolortabmsg0#ffffffff#00000000
menucolorunsel0#ffffffff#00000000
menucolorhotsel0#ff000000#ffffffff
menucolorhotkey7#ffffffff#ff000000
menucolorscrollbar0#ffffffff#00000000
labellinux
menulabel^InstallorupgradeCentOS-6.4-x86_64anexistingsystemfromtoNetwork
kernelvmlinuz
appendinitrdinitrd=initrd.imgksdevice=eth0repo=ftp://10.12.190.187/pub/mirrorip=dhcp
labellinux
menulabel^InstallCentOS-6.4-x86_64usekisckstartfile
menudefault
kernelvmlinuz
appendinitrdinitrd=initrd.imgip=10.12.190.183netmask=255.255.255.0gateway=10.12.13.254dns=202.106.0.20ksdevice=eth0ks=ftp://10.12.190.187/pub/ks.cfg
labelrescue
menulabel^Rescueinstalledsystem
kernelvmlinuz
appendinitrdinitrd=initrd.imgrescueksdevice=eth0repo=ftp://10.12.190.187/pub/mirrorip=dhcp
labellocal
menulabelBootfrom^localdrive
localboot0xffff

以上参数可以接在kernel后边,也可以接在initrd.img后边,都不影响。

ksdevice= 是为了指定使用哪块网卡,因为机器有多块网卡,无人值守会卡在这里。

repo= 是指定安装镜像的url,如果没有,就会提示要一下画面,那就需要手工处理了。

ip= 可以指定网卡自动获取ip,还是使用固定ip,如果使用固定ip,系统将把这个ip写入到配置文件中去。

ks= 是指定ks.cfg文件的url,ks.cfg是个应答文件,可以替我们处理所有安装时,所有需要手工设置的内容,该文件可以直接编辑系统中的/home/anaconda-ks.cfg文件,或者在图形化下使用system-config-kickstart包来编辑一个,非常好用。

有的时候,可能需要手工来处里某一台机器,还要跑到那台机器前吗?当然不需要,安装的时候也可以使用vnc来远程操作的。机器不一样,用途也不一样,有的时候不能完全自动,也需要我们手工做些改动。

⑤允许远程访问安装系统

在另一个系统上显示图形或字符安装界面,这时就可以使用vnc服务,这是操作系统本身就支持的功能,vnc选项启动VNC服务,vncpassword选项用来设置一个远程访问的密码,VNC密码必须至少6个字符,不设置密码去掉vncpassword选项也可以。使用方法很简单,可以写在PXE的引导菜单中,添加在kernel或initrd.img后边,或是在出现菜单画面时,按Tab键,编辑某一行,在最后边加入vnc vncpassword=123456字段,或是按Esa键,在命令行里直接输入linux vnc vncpassword=123456就可以了,U盘安装,光盘装都有效。

假设远程机器ip是10.12.190.181.,被安装机器的ip是10.12.190.101

(1)正向连接方式:

linuxvncip=10.12.190.101netmask=255.255.255.0gateway=10.12.190.254vncpassword=123456

指定被安装机器的ip是10.12.190.181 网关是10.12.190.254 掩码是24, vnc连接的密码是123456

由远程vnc客户端,连入被安装机器进行安装,之后的操作就和平时一样了。在安装系统上将显示如下信息:

vnc连接地址为10.12.190.101:1

(2)反向连接方式:

在远程启动vnc的被动连接:vncviewer.exe -listen,当客户端安装过程启动后,远程端的vnc会自动连接

linuxvncvncconnect=10.12.190.181vncpassword=123456

vnc会自动反向联接10.12.190.181,如果远程机器开启vnc监听,在10次超时15秒后,会变成主动方式连接,在安装系统上将显示如下信息:

以上2种方式,如果IP是DHCP自动获取的话,使用反向连接方式比较好,这样,无需知道安装系统的客户端获取的IP是多少,也可以建立连接。

⑥另一种安装菜单的写法:

labellinux
menulabel^InstallorupgradeCentOS-6.4-x86_64anexistingsystemfromtoNetwork
kernel/vmlinuzksdevice=eth0repo=ftp://10.12.190.187/pub/mirrorip=dhcp
initrd/initrd.img
labellinux
menulabel^InstallCentOS-6.4-x86_64usekisckstartfile
menudefault
kernel/vmlinuzip=10.12.190.183netmask=255.255.255.0gateway=10.12.13.254dns=202.106.0.20ksdevice=eth0ks=ftp://10.12.190.187/pub/ks.cfg
initrd/initrd.img

本文来源:1818IP

本文地址:https://www.1818ip.com/post/7188.html

免责声明:本文由用户上传,如有侵权请联系删除!

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。