基於PXE網絡完成無人值守安裝Linux系統

準備一臺已經安裝好系統的虛擬機,我用的是CentOS Linux release 7.5.1804 (Core)的系統,ip地址:
這裏我們給他兩塊網卡一塊僅主機模式,一塊橋接模式:
僅主機IP地址:172.16.75.2 橋接模式找到網卡設置,直接選ipv4裏的自動,然後應用就行,這樣虛擬機也能上網了;

接下來我們需要安裝一些必備的組件:

[root@2 ~]# yum -y install dhcp tftp-server tftp syslinux httpd //dhcp能夠幫助自動分配IP地址,指定引導文件位置;tftp提供引導文件下載的功能;syslinux提供像pxelinux.0,chain.c32,menu.c32等等的一些文件;httpd就不用說了吧,基於網絡安裝得嘛;

安裝完成之後進行設置:
[root@2 ~]# vim /etc/dhcp/dhcpd.conf
max-lease-time 7200; #最大租賃時間;
default-lease-time 3600; #默認租賃時間;
subnet 172.16.0.0 netmask 255.255.0.0 {
option routers 172.16.75.2; #選項路由,這裏我們指向本機即可;
option subnet-mask 255.255.0.0;
option domain-name-servers 172.16.75.2;
option domain-name "wzc.com";
range dynamic-bootp 172.16.100.100 172.16.100.150; #所要配置主機ip地址範圍;
next-server 172.16.75.2; #指定tftp服務器地址;
filename "pxelinux.0"; #通過那個文件來進行引導;
}
添加上面的內容後保存退出即可;

開啓服務:
[root@2 ~]# systemctl start dhcpd
[root@2 ~]# systemctl start tftp
[root@2 ~]# setenforce 0
[root@2 ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@2 ~]# systemctl stop firewalld
[root@2 ~]# iptables -F
[root@2 ~]# systemctl start httpd
記住要在你的客戶機C:\Windows\System32\drivers\hosts中保存本虛擬機的ip地址:172.16.75.2

繼續準備工作:
[root@2 ~]# cp /usr/share/syslinux/{pxelinux.0,chain.c32,menu.c32,memdisk,mboot.c32} /var/lib/tftpboot/

如果光盤已經掛載了,直接去複製相應的文件即可,如果沒掛載,我們就創建個目錄掛載一下光盤,再進行文件的複製即可:
[root@2 ~]# mkdir /mnt/cdrom
[root@2 ~]# mount -r /dev/sr0 /mnt/cdrom
[root@2 ~]# cp /mnt/cdrom/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/

[root@2 ~]# cd /var/lib/tftpboot/
[root@2 tftpboot]# mkdir pxelinux.cfg
[root@2 tftpboot]# vim pxelinux.cfg/default

default menu.c32
timeout 30
MENU TITLE CentOS-7.5-1804 PXE install menu
LABEL linux
MENU LABEL INSTALL CentOS 7.5 1804 for X86_64
KERNEL vmlinuz
APPEND initrd=initrd.img install.repo=http://172.16.75.2/centos7
LABEL linux autoinstall
MENU LABEL Auto Install CentOS 7.5 1804 for X86_64
MENU DEFAULT
KERNEL vmlinuz
APPEND initrd=initrd.img install.repo=http://172.16.75.2/centos7 ks=http://172.16.75.2/kickstarts/centos7-ks.cfg

這裏就是一些標籤和地址指向,按照我這個寫就行,記住地址和系統版本改成你自己的,寫完保存即可;

準備工作繼續:
[root@2 tftpboot]# cd
[root@2 ~]# mkdir -pv /var/www/html/{centos7,kickstarts}
mkdir: 已創建目錄 "/var/www/html/centos7"
mkdir: 已創建目錄 "/var/www/html/kickstarts"
[root@2 ~]# mount --bind /mnt/cdrom /var/www/html/centos7 //mount --bind:將某個已經掛載的文件系統綁定至另一個掛載點;因爲之前博主掛載了所以要用--bind選項;
[root@2 ~]# cp -a /etc/yum.repos.d/CentOS-Base.repo /var/www/html/
接下來將我們準備的centos7-common-ks.cfg放到相應的位置上就行了(用我的也行,參照你本地的anaconda-ks.cfg改一改,或者自己用Xmanger製作一個我在前面的博客中有怎樣製作一個ks.cfg文件可以參照一下):
[root@2 ~]# cd /var/www/html/kickstarts/
基於PXE網絡完成無人值守安裝Linux系統
內容如下:
#platform=x86,AMD64,Intel EM64T
#version=DEVEL

System authorization information

auth --enableshadow --passalgo=sha512

Use text install

text
firstboot --disable

Install OS instead of upgrade

install

Use network install

url --url=http://172.16.75.2/centos7

Use text install

text
install

Run the Setup Agent on first boot

firstboot --enable
#ignoredisk --only-use=sda

Keyboard layouts

keyboard --vckeymap=us --xlayouts='us'

System language

lang zh_CN.UTF-8

selinux --disabled
firewall --disabled

Network information

network --bootproto=dhcp --device=ens33 --onboot=on --noipv6

Root password

rootpw --iscrypted $1$FMv2pd1p$LEC/mDPq2IddTJ/xMswq30

System timezone

timezone Asia/Shanghai --isUtc --ntpservers=172.16.75.2
user --name=wzc --password=$6$OPyOPf8kt76W2zvt$eK5CAUiibFK78DcXpG79Y0w3lkPW63cteVAh0ms7tMQ2OL5AyZwHBZp0KdKBEF65f2aWfnt2Q64bViz1Sarpp/ --iscrypted --gecos="wzc"

X Window System configuration information

xconfig --startxonboot

System bootloader configuration

bootloader --location=mbr --boot-drive=sda

Partition clearing information

clearpart --all --initlabel --drives=sda

Disk partitioning information

part /boot --fstype="ext4" --size=200
part swap --fstype="swap" --size=2048
part / --fstype="ext4" --grow --size=1

%packagesbr/>@base
@core
br/>@desktop-debugging
@dial-up
br/>@directory-client
@fonts
br/>@gnome-apps
@gnome-desktop
br/>@guest-agents
@guest-desktop-agents
br/>@input-methods
@internet-browser
br/>@java-platform
@multimedia
br/>@network-file-system-client
@networkmanager-submodules
br/>@print-client
@x11
kexec-tools

%end
%post
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
wget -q -O /etc/yum.repos.d/CentOS-Base.repo http://172.16.72.2/CentOS-Base.repo
mkdir /mnt/cdrom

%end

因爲我們在這裏面規定了本機爲ntp時間服務器,所以我們還要設置一下ntp:
[root@2 ~]# vim /etc/ntp.conf
基於PXE網絡完成無人值守安裝Linux系統
[root@2 ~]# systemctl start ntpd //這樣就行了,記住啓動;

接下來我們需要一臺沒有安裝操作系統白鼠機進行測試:
基於PXE網絡完成無人值守安裝Linux系統
基於PXE網絡完成無人值守安裝Linux系統
基於PXE網絡完成無人值守安裝Linux系統
基於PXE網絡完成無人值守安裝Linux系統
基於PXE網絡完成無人值守安裝Linux系統
基於PXE網絡完成無人值守安裝Linux系統
這裏選擇與你客戶機相對應的線程數了解吧;
基於PXE網絡完成無人值守安裝Linux系統
因爲是安裝Centos7所以至少要用2G內存,多了沒事,少了會在安裝的時候出現下面這樣的錯誤:
基於PXE網絡完成無人值守安裝Linux系統
所以要給白鼠機足夠的內存;
好了,我們繼續:
基於PXE網絡完成無人值守安裝Linux系統
基於PXE網絡完成無人值守安裝Linux系統

基本上這臺白鼠就創建完成了接下來就是安裝系統了:
如果上述操作都沒有問題的話,打開白鼠機就自己獲取IP地址等,進行自動安裝系統了:
基於PXE網絡完成無人值守安裝Linux系統
基於PXE網絡完成無人值守安裝Linux系統
基於PXE網絡完成無人值守安裝Linux系統
看到沒1380項呢,如果你想快點安的話少裝幾個包修改一下ks.cfg文件就行;
這個過程可能需要等待一段時間,耐心點;
瞧我們的白鼠機系統安裝完成了:
基於PXE網絡完成無人值守安裝Linux系統

如果想要批量安裝,多打開幾臺白鼠機就好了,不過你的內存要吃得消才行!!這玩意兒的缺點就是安裝系統單一,如果想要多版本系統安裝可以使用cobbler。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章