Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> Linux系統教程 >> Linux教程 >> pxe遠程安裝linux系統

pxe遠程安裝linux系統

日期:2017/2/7 9:23:48      編輯:Linux教程

去機房安裝硬盤,拆開機器,發現SCSI線不夠長,只能接一個硬盤。看來只能用新硬盤替換下老硬盤,可是去的時候沒有帶任何光盤,無法給新硬盤安裝操作系統,同事說可以回去用PXE,遠程安裝系統。以前對PXE也有一些了解,不過沒有實踐過。在網上查了如下資料:

基本原理

1) 什麼是PXE

PXE(Pre-boot Execution Environment)是由Intel設計的協議,它可以使計算機通過網絡啟動。協議分為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

Copyright © Windows教程網 All Rights Reserved