1.安裝配置dhcp服務
yum install dhcp -y
vim /etc/dhcp/dhcpd.conf
#新增一個子網資訊
subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.10 10.0.0.100;
option domain-name-servers 223.5.5.5;
option routers 10.0.0.2;
option broadcast-address 10.0.0.255;
default-lease-time 600;
max-lease-time 7200;
next-server 10.0.0.4;
filename "pxelinux.0";
}
/etc/init.d/dhcpd start
systemctl enable dhcpd
netstat -lntup |grep 67
特殊參數next-server 和 filename說明
filename:網絡引導程式檔案名稱
next-server: tftp服務所在IP位址
2.安裝配置tftp服務
yum install tftp-server -y
vim /etc/xinetd.d/tftp
#主要修改disable,改為no
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
service tftp-server start
systemctl enable tftp-server
netstat -lntup |grep 69
**server_args : /var/lib/tftpboot **該路徑為PXE網絡引導啟動的根路徑
3.安裝配置http服務以及挂載ISO至HTTP站點目錄
yum install httpd -y
systemctl start httpd
systemctl enable httpd
#上傳ISO至根目錄
[[email protected] ~]# mkdir -p /var/www/html/pub
[[email protected] ~]# mount /root/CentOS-7-x86_64-DVD-1804.iso /var/www/html/pub/
mount: /dev/loop0 is write-protected, mounting read-only
[[email protected] ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/rhel-root xfs 36G 7.4G 29G 21% /
devtmpfs devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs tmpfs 2.0G 80K 2.0G 1% /dev/shm
tmpfs tmpfs 2.0G 8.9M 2.0G 1% /run
tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/sda1 xfs 497M 107M 391M 22% /boot
/dev/loop0 iso9660 4.2G 4.2G 0 100% /var/www/html/pub
4.安裝syslinux并且複制所有相關啟動檔案到網絡引導啟動的根路徑下
yum install syslinux -y
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp -a /var/www/html/pub/isolinux/* /var/lib/tftpboot/
5.建立配置Kickstart自動應答檔案
5.1參考其他系統的ks.cfg檔案,再加已修改使用
紅帽系的系統可以參考根路徑下的ks檔案,這個檔案是安裝完系統後,自動生成的記錄檔案,預設在/root/目錄下
#建立Kickstart應答檔案存放目錄:
mkdir -p /var/www/html/ks
[[email protected] ~]# cat /root/anaconda-ks.cfg
#platform=86, AMD64, or Intel EM64T
#version=DEVEL
# System authorization information
auth --useshadow --passalgo=sha512
# Install OS instead of upgrade
install
# Use network installation
url --url="http://10.0.0.4/pub"
# Use graphical install
graphical
# Firewall configuration
firewall --disabled
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda
# Keyboard layouts
# old format: keyboard us
# new format:
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=None --activate
network --hostname=localhost.localdomain
# Reboot after installation
reboot
# Root password
rootpw --iscrypted $1$Bj2DiIyk$NoDoZmT1i2fLwrQrL/VGE0
# SELinux configuration
selinux --disabled
# System services
services --enabled="chronyd"
# System timezone
timezone Asia/Shanghai
# System bootloader configuration
bootloader --location=mbr --boot-drive=sda
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --asprimary --fstype="xfs" --ondisk=sda --size=512
part pv.92 --asprimary --fstype="lvmpv" --ondisk=sda --size=60927
volgroup vg0 --pesize=4096 pv.92
logvol swap --fstype="swap" --size=1024 --name=swap --vgname=vg0
logvol / --fstype="xfs" --grow --size=1024 --name=root --vgname=vg0
%packages
@^minimal
@core
chrony
%end
%addon com_redhat_kdump --disable --reserve-mb='auto'
%end
%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end
該reference檔案是CentOS7.5 minial機器下生成的,個人感覺磁盤分區那一塊還不夠完善,若要使用還需要修改
#磁盤邏輯卷分區reference參考如下:
clearpart --all --initlabel
part /boot --fstype=xfs --ondisk=sda --size=512 --asprimary
part pv.1 --grow --fstype=lvmpv --ondisk=sda --size=1 --asprimary
volgroup vg0 --pesize=4096 pv.1
logvol / --fstype=xfs --grow --name=root --size=1024 --vgname=vg0
logvol swap --fstype="swap" --name=swap --size=1024 --vgname=vg0
ondisk : 強制在特定磁盤上建立分區
asprimary : 強制将分區自動配置設定為主分區,否則分區失敗
grow : 告訴邏輯卷增長以填充可用空間,如果沒有maxsize最大值限制,可自動增長至最大
5.2利用CentOS提供的一個圖形化配置工具system-config-kickstart生成
啟動工具指令:
system-config-kickstart

Perform installation in text mode(graphical is default) : 預設不勾選安裝的是graphical圖形界面
Pre-installation script表示安裝前的腳本設定,可用參數很少,一般不使用
Post-installation Script 表示安裝後的腳本設定,可用于安裝完成後的系統初始化設定
因為用kickstart圖形化配置工具會有個别細節參數沒有涉及到,類似分區等等,是以我這裡采用的是第三種方式參考官方文檔配置
5.3參考Kickstart官方文檔手動配置
Kickstart官方文檔連結
最小化安裝
[[email protected] ~]# cat /var/www/html/ks/ks.cfg
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'# Reboot after installation
reboot
# Root password
rootpw --iscrypted $1$Bj2DiIyk$NoDoZmT1i2fLwrQrL/VGE0
# System timezone
timezone Asia/Shanghai
# Use network installation
url --url="http://10.0.0.4/pub"
# System language
lang en_US
# Firewall configuration
firewall --disabled
# Network information
network --bootproto=dhcp --device=None
# System authorization information
auth --useshadow --passalgo=sha512
# Use graphical install
graphical
firstboot --enable
# SELinux configuration
selinux --disabled
# System bootloader configuration
bootloader --location=mbr --boot-drive=sda
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
#part /boot --fstype="xfs" --size=300
#part / --fstype="xfs" --size=20480
#part swap --fstype="swap" --size=2048
part /boot --fstype=xfs --ondisk=sda --size=512 --asprimary
part pv.1 --grow --fstype=lvmpv --ondisk=sda --size=1 --asprimary
volgroup vg0 --pesize=4096 pv.1
logvol / --fstype=xfs --grow --name=root --size=1024 --vgname=vg0
logvol swap --fstype="swap" --name=swap --size=1024 --vgname=vg0
%packages
@^minimal
@core
%end
%addon com_redhat_kdump --disable --reserve-mb='auto'
%end
%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end
6.配置引導啟動菜單
[[email protected] ~]# mkdir -p /var/www/html/ks
[[email protected] ~]# mkdir -p /var/lib/tftpboot/pxelinux.cfg
[[email protected] ~]# cp /var/www/html/pub/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
[[email protected] ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
##下面配置檔案選擇其中一種模式編寫##
####################簡化版#########################
default linux
prompt 0
label linux
kernel vmlinuz
append initrd=initrd.img ks=http://10.0.0.4/ks/ks.cfg
################支援多選擇版#########################
xxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxx
#直接模仿label修改增加一個新label即可,注意kernel和initrd引導檔案相對于根路徑的路徑問題
label linux
menu label ^Install CentOS 7
kernel vmlinuz
append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet
xxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxx
注意:拷貝後的啟動引導菜單名稱需為default,否則網絡引導安裝系統時識别不到該菜單
特殊參數說明
- timeout : 逾時時間
- menu default : 預設菜單
- kernel : 系統核心
- initrd : 核心啟動時候解開該檔案作為根檔案系統使用
- ks : Kickstart自動應答檔案路徑
7.安裝測試
安裝過程中…
注意:如果是用虛拟機做實驗,記憶體設定必須大于2GB,否則會報/dev/root/ does not found 的錯誤
登入系統參考上文給定的分區reference方案檢視系統安裝後的分區卷組邏輯卷情況
part /boot --fstype=xfs --ondisk=sda --size=512 --asprimary
part pv.1 --grow --fstype=lvmpv --ondisk=sda --size=1 --asprimary
volgroup vg0 --pesize=4096 pv.1
logvol / --fstype=xfs --grow --name=root --size=1024 --vgname=vg0
logvol swap --fstype="swap" --name=swap --size=1024 --vgname=vg0