1. 程式人生 > 資訊 >聯想 YOGA 智慧投影 T500 Play 明日首銷:2699 元,開機無廣告

聯想 YOGA 智慧投影 T500 Play 明日首銷:2699 元,開機無廣告

一 PXE 原理和概念

PXE 是由 Intel 公司開發的網路引導技術,工作在 Client/Server 模式,允許客戶機通過網路從遠端伺服器下載引導映象,並載入安裝檔案或者整個作業系統。

PXE 嚴格來說並不是一種安裝方式,而是一種引導的方式。進行 PXE 安裝的必要條件是要安裝的計算機中包含一個 PXE 支援的網絡卡(NIC),即網絡卡中必須要有 PXE Client。PXE (Pre-boot Execution Environment)協議使計算機可以通過網路啟動。協議分為 client 和 server 端,PXE client 在網絡卡的 ROM 中,當計算機引導時,BIOS 把 PXE client 調入記憶體執行,由 PXE client 將放置在遠端的檔案通過網路下載到本地執行。執行 PXE 協議需要設定 DHCP 伺服器 和 TFTP 伺服器。DHCP 伺服器用來給 PXE client(將要安裝系統的主機)分配一個 IP 地址,由於是給 PXE client 分配 IP 地址,所以在配置 DHCP 伺服器時需要增加相應的 PXE 設定。此外,在 PXE client 的 ROM 中,已經存在了 TFTP Client。PXE Client 通過 TFTP 協議到 TFTP Server 上下載所需的檔案。

優點:

規模化:同時裝配多臺伺服器; Ø

自動化:安裝系統、配置各種服務; Ø

遠端實現:不需要光碟、U 盤等安裝介質。

前提條件:

客戶機的網絡卡支援 PXE 協議(整合 BOOTROM 晶片),且主機板支援網路引導。 Ø

網路中有一臺 DHCP 伺服器以便為客戶機自動分配地址、指定引導檔案位置。 Ø

伺服器通過 TFTP(Trivial File Transfer Protocol,簡單檔案傳輸協議)提供引導映象檔案的下載。其中,第一個條件實際上是硬體要求,目前絕大多數伺服器和大多數 PC 都能夠提供此支援,只需在 BIOS 設定中允許從 Network 或 LAN 啟動即可。

二 PXE伺服器和客戶機的工作過程

1.PXE客戶機發出DHCP請求,向DHCP伺服器申請IP地址,

2.DHCP伺服器響應PXE客戶機的請求,自動從IP地址池中分配一個IP地址給PXE客戶機,並且告知PXE客戶機:TFTP伺服器的IP地址和PXE載入程式檔案pxelinux.0,預設在TFTP共享目錄/var/lib/tftpboot/下

3.PXE客戶機向TFTP伺服器發起獲取pxelinux.0載入程式檔案的請求。

4.TFTP伺服器響應PXE客戶機的請求,將其共享的pxelinux.0檔案傳輸給PXE客戶機。

5.PXE客戶機通過網路來啟動到系統安裝主介面。

6.PXE客戶機向檔案共享伺服器(ftp、http、nfs等)發起獲取centos或windows系統安裝檔案的請求。

7.檔案共享服務響應PXE客戶機的請求,將共享的系統安裝檔案傳輸給PXE客戶機。

8.PXE客戶機進入到安裝提示嚮導介面,使用者需要手動來完成系統安裝的操作

三 搭建 PXE 遠端安裝伺服器

所需安裝包

vsftpd //用來放置安裝映象,通過ftp訪問映象安裝

dhcp.x86_64 12:4.2.5-7pd-3.0.2-27.el7.x86_64.r9.el7.centos //用來給客戶機分配ip

syslinux-4.05-15.el7.x86_64.rpm //用來提供pxe的載入程式

tftp-server.x86_64 0:5.2-22.el7.rpm //用來提供引導映象檔案的下載

xinetd.x86_64 2:2.3.15-14.el7 //用來託管tftp

system-config-kickstart.noarch 0:2.9.7-1.el7.rpm //用來無人值守安裝

環境準備:

一臺主機:配置雙網絡卡 一個作用是dhcp,選用ip為192.168.159.100

一臺作為pxe伺服器,

保證防火牆和增強屬於關閉狀態

新增新的網絡卡,並選VMnet1,僅主機模式

檢視VMnet1的網段,並修改新增網絡卡(命名ens37,)ip地址192.168.159.100

​網絡卡新增成功

[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens37

[root@localhost network-scripts]# vim /etc/sysconfig/network-scripts/ifcfg-ens37

​[root@localhost network-scripts]# systemctl restart network

​1、安裝並啟用 DHCP 服務

yum -y install dhcp

cp -rfp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

​配置檔案裡做如下設定:

vim /etc/dhcp/dhcpd.conf

ddns-update-style none; // 禁止動態更新

​subnet 192.168.159.0 netmask 255.255.255.0 { //配置網段

range 192.168.159.50192.168.159.60; //配置地址池

option routers 192.168.159.2; //配置閘道器

option domain-name-servers 114.114.114.114;

next-server 192.168.159.100; //指定tftp伺服器的地址(*)

filename "pxelinux.0"; //指定pxe載入程式的檔名(*)

}

​注:可先安裝pxelinux.0

開啟DHCP

systemctl start dhcpd

systemctl enable dhcpd

2、安裝並啟用 TFTP 服務

TFTP:(Trivial File Transfer Protocol)是一個小而易於實現的檔案傳送協議。TFTP是基於UDP資料報,需要有自己的差錯改正措施。TFTP只支援檔案傳輸,不支援互動,沒有龐大的命令集。也沒有目錄列表功能,以及不能對使用者進行身份鑑別。但它的程式碼所佔記憶體較小,不需要硬碟就可以固化TFTP程式碼,很適合較小的計算機和特殊用途的裝置。

TFTP和FTP一個主要的區別就是它沒有互動式,且不進行身份驗證。

TFTP一般用於傳輸小檔案

安裝程式

yum install -y */tftp

yum install -y */xinetd

vim /etc/xinetd.d/tftp

tftp被xinet所託管,xinetd預設沒有安裝,配置檔案xinetd即extended internet daemon,xinetd是新一代的網路守護程序服務程式,又叫超級Internet伺服器。經常用來管理多種輕量級Internet服務。xinetd提供類似於inetd+tcp_wrapper的功能,但是更加強大和安全

service tftp

{

socket_type = dgram

protocol = udp

wait = no//wait no表示客戶機可以多臺一起連線,yes表示客戶機只能一臺一臺連線,表示是否開啟多執行緒一起工作,否則需要等待

user = root

server = /usr/sbin/in.tftpd

server_args = -s /var/lib/tftpboot //指定TFTP根目錄(引導檔案的儲存路徑) -c允許上傳

disable = no //disable no表示開啟TFTP服務

per_source = 11 //通過限制一個主機的最大連線數,從而防止某個主機獨佔某個服務,這裡每個IP地址的連線數是11個

cps = 100 2 //表示伺服器最多啟動100個連線,如果達到這個數目將停止啟動新服務2秒。在此期間不接受任何請求

flags = IPv4

}

​由於 PXE 網路安裝的 Linux 核心、驅動檔案可以從 CentOS 7 系統光盤獲得, 分別為 vmlinuz 和 initrd.img,位於光碟目錄 images/pxeboot 下。找到這兩個檔案並將其複製到 tftp 服務的根目錄下

vmlinuz是可引導的、壓縮的核心。“vm”代表“Virtual Memory”。Linux 支援虛擬記憶體,不像老的作業系統比如DOS有640KB記憶體的限制。Linux能夠使用硬碟空間作為虛擬記憶體,因此得名“vm”。vmlinuz是可執行的Linux核心,它位於/boot/vmlinuz,它一般是一個軟連結。

initrd是“initial ramdisk”的簡寫(系統初始化檔案)。

initrd一般被用來臨時的引導硬體到實際核心vmlinuz能夠接管並繼續引導的狀態。initrd.img主要是用於載入ext4等檔案系統及scsi裝置的驅動。比如,使用的是scsi硬碟,而核心vmlinuz中並沒有這個scsi硬體的驅 動,那麼在裝入scsi模組之前,核心不能載入根檔案系統,但scsi模組儲存在根檔案系統的/lib/modules下。為了解決這個問題,可以引導一個能夠讀實際核心的initrd核心並用initrd修正scsi引導問題。

#準備 tftp 需要共享出去的檔案

mount /dev/cdrom /mnt

cd /mnt/images/pxeboot/

#核心檔案 核心初始化映象檔案 /var/lib/tftpboot/ 站點

cp initrd.img vmlinuz /var/lib/tftpboot/

​systemctl start xinetd

systemctl enable xinetd

systemctl start tftp

systemctl enable tftp

3、準備 PXE 載入程式pxelinux.0

pxelinux.0是個二進位制檔案,主要作用相當於一個系統安裝步驟的指引,引導客戶端如何安裝系統

yum provides */pxelinux.0

//查詢這個檔案是由哪個軟體包安裝的,當不是一個路徑和一個軟體包時用*/

yum -y install syslinux

rpm -ql syslinux | grep pxelinux#查詢pxe載入程式的位置

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ #拷貝到tftp的根目錄下,系統引導檔案

注,只有安裝了 system-config-kickstart 軟體包,才會有/usr/share/syslinux/目錄及目錄中的檔案

​4、配置啟動選單檔案

啟動選單用來指導客戶機的引導過程,包括如何呼叫核心,如何載入驅動。預設的啟動選單檔案為 default,應放置在 tftp 根目錄的 pxelinux.cfg 子目錄下,典型的啟動選單配置可參考以下操作自動或手動建立。至於為什麼要是/var/lib/tftpboot/pxelinux.cfg/default檔案,因為是由pxelinux.0這個檔案決定好的

mkdir /var/lib/tftpboot/pxelinux.cfg

//預設pxelinux.cfg是沒有的需要手動建立,注意它是一個目錄而非檔案,雖然是以.cfg結尾

以下為純手工配置default選單檔案

vim /var/lib/tftpboot/pxelinux.cfg/default

default auto //指定預設入口名稱 ,對應下面的label auto

prompt 1//設定是否等待使用者選擇,1 表示等待使用者控制,0表示不等待使用者控制,安裝時會出現boot:如果按回車表示選擇auto模式

label auto //預設的圖形安裝

kernel vmlinuz

append initrd=initrd.img method=ftp://192.168.159.100/centos7 //method必須指定網路路徑

label linux text //文字安裝模式,出現boot:時輸入linux text

kernel vmlinuz

append text initrd=initrd.img method=ftp://192.168.159.100/centos7

label linux rescue //救援模式,出現boot:時輸入linux rescue

kernel vmlinuz

append rescue initrd=initrd.img method=ftp://192.168.159.100/centos7

​5、安裝ftp服務,準備 CentOS 7 安裝源

yum -y install vsftpd

mount /dev/cdrom /mnt

mkdir /var/ftp/centos7

cp -rf /mnt/* /var/ftp/centos7 #將映象複製其中時間比較長,需等待

systemctl start vsftpd

6、客戶機驗證

​直接回車,進入下一步

​進入手動控制

PXE驗證完成

四 實現Kickstart無人值守安裝

1.準備安裝應答檔案

(1)安裝system-config-kickstart工具

yum install -y system-config-kickstart

(2)開啟"Kickstart配置程式”視窗

通過桌面選單"應用程式"-->"系統工具"-->"Kickstart”開啟或執行"system-config-kickstart”命令開啟

(3)配置kickstart選項

配置Kickstart(圖形化)

預設語言設為 中文(簡體)

時區設為 Asia/Shanghai

設定root密碼

高階配置中勾選 安裝後重啟

安裝方法選擇 FTP

FTP伺服器 ftp://TFTPIP

FTP目錄 centos7

引導裝載程式選項:安裝新引導裝載程式

主引導記錄:清除主引導記錄

分割槽:刪除所有現存分割槽

磁碟標籤:初始化磁碟標籤

新增分割槽:正常分割槽(需求)

新增網路裝置 ens33

網路型別設為 DHCP

驗證:無需操作

防火牆:禁用

(4)安裝後腳本的執行

mkdir /etc/yum.repos.d/bak

mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak

echo“[local]

name=local

baseurl=ftp://192.168.100.100/centos7

enabled=1

gpgcheck=0” > /etc/yum.repos.d/local.repo

配置好以後儲存為ks.cfg檔案,儲存的路徑為/var/ftp下

注意:軟體包安裝預設是禁用的,如果需要啟用必須修改yum源配置檔案,將[]裡的內容改成development,立即生效

ks.cfg應答檔案解讀

# Install OS instead of upgrade

install //全新安裝

# Keyboard layouts

keyboard 'us' //英文鍵盤

# Root password

rootpw --iscrypted $1$9Rn8W7vF$npbKh8CeIbTxjwHUlcW4n0 //root密碼

# Use network installation

url --url="ftp://192.168.100.100/centos7" //網路安裝路徑

# System language

lang en_US //系統語言,zh_CN表示中文

# System authorization information

auth --useshadow --passalgo=sha512

# Use text mode install

text //字元模式安裝,graphical表示圖形化安裝

firstboot --disable

# SELinux configuration

selinux --disabled //禁用selinux

# Firewall configuration

firewall --disabled //禁用防火牆

# Network information

network --bootproto=dhcp --device=ens33 //網絡卡配置

# Reboot after installation

reboot //安裝完重啟

# System timezone

timezone Asia/Shanghai // 時區:上海

# System bootloader configuration

bootloader --location=mbr //mbr引導

# Clear the Master Boot Record

zerombr

# Partition clearing information

clearpart --all --initlabel //清除所有分割槽資訊和初始化分割槽標籤

# Disk partitioning information

part / --fstype="xfs" --grow --size=1 //分割槽配置

part swap --fstype="swap" --size=2048

part /boot --fstype="xfs" --size=300

就是圖形化介面選擇像的對應引數

圖形化最小安裝

%packages

@base //安裝基礎軟體包

@^gnome-desktop-environment //安裝桌面環境

%end

如要求最小化安裝,可複製下面內容新增到最後

vim ks.cfg

%packages

@^minimal

%end

如果需要自己配置軟體包,需要編輯ks.cfg檔案

vim ks.cfg

新增至最後

%packages

@^graphical-server-environment

@base

@core

@desktop-debugging

@development

@dial-up

@fonts

@gnome-desktop

@guest-agents

@guest-desktop-agents

@hardware-monitoring

@input-methods

@internet-browser

@multimedia

@print-client

@x11

chrony

%end

可以到伺服器家目錄下檔案anaconda-ks.cfg中拷貝

新增 ks 引導引數至引導選單檔案

vi /var/lib/tftpboot/pxelinux.cfg/default

default auto

prompt 0 ##值為“0”時表示自動執行ks.cfg檔案(無人值守)、為“1”時表示手動配置(有人值守

label auto

kernel vmlinuz

appendinitrd=initrd.img method=ftp://192.168.100.100/centos7 ks=ftp://192.168.159.100/ks.cfg

客戶端驗證無人值守安裝

客戶端調整引導方式為網路啟動

重啟後開始自動安裝

安裝成功,登入root成功