PXE 高效批量网络装机

        单机时,可以通过光驱加载 linux 镜像去安装操作系统,光驱里有一个小型的linux操作系统将操作系统安装进自己的硬盘。或用PE 操作系统是外来的设备的上操作系统, 进入到外来的操作系统后,将自己想要安装的操作系统类型,安装进硬盘。多台时,可以通过PXE批量装机。

系统安装过程

  • 加载Boot Loader :是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境
  • 加载启动安装菜单
  • 加载内核和initrd系统(文件才能使用文件)
  • 加载根系统
  • 运行anaconda的安装向导

Linux安装光盘的安装相关文件

在系统光盘的isolinux目录下有和安装相关的文件

  • boot.cat: 相当于grub的第一阶段。
  • isolinux.bin:光盘引导程序,在mkisofs的选项中需要明确给出文件路径,这个文件属于SYSLINUX项目
  • isolinux.cfg:启动菜单的配置文件,当光盘启动后(即运行isolinux.bin),会自动去找isolinux.cfg文件
  • vesamenu.c32:是光盘启动后的启动菜单图形界面,也属于SYSLINUX项目,menu.c32提供纯文本的菜单 需要用yum install syslinux (引导)
  • memtest:内存检测程序
  • splash.png:光盘启动菜单界面的背景图
  • vmlinuz:是内核映像
  • initrd.img:ramfs文件(精简版的linux系统,文件系统驱动等)

网卡启动需要和光盘启动拥有差不多的环境

四大文件:

内核 :vmlinuz

驱动: initrd.img

grub 配置文件:pxelinux.0

网络引导 grub程序 syslinux (软件集合):pxelunux.cfg/default

PXE 概述

        PXE 的全称是 preboot execute environment它其实是Intel在很久以前提出来的一项用于通过网络来引导系统的标准。允许客户机通过网络从远程服务器上下载引导镜像,并加载安装文件或者整个操作系统。pxe是通过网卡引导启动。

实现的硬件条件

  1. BIOS支持
  2. 网卡支持(现在基本都已支持)
  3. 需要在bios中开启开关,服务器一般没打开(bmc界面里打开)
  4. 网络中有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置 网卡自带DHCP功能 dhcp 指明分配的ip地址
  5. 服务器通过 tftp服务(简单文件传输协议)来提供系统内核和引导镜像的下载 udp()协议 网卡自带这个功能(不支持其他的远程共享服务)
  6. 自带的站点(/var/lib/tftp?) initrd.img(驱动) vmlinuz(内核) pxelinux.cfg/default(引导文件) pxelinux.0(小型的grub程序) tftp 指明

实现过程

  • 网卡需要查找相关的dhcp服务器(获取地址时间)
  • 找到后dhcp服务器提供ip地址,和引导程序(boot loader)的地址 还提供给客户机TFTPserver地址(dhcp本身不提供tftp服务)
  • 网卡使用tftp客户端吧引导程序加载到内存中来
  • bios执行引导程序
  • 引导程序会去TFTP去查找配置文件
  • 根据配置文件去引导安装系统
  • 系统安装过程

搭建过程服务

        PXE 远程安装服务器集成了 CentOS 7 安装源、TFTP 服务、DHCP 服务,能够向客户机裸机发送 PXE 引导程序、Linux 内核、启动菜单等数据,以及提供安装文件。

TFTP 服务

TFTP(简单文件传输协议):内核和引导文件

        是一种基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小型文件传输的应用场合。TFTP服务默认由xinetd服务进行管理,使用UDP69端口。

vsftp 服务

安装系统镜像文件获取方式

        可以使用http ftp等方式,ftp文件传输的一种。

syslinux 服务

        syslinux是一个功能强大的引导加载程序,而且兼容各种介质。它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。它的安装很简单,一旦安装syslinux好之后,sysLinux启动盘就可以引导各种基于DOS的工具,以及MS-DOS/Windows或者任何其它操作系统。pxelinux.0 启动pxe,pxe可以支持。

PXE 优点

  • 规模化:同时装配多台服务器
  • 自动化:安装系统、配置各种服务
  • 远程实现:不需要光盘、U盘等安装介质

操作过程

安装所需软件

yum install tftp-server.x86_64  dhcp syslinux vsftpd -y   

生成dhcp 配置文件  

cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example   /etc/dhcp/dhcpd.conf    

修改dhcp配置文件

vim   /etc/dhcp/dhcpd.conf                  
subnet 192.168.91.0 netmask 255.255.255.0 {
  range 192.168.91.20 192.168.91.50;
  option routers 192.168.91.100;
  next-server 192.168.91.100;
  filename "pxelinux.0";
}

修改  tftp  配置文件  将yes 改为no
vim /etc/xinetd.d/tftp                           
disable                 = no

准备四大文件:pxelinux.0     initrd.img    vmlinuz    pxelunux.cfg/default
pxelinu.0
cp /usr/share/syslinux/pxelinux.0    /var/lib/tftpboot/

准备内核  驱动文件  
mount  /dev/sr0    /mnt
cd /mnt/isolinux/
cp vmlinuz  initrd.img    /var/lib/tftpboot/

准备手写配置文件
cd  /var/lib/tftpboot/
mkdir pxelinux.cfg
vim  pxelinux.cfg/default
default linux
timeout 600

   label  linux
          kernel vmlinuz
          append initrd=initrd.img   method=ftp://192.168.91.100/centos7

  (

准备yum仓库
mkdir /var/ftp/centos7
mount /dev/sr0  /var/ftp/centos7/

systemctl start dhcpd
systemctl start tftp.socket
systemctl start vsftpd

准备应答文件 自动安装操作系统
yum install system-config-kickstart -y     

手动去添加应答文件过程  略

cd  /var/lib/tftpboot/
vim  pxelinux.cfg/default
default linux
timeout 600

   label  linux
          kernel vmlinuz
          append initrd=initrd.img   method=ftp://192.168.91.100/centos7  ks=ftp://192.168.91.100/ks.cfg 

 

 

 手动添加应答文件过程

安装虚拟机检验

<think>好的,我现在需要回答用户关于在Linux环境下通过PXE实现高效批量网络安装操作系统并自动挂载存储的问题。首先,我需要回忆PXE的基本原理和相关组件,确保自己理解正确。 根据用户提供的引用,PXE服务器需要集成DHCP、TFTP、HTTP/FTP等服务。用户提到自动挂载存储,这可能涉及到Kickstart配置中的存储设置或者安装后的自动挂载脚本。我需要检查引用中提到的内容,比如引用[4]提到ks.cfg应答文件可以自动安装系统,无需干预,这可能与存储配置有关。 接下来,我应该分步骤说明如何搭建PXE服务器,配置必要的服务,然后结合Kickstart实现自动化安装。同时,要确保在Kickstart配置文件中添加存储挂载的指令,比如分区和挂载点。此外,可能需要在安装后脚本中设置自动挂载,比如修改/etc/fstab。 需要注意用户要求自动挂载存储,这可能包括本地磁盘分区或网络存储(如NFS、iSCSI)。在Kickstart配置中,需要明确分区方案,并在%post部分添加挂载命令或配置fstab。引用[5]中复制内核文件到TFTP根目录的步骤也需要提及,确保PXE引导文件正确部署。 最后,生成相关问题时要围绕PXE配置、Kickstart优化、存储挂载方法等方面,帮助用户进一步了解相关主题。</think>### 如何通过Linux PXE实现高效批量网络安装并自动挂载存储? #### 一、PXE批量网络安装核心步骤 1. **搭建PXE服务器环境** - **安装必要服务**:需部署DHCP、TFTP、HTTP/FTP服务,其中DHCP用于分配IP并引导客户端获取启动文件,TFTP提供引导程序(如`pxelinux.0`)和内核文件,HTTP/FTP存储操作系统镜像[^2][^3]。 - **配置DHCP**:在`/etc/dhcp/dhcpd.conf`中添加以下配置: ```plaintext subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.200; option routers 192.168.1.1; filename "pxelinux.0"; # 引导文件路径 next-server 192.168.1.10; # TFTP服务器IP } ``` - **部署TFTP服务**:将引导文件(如`pxelinux.0`、`vmlinuz`内核和`initrd.img`初始RAM磁盘)复制到`/var/lib/tftpboot/`目录[^5]。 2. **配置Kickstart无人值守安装** - **生成`ks.cfg`文件**:使用`system-config-kickstart`工具或手动编写应答文件,定义分区、软件包、用户设置等。示例片段: ```plaintext # 分区与存储配置(自动挂载) clearpart --all --initlabel part / --fstype="xfs" --size=20480 part /data --fstype="xfs" --size=10240 # 自定义挂载点 ``` - **关联Kickstart与PXE**:在`/var/lib/tftpboot/pxelinux.cfg/default`菜单中追加: ```plaintext label auto kernel vmlinuz append initrd=initrd.img ks=http://192.168.1.10/ks.cfg ``` 3. **实现存储自动挂载** - **在Kickstart中定义分区**:通过`part`指令划分存储设备并指定挂载点(如上述示例)。 - **配置`/etc/fstab`(可选)**:在`%post`脚本中添加命令,实现开机自动挂载网络存储(如NFS): ```bash echo "192.168.1.20:/nfs_share /mnt/nfs nfs defaults 0 0" >> /etc/fstab ``` #### 二、验证与部署 1. **启动PXE客户端**:目标设备设置为PXE启动后,会自动获取IP并加载安装菜单。 2. **观察自动化流程**:系统将按`ks.cfg`完成安装,存储分区和挂载点会自动生效[^4]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值