【系统安装】PXELINUX(网络安装引导启动)

网络拓扑图

【系统安装】PXELINUX(网络安装引导启动)_第1张图片

服务器配置(安装介质)

安装TFTP服务器

安装tftp

yum install tftp-server

/etc/xinet.d/tftp配置文件中

disabled = yes -> disabled = no
server_args = -s /var/lib/tftpboot #tftp的根目录

在防火墙中允许tftp服务的进入连接

firewall-cmd --add-service=tftp

BIOS客户端配置PXE服务器

  • 获得pxelinux.0文件

    从镜像源中Packages目录中拷贝syslinux-version-architecture.rpm

    通过以下命令获得文件内容

    mount -o loop,ro /mount/point/CentOS***.iso /path/to/mountpoint/
    cp /path/to/mountpoint/Packages/syslinux-version-architecture.rpm destdir/
    cd destdir/
    rpm2cpio syslinux-version-architecture.rpm | cpio -dimv
    cp destdir/usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/pxelinux #获得我们需要的pxelinux.0文件
  • 创建安装目录(即/pxelinux)

    pxelinux.0 vesamenu.c32 initrd.img vmlinuz拷贝到/pxelinux的根目录下

    mkdir /var/lib/tftpboot/pxelinux/
    cp /path/to/mountpoint/{vesamenu.c32,initrd.img,vmlinuz} /var/lib/tftpboot/pxelinux/ #拷贝启动引导所需的文件

    /pxelinux目录下创建/pxelinux.cfg目录

    /pxelinux.cfg目录下创建default(isolinux.cfg)文件,目录结构如下

    +-- pxelinux
    | +-- initrd.img
    | +-- vesamenu.c32
    | +-- pxelinux.cfg
    | | +-- default
    | +-- vmlinuz
    | +-- pxelinux.0

安装DHCP服务器

安装dhcp

yum install dhcp dhcp-devel

/etc/dhcp/dhcpd.conf写入如下配置:

option space pxelinux;
option pxelinux.magic code 208 = string;
option pxelinux.configfile code 209 = text;
option pxelinux.pathprefix code 210 = text;
option pxelinux.reboottime code 211 = unsigned integer 32;
option architecture-type code 93 = unsigned integer 16;

subnet 10.0.0.0 netmask 255.255.255.0 {
  option routers 10.0.0.254;
  range 10.0.0.2 10.0.0.253;

  class "pxeclients" {
      match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
      next-server 10.0.0.1; #tftp address

      if option architecture-type = 00:07 {
        filename "uefi/shim.efi";
      } else {
        filename "pxelinux/pxelinux.0"; # tftp 目录下pxelinux的文件名
      }
  }
}

配置FTP服务器(安装源)

安装ftp服务器

yum install vsftpd

将ISO镜像中的Packages拷贝到/var/ftp/pub/目录下

mkdir /var/ftp/pub/centos/
mount -o loop,ro /path/to/image/CentOS*.iso mount-point/
cp -r mount-point/* /var/ftp/pub/centos/
cp mount-point/.treeinfo /var/ftp/pub/centos/

将kickstart脚本文件拷贝到/var/ftp/pub/目录下

cp /root/anaconda-ks.cfg /var/ftp/pub/kickstarts/ks.cfg

在pxelinux目录下的default文件中声明kickstart和repo库的位置

label linux_autoinst
    menu label Install CentOS 7 x86_64 auto # 安装选项
    menu default # 默认安装选项
    kernel vmlinuz
    append initrd=initrd.img inst.repo=ftp://10.0.0.1/pub/centos/ ks=ftp://10.0.0.1/pub/kickstarts/ks.cfg    

环境相关

启动服务

systemctl start tftp
systemctl start vsftpd
systemctl start dhcpd

使服务开机启动

systemctl enable xinetd 
systemctl enable vsftpd
systemctl enable dhcpd

关闭防火墙

systemctl disable firewalld # 关闭防火墙
setenforce 0 # 关闭selinux

环境要求

物理机

DHCP服务器与安装机需要在同一个交换机下

虚拟机

vmware保证两个虚机之间通过host-only网卡模式连接

virtualbox保证两个虚机之间通过桥接模式连接


错误处理

安装前

  • virtualbox

    需要手动修改启动引导选项

  • 重启dhcp服务失败

    options选项中有未使用的参数

    dhcp tftp服务器要在同一网段下

    分配的ip也要和dhcp在同一网段

  • 若tftp服务不稳定

    则使用yum -y install xinetd接管tftp服务

安装时

  • No space left on device

    虚拟机的内存设置过小导致

  • 安装包时出错

    记住出错的包名,可能package中有重复的包(但版本不一致)

    未解决package中的依赖关系

    
    #使用以下命令解决依赖关系
    
    rpm --initdb --dbpath /tmp/testdb
    rpm --test --dbpath /tmp/testdb -Uvh *.rpm

参考文档

kickstart详细配置

网络安装(pxelinux)

你可能感兴趣的:(操作系统)