CentOS 6.5下PXE+Kickstart無人值守安裝操作系統

CentOS 6.5PXE+Kickstart無人值守安裝操作系統

一、簡介

1.1 什麼是PXE

PXE(Pre-boot Execution Environment,預啓動執行環境)是由Intel公司開發的最新技術,工作於Client/Server的網絡模式,支持工作站通過網絡從遠端服務器下載映像,並由此支持通過網絡啓動操作系統,在啓動過程中,終端要求服務器分配IP地址,再用TFTPtrivial file transfer protocol)或MTFTP(multicasttrivial file transfer protocol)協議下載一個啓動軟件包到本機內存中執行,由這個啓動軟件包完成終端基本軟件設置,從而引導預先安裝在服務器中的終端操作系統。

 

嚴格來說,PXE 並不是一種安裝方式,而是一種引導方式。進行 PXE 安裝的必要條件是在要安裝的計算機中必須包含一個 PXE 支持的網卡(NIC),即網卡中必須要有 PXE ClientPXE 協議可以使計算機通過網絡啓動。此協議分爲 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,那麼它就可以通過 TFTP 協議到 TFTP Server 上下載所需的文件了。

PXE的工作過程:

1. PXE Client 從自己的PXE網卡啓動,向本網絡中的DHCP服務器索取IP

 

2. DHCP 服務器返回分配給客戶機的IP 以及PXE文件的放置位置(該文件一般是放在一臺TFTP服務器上)

 

3. PXE Client 向本網絡中的TFTP服務器索取pxelinux.0文件;

 

4. PXE Client 取得pxelinux.0 文件後之執行該文件;

 

5. 根據pxelinux.0 的執行結果,通過TFTP服務器加載內核和文件系統

 

6. 進入安裝畫面, 此時可以通過選擇HTTPFTPNFS 方式之一進行安裝;

1.2 什麼是Kickstart

Kickstart是一種無人值守的安裝方式。它的工作原理是在安裝過程中記錄典型的需要人工干預填寫的各種參數,並生成一個名爲ks.cfg的文件。如果在安裝過程中(不只侷限於生成Kickstart安裝文件的機器)出現要填寫參數的情況,安裝程序首先會去查找Kickstart生成的文件,如果找到合適的參數,就採用所找到的參數;如果沒有找到合適的參數,便需要安裝者手工干預了。所以,如果Kickstart文件涵蓋了安裝過程中可能出現的所有需要填寫的參數,那麼安裝者完全可以只告訴安裝程序從何處取ks.cfg文件,然後就去忙自己的事情。等安裝完畢,安裝程序會根據ks.cfg中的設置重啓系統,並結束安裝。

                   wKioL1WrvWvwsALbAAKgnXJzWKQ241.jpg        

二、系統環境

實驗環境:VMware  ESXI5.5

 

系統平臺:CentOS release 6.5(最小化安裝)

 

DHCP / TFTP IP192.168.7.129

 

HTTP / FTP / NFS IP192.168.7.129

 

防火牆已關閉/iptables: Firewall is not running.

 

SELINUX=disabled

三、準備工作

生成ks.cfg 文件需要system-config-kickstart 工具,而此工具依賴於X Windows,所以我們需要安裝XWindows Desktop 並重啓系統,操作如下:

 

# yum groupinstall "X WindowSystem"

 

# yum groupinstall Desktop

 

# reboot

四、配置FTP安裝方式

#yum –y install vsftpd

設置開機啓動

#chkconfig vsftpd 35 on

#services vsftpd start

iso文件掛載至/mnt/

#mount /dev/cdrom /mnt

#mkdir /var/ftp/centos6.5

#cp  –rf  /mnt/* /var/ftp/cenos6.5

 五、配置TFTP

5.1 安裝tftp-server

 

# yum install tftp-server  –y

 

5.2 啓用tftp 服務

 

# vi /etc/xinetd.d/tftp

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

}

5.3 啓動tftp服務

 

因爲tftp服務是掛載在超級進程xinetd 下的,所以通過啓動xinetd 來啓動tftp服務。

# /etc/init.d/xinetd restart

設置開機啓動xinetd

# chkconfig xinetd on

六、配置支持PXE的啓動程序

6.1 複製pxelinux.0 文件至/var/lib/tftpboot/文件夾中

 

# cp /usr/share/syslinux/pxelinux.0/var/lib/tftpboot/

 

說明:syslinux是一個功能強大的引導加載程序,而且兼容各種介質。更加確切地說:SYSLINUX是一個小型的Linux操作系統,它的目的是簡化首次安裝Linux的時間,並建立修護或其它特殊用途的啓動盤。

 

6.2 複製iso 鏡像中的/image/pxeboot/initrd.imgvmlinux /var/lib/tftpboot/ 文件夾中

 

wKiom1Wru6DzMMwLAAGAZygWIgI484.jpg

6.3 複製iso 鏡像中的/isolinux/*.msg/var/lib/tftpboot/ 文件夾中

 

wKioL1WrvY6hT1xFAAC3lrBeRNc000.jpg

6.4 /var/lib/tftpboot/ 中新建一個pxelinux.cfg目錄

 

# mkdir /var/lib/tftpboot/pxelinux.cfg

 

6.5 iso 鏡像中的/isolinux目錄中的isolinux.cfg複製到pxelinux.cfg目錄中,同時更改文件名稱爲default

 

wKiom1Wru73Ac24oAADxtsLcT9U229.jpg

6.6 修改default文件

 

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

 

default ks #默認啓動的是 'label ks' 中標記的啓動內核

prompt 1          #顯示 'boot: ' 提示符。爲 '0' 時則不提示,將會直接啓動'default' 參數中指定的內容。

timeout 6 #在用戶輸入之前的超時時間,單位爲 1/10 秒。

display boot.msg  #顯示某個文件的內容,注意文件的路徑。默認是在/var/lib/tftpboot/ 目錄下。也可以指定位類似 '/install/boot.msg'這樣的,路徑+文件名。

F1 boot.msg   #按下 'F1' 這樣的鍵後顯示的文件。

F2 options.msg

F3 general.msg

F4 param.msg

F5 rescue.msg

label linux       #'label' 指定你在 'boot:' 提示符下輸入的關鍵字,比如boot:linux[ENTER],這個會啓動'label linux' 下標記的kernel initrd.img 文件。

 kernel vmlinuz  #kernel 參數指定要啓動的內核。

 append initrd=initrd.img #append 指定追加給內核的參數,能夠在grub 裏使用的追加給內核的參數,在這裏也都可以使用。

label text

 kernel vmlinuz

 append initrd=initrd.img text

label ks

 kernel vmlinuz

  appendks=ftp://192.168.7.129/centos6.5/ks.cfg initrd=initrd.img    #告訴系統,從哪裏獲取ks.cfg文件

label local

 localboot 1

label memtest86

 kernel memtest

 append –

七、配置DHCP

7.1 安裝DHCP服務(dhcp配置略)

 

# yum -y install dhcp

#vi /etc/dhcp/dhcpd.conf

 

default-lease-time 600;

max-lease-time 7200;

# Use this to enble / disable dynamic dnsupdates globally.

ddns-update-style interim;

ignore-client-updates;

next-server 192.168.7.129;

filename "/pxelinux.0";

subnet 192.168.7.0 netmask 255.255.255.0 {

 range dynamic-bootp 192.168.7.100 192.168.7.200;

 option routers       192.168.7.129;

}

八、生成ks.cfg文件

8.1 安裝Kickstart

 

# yum install system-config-kickstart

 

8.2 在桌面環境下配置Kickstart

 

啓動X Windows 環境

 

# startx

 

配置Kickstart

 

# system-config-kickstart

A. 設置語言,鍵盤,時區,Root密碼,安裝完畢後重啓等。

wKioL1WrvbKBbFR8AALt1tLkIME176.jpg

設置安裝方式,我用的是ftp服務器

wKiom1Wru9_Af1bcAAIoHcPt3Cw879.jpg

安裝mbr

wKioL1Wrvc7gafPlAAIeEnMQEqg624.jpg

設置分區

wKiom1WrvALwlpLaAAK2W_bHrIg793.jpg

wKioL1WrvfHgYNKpAALXgNoRy9E907.jpg

配置網絡

wKiom1WrvCDTZbWvAAFzwv95nRA107.jpg

認證和防火牆配置

wKioL1WrvhSgkzNFAAI6AIEQsB8552.jpg

wKiom1WrvDWiSgAJAAGaovwZVDA185.jpg


圖形環境配置

wKioL1WrviySgfudAAFqCdi-sEk763.jpg

軟件包安裝配置

wKiom1WrvGCQ_O-gAAIkDoEwjhw525.jpg

保存配置文件

wKioL1Wrvk6B-cVkAAKDTAF7Xlw020.jpg

啓動虛擬機,選擇從網卡啓動,DHCP 服務器正在給客戶機分配IP地址。

wKiom1WrvIODfy-tAADGTb4rQtY009.jpg

開始下載vmlinuz initrd.img

wKiom1WrvJDAkGaEAACCL6Ft_64409.jpg

安裝過程...

wKioL1Wrvn7QV5XlAAFU3aZQ7kA884.jpg

安裝到此結束

ks.cfg文件,可自己修改

#platform=x86, AMD64, or Intel EM64T

#version=DEVEL

# Firewall configuration

firewall --disabled

# Install OS instead of upgrade

install

# Use network installation

url --url="ftp://192.168.7.129/centos6.5"

# Root password

rootpw --iscrypted$1$2POpr.zn$UqXS2kbWQLMIodh1LjOUg/

# System authorization information

auth --useshadow  --passalgo=sha512

# Use graphical install

graphical

firstboot --disable

# System keyboard

keyboard us

# System language

lang en_US

# SELinux configuration

selinux --disabled

# Installation logging level

logging --level=info

# Reboot after installation

reboot

# System timezone

timezone Asia/Shanghai

# Network information

network --bootproto=dhcp --device=eth0 --onboot=on

# System bootloader configuration

bootloader --location=mbr

# Clear the Master Boot Record

zerombr

# Partition clearing information

clearpart --all --initlabel

# Disk partitioning information

part /boot --fstype="ext4"--size=500

part swap --fstype="swap"--size=4000

part / --fstype="ext4" --grow--size=1

 

%packages

@base

 

%end

 


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