# 利用PXE引導安裝centos7 #
###簡介###
> PXE (Pre-boot Execution Environment,PXE client 在網卡的 ROM 中,當計算機引導時,BIOS 把 PXE client 調入內存執行,由 PXE client 將放置在遠端的文件經過網絡下載到本地運行。運行 PXE 協議須要設置 DHCP 服務器和 TFTP 服務器。
> DHCP設定分配的IP地址和須要請求的filename,PXE客戶端啓動,從DHCP服務器獲取IP和要下載的文件名"pxelinux.0",而後從TFTP服務器請求加載"pxelinux.0"和默認的配置文件"pxelinux.cfg/default"。
> 客戶端再根據"pxelinux.cfg/default"裏面的引導配置從TFTP服務器下載對應linux內核"vmlinuz"和ramdisk的映像文件"initrd.img"(initialized ram disk-【ramdisk是用一部份內存模擬成磁盤】)。而且指定linux-repo鏡像的路徑和kickstart文件路徑。
> 客戶端再加載centos7-repo鏡像,根據kickstart配置ks.cfg文件的預約義設置安裝linux,實現全自動無人值守。
### 安裝設置流程 ###
一、下載tinyPXEserver, http://erwan.labalec.fr/tinypxeserver/pxesrv.zip
> tinyPXEserver的TFTP默認路徑根位置爲 C:\pxesrv\file\
二、複製centos7鏡像中isolinux/*全部文件到 C:\pxesrv\file\centos7ks\
三、解壓centos7整個鏡像到 C:\pxesrv\files\centos7image\
四、生產kickstart配置文件
```
[root@localhost ~]# yum -y install system-config-kickstart
[root@localhost ~]# system-config-kickstart **圖形界面設定**
[root@localhost ~]# ksvalidator ks.cfg **檢查語法錯誤**
```
ks.cfg配置範例
```
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $6$lZCgRcTkckxJO5f7$Haf4hJ5luwvP18X6FRgR/oiGQw5/xdtUELPYVG4UWKtKBhr6/Xhq9Xz07CcAIUJ59d7gQRgtlyEtBMe/Y58Wm0
# Use network installation
url --url="http://10.10.33.33/centos7image"
# System language
lang en_US
# Firewall configuration
firewall --disabled
# System authorization information
auth --useshadow --passalgo=sha512
# Use graphical install
graphical
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx
# Network information
network --bootproto=static --device=eno16777736 --gateway=10.10.3.1 --ip=10.10.3.88 --nameserver=114.114.114.114 --netmask=255.255.255.0
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai
# adduser huangjunfa
user --groups=wheel --name=huangjunfa --password=$6$32.WTXgxXYZsaicF$iQmGWjI1bhXgPcAMCT/5vIgUSHQ7KVt2YAgJa2zXVSimgmKfRndClq4ftLkweE6WZ83lZvdNUrlljiuwe2oaG/ --iscrypted --gecos="huangjunfa"
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="xfs" --size=300
part swap --fstype="swap" --recommended
part / --fstype="xfs" --grow --size=1
%packages
@^minimal
@core
kexec-tools
%end
%addon com_redhat_kdump --enable --reserve-mb='auto'
%end
```
四、複製pxelinux.0 menu.c32 memdisk mboot.c32 chain.c32 文件到 C:\pxesrv\files\
來源於
```
[root@localhost etc]# yum -y install syslinux
SFTP>get /usr/share/syslinux/pxelinux.0
```
五、編輯 C:\pxesrv\files\pxelinux.cfg\default # default文件,必須爲這個名稱
加入下面代碼
```
label linux
menu label ^Install CentOS7ks
kernel centos7ks/vmlinuz
append initrd=centos7ks/initrd.img repo=http://10.10.33.33/centos7image ks=http://10.10.33.33/centos7ks/ks.cfg
```
### end ###linux