admin 管理员组

文章数量: 887016

**

在Centos上通过PXE网络安装Windows和centos

此文较长, 请细心看完, 一定可以成功!!

实验环境:

主机: CentOS 7.6x64 虚拟机
centos7下载链接

准备工作:

  1. 关闭防火墙

  2. DHCP 服务器

  3. TFTP 服务器

  4. FTP/NFS/HTTP 服务器(这里我以 FTP 服务器为例)

关闭防火墙

systemctl stop firewalld.service          #停止firewallDHCP
systemctl disable firewalld.service       #禁止firewall开机启动

DHCP 服务器搭建

yum -y install dhcp           #yum源安装DHCP服务器
vi /etc/dhcp/dhcpd.conf       #配置DHCP服务器文件

将下面文件复制到DHCP配置文件中


subnet 192.168.0.0 netmask 255.255.255.0 {           //dhcp服务器网段和子网掩码
range dynamic-bootp 192.168.0.200 192.168.0.250;     //动态分配的ip范围
option broadcast-address 192.168.0.255;              //广播地址
option routers 192.168.0.1;                          //路由
option subnet-mask 255.255.255.0;                    //子网掩码
next-server 192.168.0.111;                           //tftp服务器地址
filename "pxelinux.0";                               //bootloader文件名
}

service dhcpd restart

重启DHCP服务,如出现JOB等报错请查看配置文件是否设置正确。

TFTP 服务器搭建
TFTP 用来传送一些琐碎的小文件, 或网络设备配置文件以及远程启动文件, 监听 udp:69 端口

在这个安装过程中用于提供客户启动需要的 pxelinux.0 vmlinuz initrd.img 文件

yum -y install xinetd          #xinetd的安装
yum -y install tftp tftp-server              #Tftp服务安装

下面进行进行xinetd服务配置:将disable 的 Yes 改成 no 如图

vi /etc/xinetd.d/tftp                     

service xinetd restart          #重启  xinetd 服务 
netstat -antup | grep 69        #查询69端口是否被监听

此时我们的tftp服务算是搭建完成了为了验证我们的服务是否成功 请在浏览器上输入 :ftp://服务器ip地址 如图

搭建到此步骤我们的PXE环境基本算是完成了,下面我们分几个步来完成各各系统的搭建

  1. Centos7 搭建
  2. Windows7 搭建
  3. WindowsPE搭建

1.Centos7搭建
首先创建Centos7镜像目录

mkdir -p /var/ftp/pub/centos7

将Centos7镜像挂载到目录

mount /dev/sr0 /var/ftp/pub/centos7

ks.cfg 文件的生成

yum -y install pykickstart    #kickstart安装

system-config-kickstart (需要图形界面来打开程序)如果安装操作系统时候安装的是最小系统没关系运行下面命令来安装图形化(过程比较久…稍等片刻)

yum groupinstall "GNOME Desktop" "Graphical Administration Tools #图形化安装
systemctl set-default graphical.target    #设置图形化启动

设置语言,root密码等信息,设置完成后重启和在文本模式下安装

设置安装方法,镜像位置

分区参考:
/boot 分区 文件系统类型:ext4 使用硬盘空间大小:200MB
/swap 分区 使用硬盘空间大小::10240MB(内存小于 8G 的需设置成内存的两倍,16G以后的内存最好保持物理内存的8G或者相同物理内存的大小,这里实验虚拟机只有1G内存,所以swap分区2048)
/ 根分区 文件系统类型:ext4 使用硬盘空间大小: 剩下所有硬盘空间


设置完成后保存到 /var/ftp/目录下

yum -y install syslinux       #安装syslinux工具
cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot     #将Pxelinux.0文件拷贝到tftpboot文件夹
cp /var/ftp/pub/centos/images/pxeboot/{initrd.img,vmlinuz}    #拷贝vmlinuz内核文件以及initrd.img镜像文件
cp /var/ftp/pub/centos/isolinux/{vesamenu.c32,splash.png}  /var/lib/tftpboot     #拷贝安装菜单依赖文件
mkdir /var/lib/tftpboot/pxelinux.cfg    #创建pxelinux.cfg目录
cd /var/lib/tftpboot/pxelinux.cfg  #进入pxelinux.cfg目录
vi default                #编辑default

将下面配置文件写入default

default menu.c32
prompt 0
timeout 300
ONTIMEOUT local

menu title ########## PXE Boot Menu #########


label 1
menu label ^1) Install CentOS 7 x64
kernel vmlinuz
append initrd=initrd.img ks=ftp://设置自己的IP/ks.cfg devfs=nomount

到此,准备工作结束,将所有服务重启,开始调试,
新建虚拟机->开机->安装
Tips:新建虚拟机内存必须2G以上,否则无法安装!

service dhcpd restart

service vstftpd restart

service xinetd restart

2window7安装
首先我们要先在引导配置文件中加入Windows7

cd /var/lib/tftpboot/pxelinux.cfg  #进入pxelinux.cfg目录
vi default                #编辑default

将下面配置加在default配置文件下面

label 2
menu label ^2) Install Windows 7 x64
KERNEL memdisk
INITRD winpe_amd64.iso
APPEND iso raw

安装并配置samba(相关的文档很多,这里不过多介绍)
smb是windows共享默认协议,samba用来将win7的系统镜像共享给被安装的服务器。

rpm -qa | grep samba            #查看系统是否已安装samba
yum -y install samba            #使用yum安装samba

修改配置文件

vim /etc/samba/smb.conf
[global]
workgroup = PXESERVER
server string = Samba Server Version %v
log file = /var/log/samba/log.%m
max log size = 50
idmap config * : backend = tdb
cups options = raw
netbios name = pxe
map to guest = bad user
dns proxy = no
public = yes
## For multiple installations the same time - not lock kernel
kernel oplocks = no
nt acl support = no
security = user
guest account = nobody
[install]
comment = Windows 7 Image
path = /windows
read only = no
browseable = yes
public = yes
printable = no
guest ok = yes
oplocks = no
level2 oplocks = no
locking = no

根据配置文件 /windows ,创建共享目录

mkdir /windows

验证配置文件并启动服务

testparm
systemctl start smb

在windows服务器上查看(IP地址为centos服务器地址)

Windows7 下载

将下载的Windows7解压出来,全部复制到install共享文件夹中。
.制作winpe镜像

1).下载windows自动安装工具包 ISO映像文件

windows自动安装工具包AIK

2).安装该工具包需要2.0

控制面板——程序——启用或关闭windows功能——勾选.NET Framework3.5(包含3.0和2.0)——确定

装载 KB3AIK_EN.iso 映像文件,运行StartCD.exe,点击图中选项,之后完成安装

开始——邮件点击AIK命令提示符,以管理员身份运行,并制作winpe_amd64.iso镜像

下面是制作命令,需要根据AIK安装目录修改命令中的路径,pe镜像路径可以自行定义

Windows 7 32位

copype x86 C:\winPE_x86
copy "C:\Program Files\Windows AIK\Tools\PETools\x86\winpe.wim" C:\winpe_x86\ISO\Sources\Boot.wim
copy "C:\Program Files\Windows AIK\Tools\x86\Imagex.exe" C:\winpe_x86\ISO\
oscdimg -n -bC:\winpe_x86\etfsboot C:\winpe_x86\ISO C:\winpe_x86\winpe_x86.iso

Windows7 64位

copype amd64 C:\winPE_amd64
copy "C:\Program Files\Windows AIK\Tools\PETools\amd64\winpe.wim" C:\winpe_amd64\ISO\Sources\Boot.wim
copy "C:\Program Files\Windows AIK\Tools\amd64\Imagex.exe" C:\winpe_amd64\ISO\
oscdimg -n -bC:\winpe_amd64\etfsboot C:\winpe_amd64\ISO C:\winpe_amd64\winpe_amd64.iso

制作完成的winpe镜像文件,我们可以直接挂在到虚拟机光盘驱动来测试下,镜像是否正常,在我们查找问题时非常有用

最后将 C:\Win8PE_amd64\Win8PE_amd64.iso 镜像文件复制到pxe服务器上,放置路径根据之前我们配置的 /var/lib/tftpboot/pxelinux.cfg/default 文件,放置到 /var/lib/tftpboot/ 下

[root@zabbix tftpboot]# ls
memdisk  menu.c32  pxelinux.0  pxelinux.cfg  winpe_amd64.iso

.开始安装

1).启动需要安装系统的电脑,delete进入bios设置,打开pxe网络引导,并设置优先启动顺序,F10保存并重启

2).系统重启后进入网络引导,向局域网发送获取广播,寻找dhcp服务器,并获取分配的ip,跳转到tftp服务器,开始pxe引导

3).之后一直到安装界面,选择 “Install Windows 7 x64”,加载内核及winpe镜像

4).进入winpe命令行,挂载smb共享,并开始安装windows7系统


相关的命令

net use z: \\192.168.22.100\install     # 挂载smb共享到z盘
z:                                     # 切换到z盘目录
setup.exe                              # 运行安装程序

5).最后进入安装

3 Windows PE 搭建
PE搭建和上述Windows 7 搭建相似

首先我们要下载 PE 镜像

WindowsPE下载链接

下载完成后进入centos

把Windows pe 放置到 /var/lib/tftpboot/ 下

然后进入 pxelinux.cfg 文件夹 编辑default文件
在下面添加代码

label 3
menu label ^3) Install Windows 10 PE
KERNEL memdisk
INITRD Win10PE.iso
APPEND iso raw         

保存退出 并开始测试

以上为完整版教程 如有问题 请咨询 球球 854012410

                                                                  谢谢   2019.12.19

本文标签: 操作系统 系统 PXE Windows centos