PXE自动安装Linux系统

偶尔善良 提交于 2019-12-04 01:29:59

什么是PXE

  • PXE,全名 Pre-boot Execution Environment,预启动执行环境;
  • 通过网络接口启动计算机,不依赖本地存储设备(如硬盘)或本地已安装的操作系统;
  • 由 Intel 和 Systemsoft 公司于 1999 年 9 月 20 日公布的技术;
  • Client/Server 的工作模式;
  • PXE 客户端会调用网际协议 (IP)、用户数据报协议(UDP)、动态主机设定协议(DHCP)、小型文件传输协议(TFTP) 等网络协议;
  • PXE 客户端 (client) 这个术语是指机器在 PXE 启动过程中的角色。一个 PXE 客户端可以是一台服务器、笔记本电脑或者其他装有 PXE 启动代码的机器(我们电脑的网卡)。

原理

(1) 客户端PXE网卡启动

(2) 从DHCP服务器获得IP

(3) 从TFTP服务器上下载pxelinux.0、default

(4) 根据配置文件default指定的vmlinuz、initrd.img启动系统内核,并下载指定的ks.cfg文件

(5) 跟据ks.cfg去(HTTP/FTP/NFS)服务器下载RPM包并安装系统

(6)完成安装

步骤

1、安装vsftpd服务

# yum install vsftpd

# rpm -ql vsftpd

# systemctl restart vsftpd.service

# chkconfig vsftpd on

# chkconfig --list | grep vsftpd(检测服务是否运行成功)

# mkdir /mnt/cdrom

# mount /dev/cdrom /mnt/cdrom

# cp -r /mnt/cdrom/. /var/ftp/    (把光盘上所有文件拷贝到ftp的根目录)

# du -sh /var/ftp

2、安装dhcp服务并配置

# yum install dhcp

# rpm -ql dhcp

# vim /etc/dhcp/dhcpd.conf

该配置文件内容为空,在底行模式下读取样例文件 

:r /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample

然后修改后内容如下:

option domain-name "itecs.cn";
option domain-name-servers 222.222.222.222, 114.114.114.114;

default-lease-time 600;
max-lease-time 7200;

log-facility local7;

subnet 192.168.80.0 netmask 255.255.255.0 {
  range dynamic-bootp 192.168.80.101 192.168.80.200;
  option subnet-mask 255.255.255.0;
  option routers 192.168.80.254;
}

# service dhcpd

# service dhcpd configtest

# systemctl restart vsftpd.service

# chkconfig dhcpd on

3、安装tftp-server

安装tftp-server ,(yum  -y  install tftp-server)并修改配置文件/etc/xinetd.d/tftp

# default: off
# description: The tftp server serves files using the trivial file transfer \
#    protocol.  The tftp protocol is often used to boot diskless \
#    workstations, download configuration files to network-aware printers, \
#    and to start the installation process for some operating systems.
service tftp
{
    socket_type     = dgram
    protocol        = udp
    wait            = yes
    user            = root
    server          = /usr/sbin/in.tftpd
    server_args     = -s /var/lib/tftpboot   #指定tftp-server的根目录,参数-s指定chroot,-c指定了可以创建文件
    disable         = no                     #disable设为no表示启用该服务
    per_source      = 11                     #每一个来源最多可以建立11个连接
    cps             = 100 2                  #每秒连接数,达到100个就等待2秒
    flags           = IPv4
}

4、启动xinetd服务,(service  xinetd start),准备Linux内核、初始化镜像文件。(内核vmliunz,镜像文件initrd.img) 

5、准备pxe引导程序,安装syslinux ,yum  -y  install syslinux

6、安装并启用DHCP服务(yum  -y  install  dhcp),配置主配置文件/etc/dhcp/dhcp.conf

option domain-name "itecs.cn";
option domain-name-servers 222.222.222.222, 114.114.114.114;

default-lease-time 600;
max-lease-time 7200;

log-facility local7;

subnet 192.168.80.0 netmask 255.255.255.0 {
  range dynamic-bootp 192.168.80.101 192.168.80.200;
  option subnet-mask 255.255.255.0;
  option routers 192.168.80.254;
  next-server 192.168.80.100;
  filename  "pxelinux.0";
}

7、配置kickstart安装文件

可以使用某台CentOS 7的/root/anaconda-ks.cfg作为模板手动修改,也可以使用system-config-kickstart命令配置ks.cfg文件:

在某台CentOS 7系统上安装所需包:

# yum -y install system-config-kickstart

在某台CentOS 7系统上运行图形界面进行设置:

# system-config-kickstart

载入/root/anaconda-ks.cfg作为模板:文件->打开文件,选择/root/anaconda-ks.cfg,在此界面上进行配置并保存后,放到服务端/tftpboot/ks.cfg。

8、进一步配置PXE远程安装服务器,使其能够实现kickstart无人值守安装。(需提前准备启动菜单文件)

1)安装应答文件,(yum  -y  install  system-config-kickstart)并打开

2)  启用自动应答文件

实验过程中遇到的问题

1、CentOS - Yum安装软件时被PackageKit锁定

 PackageKit是一个离线更新服务,基本没啥用途,应该永久禁用。修改/etc/yum/pluginconf.d/langpacks.conf,将enabled=1改为enabled=0

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!