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.如果没有zerombrclearpart --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处于关闭状态。
确认无误的话就可以开机进行测试了。

猜你喜欢

转载自www.cnblogs.com/huangdandan/p/11894794.html