PXE自动安装Linux 系统
PXE自动安装Linux 系统
1.PXE简介
当需要安装的操作系统比较多时,手动安装是不现实的,这个时候就要借助PXE了。
PXE全称是:Preboot Excution Environment 预启动执行环境是由Intel公司研发的基于Client/Server的网络模式,支持远程主机通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统 PXE可以引导和安装Windows,linux等多种操作系统。
2. 实验步骤
(1) 环境准备
两台虚拟机,其中一台作为服务器使用。(基本所有配置操作都是在服务器上客户端机器不需要配置。)还需要至少一个安装源(系统安装镜像文件)
1.将两台虚拟机网卡配置为仅主机模式(主要是和外网隔离,以面影响实体机的DHCP服务)
2.关闭VMware的DHCP服务
在VMware主界面点击“编辑→虚拟网络编辑器”
在打开的界面中选中仅主机类型的连接并勾掉下面的使用本地DHCP服务(如果勾选框灰色,点击更改设置给他管理员权限)如图:
3. 更改配置文件如下:
TYPE=Etherner
BOOTPROTO=static #将dhcp改为static
IPADDR=192.168.117.10 #分配一个ip地址要与vmnet1在同一个网段
PREFIX=255.255255.0 #子网掩码
GATEWAY=192.168.117.1 #网关
NAME=ens33
DEVICE=ens3 3
ONBOOT=yes #改为yes
4. 编辑Windows下的虚拟网卡配置以便和虚拟机可以通信,打开控制面板→网络和共享中心→更改适配器设置,通常仅主机的连接名称为VMnet1,ipv4
Ip地址:192.168..117.11
子网掩码:255.255.255.0
5. 检查服务器相关设置
确保SELinux和防火墙处于关闭状态。
将/etc/selinux/config文件中的SELINUX=xxx改为SELINUX=disabled并重启。
可以通过命令getenforce查看,如果是disabled或permissive即为关闭状态
执行以下两条命令确保关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
6.安装软件(需要的)
yum install httpd dhcp syslinux tftp-server
systemctl start httpd tftp.socket
systemctl enable dhcpd tftp.socket httpd
7. 准备安装源
mkdir -p /var/www/html/Centos/7 #创建文件夹
mount /var/www/html/Centos/7 #光盘挂载到目录下
/etc/sr0 /var/www/html/Centos/7 iso9660 default 0 0 #添加自动挂载信息
df -h #确认挂载信息
在主机使用浏览器访问http://192.168.11.2/Centos/7 确认可以看到挂载的安装文件
8. 准备自动应答文件
修改anaconda-ks.cfg文件
#platform=86, AMD64, or Intel EM64T
#version=DEVEL
# System authorization information
auth --useshadow --passalgo=sha512
# Install OS instead of upgrade#选择升级还是安装,install是安装,upgrade是升级
install
# Use CDROM installation media#安装介质,这里是需要修改的地方
cdrom
# Use text mode install#使用图形安装还是文字界面,通常自动安装我们不需要图形
text
# Firewall configuration#防火墙选项,通常选择关闭
firewall --disabled
firstboot --disable
ignoredisk --only-use=sda
# Keyboard layouts
# old format: keyboard us
# new format:
keyboard --vckeymap=us --xlayouts=''
# System language
lang en_US.UTF-8
# Network information#安装后网络配置信息,可以将onboot改为on,也可以顺便指定一个hostname
network --bootproto=dhcp --device=ens33 --onboot=off --ipv6=auto --no-activate
network --hostname=localhost.localdomain
# Reboot after installation#安装之后重启
reboot
# Root password# root账号密码,此处的密码是加密后的密码
rootpw --iscrypted $1$HwDDpzbI$JcacPj2.QTbRQgNWUP8hr1
# SELinux configuration#SELinux选项
selinux --disabled
# System services
services --enabled="chronyd"
# Do not configure the X Window System
skipx
# System timezone# 时区
timezone Asia/Shanghai
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
#Clear the Master Boot Record
#zerombr #清除MBR
# Partition clearing information
#clearpart --all --initlabel # 清空磁盘
# Disk partitioning information
#以下三行是分区信息,注意根据自己的情况进行修改。size单位是MB
#part swap --fstype="swap" --size=2048
#part / --fstype="xfs" --size=20480
#part /boot --fstype="xfs" --size=1024
#要安装的包@开头的是包组,没有@的是单独的包
%packages
@core
zsh
%end
%addon com_redhat_kdump --enable --reserve-mb='auto'
%end
1.安装介质即把cdrom改为以下内容url --url="http://192.168.117.10/centos/7/"
2.防火墙和SELinux根据自己的需要选择开启或关闭
3.如果没有zerombr和clearpart --all --initlabel,手动添加如果前面有#,去掉
4.去掉分区信息前的#
5.根据自己的需要选择需要安装的包,最小化只有一个core即可
6.将文件保存之后放到可以被HTTP访问到的地方,如/var/www/html/,确保文件权限为644
7.在主机访问http://192.168.117.10/anaconda-ks.cfg 如果可以成功访问,说明成功。
9. 配置DHCP服务器
默认情况下DHCP服务在安装完成之后配置文件是空的,也因此DHCP服务必须进行一定的配置才可以启动,DHCP的服务配置文是:/etc/dhcp/dhcpd.conf,
# 指定从DHCP服务器获取的DNS地址
option domain-name-servers 114.114.114.114
# 默认IP地址的租期
default-lease-time 600;
# 最长租期
max-lease-time 7200;
# subnet用来指定网段,netmask是掩码
subnet 192.168.117.0 netmask 255.255.255.0
{
# 使用range指定IP地址池
range 192.168.117.100 192.168.117.200
}
filename "pxelinux.0";
range 192.168.11.3 192.168.11.124;
}
接下来使用systemctl start dhcpd启动dhcp服务,使用ss -unl查看67端口是会否已经开启
10. 将相关文件复制到TFTP共享目录
11. 修改default文件
#就是刚才复制到菜单文件
default menu.c32
#超时时间,就是菜单倒计时
timeout 600
display boot.msg
# 启动菜单的具体配置
# menu label 用来指定菜单名称,可以自定义,^符号用来确定光标位置,
# 同时其后的字母也是调到对应菜单的快捷键
# kernel指定内核文件路径,由于我们放在了文件夹中所以路径是7/vmlinuz
# 指定initrd的路径,以及ks应答文件文件的路径
# 务必确保应答文件可以访问
label linux
menu label ^Install CentOS 7
kernel 7/vmlinuz
append initrd=7/initrd.img ks=http://192.168.11.2/anaconda-ks.cfg
# 本地硬盘启动
# menu default表示此项菜单为默认菜单,由于自动安装的风险,建议将本地启动作为默认启动
label local
menu default
menu label Boot from ^local drive
localboot 0xffff
menu end
12. 启动测试
将另一台虚拟机网卡同样配置为仅主机,网卡使用自动获取IP。
最后,确认安装源,以及应答文件可以访问,且default文件中路径配置正确。
确认防火墙以及SELinux处于关闭状态。
确认无误的话就可以开机进行测试了。