轉載位址:http://wowking.blog.51cto.com/1638252/960338
相關不錯的文章:http://wgkgood.blog.51cto.com/1192594/530304
http://blog.chinaunix.net/uid-20330385-id-1965396.html
原理和概念:
1.1 什麼是PXE
嚴格來說,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 上下載下傳所需的檔案。
1.2 什麼是KickStart
KickStart是一種無人職守安裝方式。KickStart的工作原理是通過記錄典型的安裝過程中所需人工幹預填寫的各種參數,并生成一個名為ks.cfg的檔案;在其後的安裝過程中(不隻局限于生成KickStart安裝檔案的機器)當出現要求填寫參數的情況時,安裝程式會首先去查找KickStart生成的檔案,當找到合适的參數時,就采用找到的參數,當沒有找到合适的參數時,才需要安裝者手工幹預。這樣,如果KickStart檔案涵蓋了安裝過程中出現的所有需要填寫的參數時,安裝者完全可以隻告訴安裝程式從何處取ks.cfg檔案,然後去忙自己的事情。等安裝完畢,安裝程式會根據ks.cfg中設定的重新開機選項來重新開機系統,并結束安裝。
1.3 PXE + KickStart安裝的條件
執行 PXE + KickStart安裝需要的裝置為:
• DHCP 伺服器;
• TFTP 伺服器;
• KickStart所生成的ks.cfg配置檔案
• 一台存放系統安裝檔案的伺服器,如 NFS、HTTP 或 FTP 伺服器。
• 帶有一個 PXE 支援網卡的将安裝的主機;
工作過程圖
安裝步驟
環境:
OS:CentOS 5.5 x86_64
ip adress:192.168.20.20
兩台VM:一台做Server,一台來裝系統
(如果你的系統是CentOS 5.5 32位或者其它版本的Linux,請自行适合的修改)
1.mount CentOS DVD
mount /dev/cdrom /mnt [挂載光驅]
2.install tftp-server
yum -y install tftp-server.x86_64
vim /etc/xinetd.d/tftp
- service tftp
- {
- socket_type = dgram
- protocol = udp
- wait = yes
- user = root
- server = /usr/sbin/in.tftpd
- server_args = -s /tftpboot
- disable = no #[将'yes'改為'no']
- per_source = 11
- cps = 100 2
- flags = IPv4
- }
service xinetd start [啟動tftp服務]
3.configuration PXE
mkdir /tftpboot [如果沒有這個檔案夾就建立]
cp /usr/lib/syslinux/pxelinux.0 /tftpboot/
cp /mnt/images/pxeboot/initrd.img /tftpboot/
cp /mnt/images/pxeboot/vmlinuz /tftpboot/
cp /mnt/isolinux/*.msg /tftpboot/ [複制linux開機引導檔案]
mkdir /tftpboot/pxelinux.cfg
cp /mnt/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
4.install DHCP
yum -y install dhcp.x86_64
cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf
vim /etc/dhcpd.conf
- ignore client-updates;
- next-server 192.168.20.20; #[添加,next-server 是tftp server]
- filename "/pxelinux.0"; #[添加]
- subnet 192.168.20.0 netmask 255.255.255.0 { #[網段申明]
- # --- default gateway
- option routers 192.168.20.254; #[網關]
- option subnet-mask 255.255.255.0; #[子網俺碼]
- option nis-domain "domain.org";
- option domain-name "domain.org";
- option domain-name-servers 8.8.8.8; #[DNS]
- option time-offset -18000; # Eastern Standard Time
- # option ntp-servers 192.168.1.1;
- # option netbios-name-servers 192.168.1.1;
- # --- Selects point-to-point node (default is hybrid). Don't change this unless
- # -- you understand Netbios very well
- # option netbios-node-type 2;
- range dynamic-bootp 192.168.20.20 192.168.20.254; #[ip pools]
- default-lease-time 21600;
- max-lease-time 43200;
- # we want the nameserver to appear at a fixed address
- # host ns {
- # next-server marvin.redhat.com;
- # hardware ethernet 12:34:56:78:AB:CD;
- # fixed-address 207.175.42.254;
- # } #[由于本次實驗中DHCP Server隻用于安裝無人值守安裝,這些都用不着,注釋最後幾行。實際環境中,視情況而定]
- }
service dhcpd start
5.install NFS
yum -y install nfs-* [CentOS預設是安裝的]
mkdir /tftpboot/ks [先在tftpboot目錄下建立ks檔案,一會存放ks.cfg時用]
vim /etc/exports
- /mnt *(ro) #[添加這兩個共享檔案夾,'*'任何人可以通路,'(ro)'即read only]
- /tftpboot/ks/ *(ro)
service portmap start [首先啟動這個服務,這是nfs的依賴服務]
service nfs start
6.install KickStart
yum -y install system-config-kickstart.noarch [install kickstart]
yum -y groupinstall "X Window System" [如果GNOME環境,請執行本行及下行指令。如果你不希望安裝GNOME環境,KickStart也可以不安裝,直接複制我這的ks.cfg代碼合适的修改便可。當然其它版本的linux的ks.cfg代碼不一樣]
yum -y groupinstall "GNOME Desktop Environment"
startx [進入desktop,kickstart必須在desktop環境下配置]
system-config-kickstart [start kickstart]
定制KickStart [下圖隻是例子,實際根據各自需求而定]
因為CentOS安裝盤挂載在/mnt,是以這裡的目錄是/mnt
記得最少安裝一個包,不然在安裝系統的時候,會彈出一個對話框,讓你手動選擇需要安裝的包
下面是利用KickStart生成的ks.cfg,也可以直接在這裡适當修改參數
- lang en_US
- # Installation logging level
- logging --level=info
- # Use NFS installation media
- nfs --server=192.168.20.20 --dir=/mnt
- # Network information
- network --bootproto=dhcp --device=eth0 --onboot=on
- # Reboot after installation
- reboot
- #Root password
- rootpw --iscrypted $1$SjnCI7rG$4JhDvTrZ4Xo4fdpjOriBU/
- # SELinux configuration
- selinux --enforcing
- # Do not configure the X Window System
- skipx
- # System timezone
- timezone Asia/Shanghai
- # Install OS instead of upgrade
- install
- # Disk partitioning information
- part swap --bytes-per-inode=4096 --fstype="swap" --size=2048
- part /boot --bytes-per-inode=4096 --fstype="ext3" --size=100
- part / --bytes-per-inode=4096 --fstype="ext3" --size=10240
- part /data --bytes-per-inode=4096 --fstype="ext3" --grow --size=1
- %packages
- @editors
cp /root/ks.cfg /tftpboot/ks/
chmod 777 /tftpboot/pxelinux.cfg/default
vim /tftpboot/pxelinux.cfg/default
- default ks #[修改為'ks']
- prompt 1
- timeout 3
- display boot.msg
- F1 boot.msg
- F2 options.msg
- F3 general.msg
- F4 param.msg
- F5 rescue.msg
- label linux
- kernel vmlinuz
- append initrd=initrd.img
- label text
- kernel vmlinuz
- append initrd=initrd.img text
- label ks
- kernel vmlinuz
- append ks=nfs:192.168.20.20:/tftpboot/ks/ks.cfg initrd=initrd.img #[這裡是ks的路徑]
- label local
- localboot 1
- label memtest86
- kernel memtest
- append -
7.closed Firewall and SElinux
setup
8.驗證奇迹的時刻來啦
開啟需要安裝的電腦,倒杯COFFEE,看它自動安裝喽。。。。
預設情況下不需要任何設定,如果電腦自動不能找到PXE啟動或叫Network boot from XX開機啟動模式,就手動選擇吧。
一般臨時選擇是按Esc或F12或F11再或者其它,因電腦品牌而異。。
如果在boot裡将設定PXE設定成第一啟動選項,記得安裝完系統後,改回硬碟啟動,否則電腦會一直裝系統,,,
9.總結
VM安裝需注意幾點:
關閉網卡自帶的DHCP;
網卡模式用橋接;
最後貼幾張PC安裝時的圖吧