PXE自动化装机
本文最后更新于 751 天前,内容如有失效请评论区留言。

军训空余时间很有限,经过4天的艰苦奋斗(到0:00)和教程斗智斗勇,终于实现了PXE网络引导无人值守安装系统


Day 0 晚

这一天是军训前1天,10.10日晚

查阅PXE安装系统相关资料后,发现主要以CentOS作服务器的居多,于是把香港的轻量应用服务器备份了快照和镜像,换成了CentOS 7.6,并重新搭建好了梯子

Day 1

img

​ 在实际工作中,传统纯手动安装操作系统的方式是有一定的局限性的,例如:现在大多数的服务器都不自带光驱,若要安装系统需要外接光驱插入光盘,整个安装过程中需要人工交互确认,手动设置每一个安装设置项,人必须要在机器前值守,时间大多花费在安装的等待过程中。假如有一大批服务器需要安装操作系统,这种传统手动的方式去逐台安装系统的方式,效率是极其低下的,而且由于需要人工交互式配置系统的安装设置项,无法确保每一台机器的系统安装配置都是完全一致的,即无法做到完全的统一标准化。(在大量重复的操作过程中,人工方式是极易出错的)

  为了解决上述问题,可以采用PXE网络的方式来实现系统自动化安装,整个安装过程中无需人工干预,极大的提供了工作效率。

PXE服务器需要的服务:

    DHCP服务:为客户端分配IP地址,定位启动引导文件

    TFTP服务:提供网卡启动引导程序、系统内核文件及initrd镜像文件下载

    FTP服务(或http/nfs):提供系统镜像的yum安装源及ks应答文件下载


客户端机应具备的条件:

    网卡必须支持PXE协议(现在大多数的网卡都已支持)

    主板BIOS支持从网络启动

主要步骤

yum -y install httpd 
systemctl start httpd.service  #启动httpd服务
systemctl enable httpd.service #设置httpd服务开机启动
mkdir -p /data/myiso  #创建 /data/myiso 作为系统镜像文件存放目录

通过Xshell 7的rz命令上传镜像

image-20211014214447341

mkdir -pv /var/www/html/centos/6/os/x86_64/
vim /etc/fstab

添加

“`/data/myiso/CentOS-6.10-x86_64-bin-DVD1.iso /var/www/html/centos/6/os/x86_64 iso9660 defaults 0 0“`

mount -a

=

cd /var/www/html/
mkdir ksdir/

上传ks配置文件到该目录

(一开始配置的并不正确,一直到最后一天才配置好,这里直接放最终版

image-20211014215042368

yum -y install tftp-server
systemctl start tftp.socket 
systemctl enable tftp.socket
yum -y install syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/
mkdir -pv /var/lib/tftpboot/centos/6
cp /var/www/html/centos/6/os/x86_64/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/centos6/
mkdir /var/lib/tftpboot/pxelinux.cfg/
vim dafault

配置如下

default menu.c32        #使用menu.c32作为背景图片
timeout 600             #默认等待时间60秒(600的十分之一)

menu title Auto Install CentOS      #启动菜单的标题

label CentOS6_Desktop                        #label标签说明
  menu label Install CentOS 6.10 Desktop    #安装选项菜单
  kernel centos6/vmlinuz                      #系统内核文件在tftp中的相对路径
  append initrd=centos6/initrd.img ks=http://43.132.178.80/ksdir/ks6_desktop.cfg  #boot启动引导的参数,指定系统initrd镜像文件在tftp中的相对路径以及ks应答文件的访问地址

label Local                           
  menu label Boot from Local drive  #从本地硬盘启动
  menu default        #默认启动选项,光标默认选中此项,timeout时间后默认从此项启动,建议默认设定为此项,防止60秒等待时间后未经过人工选择,造成直接进入系统安装
  localboot 0xffff

(注:上面的IP是香港服务器的,后面就要挂了(;′⌒`)

yum -y install dhcp
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 
vim /etc/dhcp/dhcpd.conf

image-20211014215802862

systemctl start dhcpd.service
systemctl enable dhcpd.service

然后就挂了

image-20211014215937448

Day 2

苦苦寻找解决办法……

直到我把ip相关的改成了服务器内网ip,终于成功了

我真傻,以为真的可以实现网络远程装系统,后来才发现它们全是在虚拟机配置的pxe服务器

image-20211014220326990

然后发现没法让虚拟机和服务器位于同一个局域网/网段,没法测试

(明天再在虚拟机上搞吧

Day 3

中午 安装CentOS 7虚拟机

晚上 和原来一样配置PXE服务器,好像没什么毛病就完了,准备测试

然后开机发现dpch服务time out无法获得ip地址

百度后发现是没有关闭防火墙和selinux

systemctl stop firewalld.service 
systemctl disable firewalld.service 

关闭selinux命令:将/etc/selinux/config中的SELINUX的值修改为“disabled”。重启生效。重启命令:reboot

然后正确获得地址,进入安装界面

But又出Bug了

![img](file:///C:\Users\LENOVO\Documents\Tencent Files\525687841\Image\C2C\B@Z@A{@I(N[)DZHAOGT6EPV.jpg)

为啥会retrieve不到呀

明明有的

开始全力搜索解决方法

并试图求助出题人Yadomin

Day 4

反复查找哪里挂了,检查iptables端口等是否开放

依然未解决

最后我哪里挂了,配置文件路径还真写错了。。。

image-20211014222123909

这里的反斜杠掉了

最后配置文件如下

#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install                                                     #全新安装
# Keyboard layouts
keyboard 'us'                                               #键盘模式,美式US
# Root password
rootpw "123456"       #设置root账号口令并采用加密
# Use network installation
url --url="http://192.168.45.201/centos/6/os/x86_64"           #系统镜像yum源的URL地址
# System language
lang en_US                                                  #系统默认语言,en_US
# System authorization information
auth  --useshadow  --passalgo=sha512                        #系统默认使用shadow文件作为账号登录验证
# Use text mode install
text                                                        #安装过程默认使用text文本的tui界面
firstboot --disable
# SELinux configuration
selinux --disabled                                          #禁用selinux

# Firewall configuration
firewall --disabled                                         #禁用系统防火墙
# Network information
network  --bootproto=dhcp --device=eth0                     #系统默认的网卡配置
# Reboot after installation
reboot                                                      #安装完成后自动重启系统
# System timezone
timezone Asia/Shanghai                                      #设置系统默认时区 Asia/Shanghai
# System bootloader configuration
bootloader --append="net.ifnames=0" --location=mbr          #安装新的bootload程序,并添加内核启动参数 net.ifnames=0
# Clear the Master Boot Record
zerombr                                                     #清除原有的MBR引导记录
# Partition clearing information
clearpart --all --initlabel                                 #清除原有的硬盘分区标签
# Disk partitioning information                             #硬盘分区信息,按实际需求设定
zerombr
clearpart --all --initlabel
part /boot --fstype=ext4 --asprimary --size=250
part / --fstype=ext4 --asprimary --grow --size=2000
part swap --fstype=swap --size=2000                   # /data分区使用所有剩余硬盘空间


#%packages       #要安装的包组,以%packages行开始,到%end结尾,包组以@符号开头,单个包直接写包名
#@base
#@core
#@debugging
#@development
#@hardware-monitoring

#%end              #需要注意的是,centos6中,如果选择最小化安装,ks文件最后需要写上 %packages开始行%end结尾行的2行,否则系统会默认安装所有的包组,centos7系统如果最小化安装,则可以不用写这2行

然后分区分挂了

image-20211014222608429

改了2次配置文件后

终于搞定了

image-20211014222619731

image-20211014222624046

image-20211014222642003

image-20211014222816591

image-20211014222835428

  • 写在最后:
    • 作为大一SA新手,能勉强看懂C/C++、Python,会点算法,但的确现在对这些东西还不太明白,像盲人摸象一般在错误的教程中寻找有价值的信息,再凭理解移花接木修改代码,百度+Google搜索并用,但还是可能会被一个问题卡很久,还请出题人谅解下(。・ω・。)
    • 军训期间课余时间有限,每天做题到零点,真心希望能进入CNSS和大佬们学习更多的技术

    ​ 作者:21-信软-LRL52

    ​ 时间:2021.10.10~10.14

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇