歡迎您光臨本站 註冊首頁

linux 每日學一點《pxe 遠程安裝linux系統》

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0
pxe 遠程安裝linux系統







  1) 什麼是PXE
  PXE(Pre-boot Execution Environment)是由英特爾設計的協議,它可以使計算機通過網

絡啟動.協議分為client和server兩端,PXE client在網卡的ROM中,當計算機引導時,

BIOS把PXE client調入內存執行,並顯示出命令菜單,經用戶選擇后,PXE client將放置在

遠端的操作系統通過網路下載到本地運行.
  PXE協議的成功運行需要解決以下兩個問題:
既然是通過網路傳輸,那麼計算機在啟動時,它的IP地址由誰來配置;
通過什麼協議下載Linux內核和根文件系統
  對於第一個問題,可以通過DHCP Server解決,由DHCP server來給PXE client分配一個

IP地址,DHCP Server是用來給DHCP Client動態分配IP地址的協議,不過由於這裡是給PXE

Client分配IP地址,在配置DHCP Server時,需要增加相應的PXE特有配置.
  至於第二個問題,在PXE client所在的ROM中,已經存在了TFTP Client.PXE Client使

用TFTP Client,通過TFTP協議到TFTP Server上下載所需的文件.
  這樣,PXE協議運行的條件就具備了,下面我們就來看看PXE協議的工作過程.
2) 工作過程

在上圖中,PXE client是需要安裝Linux的計算機,TFTP Server和DHCP Server運行在另外

一台Linux Server上.Bootstrap文件、配置文件、Linux內核以及Linux根文件系統都放置

在Linux Server上TFTP伺服器的根目錄下.
  PXE client在工作過程中,需要三個二進位文件:bootstrap、Linux 內核和Linux根文

件系統.Bootstrap文件是可執行程序,它向用戶提供簡單的控制界面,並根據用戶的選擇

,下載合適的Linux內核以及Linux根文件系統.



具體配置過程如下:
是安裝必要的服務,DHCPD,TFTP-SERVER,NFS(一般默認就有了)
dhcpd和tftp-server都有對應的rpm,直接安裝就可以了.
# vi /etc/xinetd.d/tftp
============= ========== =========== ============ ============
service tftp
{
disable = no (默認是yes,這裡改成no,啟用它)
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -u nobody -s /tftpboot //-s 表示用/tftpboot作

為tftp目錄的根目錄.
per_source = 11
cps = 100 2
flags = IPv4
}
tftp是由xinted來啟動的,修改完后要記得service xinetd restart
# vi /etc/dhcpd.conf
============= ========== =========== ============ ============
ddns-update-style interim;
ignore client-updates;
default-lease-time 21600;
max-lease-time 43200;
authourtative;
next-server 192.168.1.103;
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
range 192.168.1.1 192.168.1.100;
default-lease-time 21600;
max-lease-time 43200;
filename "/pxelinux.0";
option domain-name-servers 202.106.0.20;
}
這裡的 pxelinux.0就是上面提到的bootstrap,上面已經指定了tftp的根目錄,這裡用相

對路徑.
next-server 192.168.1.103;這句一開始我並沒有加上,當要安裝系統的機器啟動以後,在查

找pxelinux.cfg目錄下的配置文件的時候,就死活找不到了.經過很長時間的等待,出現一個

boot:的提示符,告訴我:can't load kernel image:linux,一開始以為



是/tftpboot/pxelinux.cfg/default的配置文件有誤,檢查后沒問題.
google了半天,總算查到了一個帖子,說可能是dhcp3.0的一個bug,需要加上這個參數來指定

DHCP SERVER的IP.修改配置文件加入此句后,重啟dhcp,然後再重新啟動客戶機,這次速度大

大加快,順利通過.
3 配置支持PXE
# mkdir /tftpboot
# cp /usr/lib/syslinux/pxelinux.0 /tftpboot
把LINUX第一張安裝光碟上/image/pxeboot/initrd.img和vmlinuz 以及isolinux/*.msg考到

/tftpboot目錄下(*.msg也可以不拷,重點是initrd.img和vmlinuz,沒有內核是無法引導的)
# cd /tftpboot
# mkdir pxelinux.cfg
# vi defaultdefault centos5
prompt 1
timeout 30
label centos5
kernel vmlinuz
append ks=nfs:192.168.1.103:/root/inst/ks initrd=initrd.img devfs=nomount

ramdisk_size=9216
#append initrd=initrd.img devfs=nomount ramdisk_size=9216
這裡的ks=nfs:192.168.1.103:/root/inst/ks 文件是指定kickstart配置文件,可以在安裝

中不用人工干預,自動按預設的參數安裝.實現安裝過程的全自動.
4 配置NFS服務
# vi /etc/exports
/root/inst 192.168.1.0/24(ro,sync) //這裡是/root/inst 而不是/root/inst/
# mkdir /home/iso
拷貝安裝LINUX的ISO文件到這個目錄
5 需要開啟的系統服務
/dhcpd/network/nfs/portmap/syslog/tftp/xinetd/
service dhcpd start
service portmap start
service nfs start
附上ks文件的內容.
install
nfs --server=192.168.1.103 --dir=/root/inst
lang en_US.UTF-8
keyboard us
network --device eth0 --bootproto static --ip 192.168.1.220 --netmask

255.255.255.0 --gateway 192.168.1.1 --nameserver 192.168.1.1
#network --device eth0 --bootproto DHCP
rootpw --iscrypted $1$WvFbqnpm$m94fa4AopXI/kfYOYbWMW.
firewall --enabled --port=22:tcp
#firewall --disabled


authconfig --enableshadow --enablemd5
selinux --disabled
timezone --utc Asia/Shanghai
bootloader --location=mbr --driveorder=sda --append="rhgb quiet"
clearpart --all
zerombr yes
clearpart --linux --initlabel
part /boot --fstype ext2 --size=256
part / --fstype ext3 --size=8192
part /opt --fstype ext3 --size=8192
part /usr --fstype ext3 --size=16384
part swap --size=4096
part /home --fstype ext3 --size=1 --grow
reboot //加入這行后裝完系統后可以自動重啟,需要注意的是機器的啟動順序不能是網卡優

先,否則會循環裝系統........
%packages --resolvedeps
@ everything
grub
kernel
kernel-devel
e2fsprogs

本文出自 「飛天豬^-^ 祥子[zhang4..」 博客,請務必保留此出處http://zhang45xiang.blog.51cto.com/813708/425309


[火星人 ] linux 每日學一點《pxe 遠程安裝linux系統》已經有522次圍觀

http://coctec.com/docs/linux/show-post-49695.html