如何遠(yuǎn)程安裝Linux
一般情況下,我們都是利用軟驅(qū)或光驅(qū)引導(dǎo)Linux后,再通過(guò)本地的光驅(qū)安裝Linux。但是,這種安裝方法在以下的幾種情況下就不能適用:
無(wú)軟驅(qū)和光驅(qū):很多公司為了節(jié)省成本,計(jì)算機(jī)一般都不帶光驅(qū)或軟驅(qū),這樣就無(wú)法通過(guò)本地安裝Linux;
非標(biāo)準(zhǔn)的軟驅(qū)和光驅(qū):雖然筆記本都會(huì)配置光驅(qū),但是并不一定都是標(biāo)準(zhǔn)的IDE設(shè)備,有些是通過(guò)U 接口,有些是通過(guò)1394接口(例如Samsung 的Q10)。在Linux安裝時(shí)所引導(dǎo)的Linux內(nèi)核一般都不會(huì)帶這些接口的驅(qū)動(dòng),所以也無(wú)法通過(guò)本地安裝Linux;
另外,在一些場(chǎng)合,如機(jī)房中,有大量的計(jì)算機(jī)需要同時(shí)安裝Linux,如果通過(guò)光驅(qū)的方式一個(gè)個(gè)安裝,不僅效率低,也不利于維護(hù)。
基本原理
1) 什么是PXE
PXE(Pre-boot Execution Environment)是由Intel設(shè)計(jì)的協(xié)議,它可以使計(jì)算機(jī)通過(guò)網(wǎng)絡(luò)啟動(dòng)。協(xié)議分為client和server兩端,PXE client在網(wǎng)卡的ROM中,當(dāng)計(jì)算機(jī)引導(dǎo)時(shí),BIOS把PXE client調(diào)入內(nèi)存執(zhí)行,并顯示出命令菜單,經(jīng)用戶(hù)選擇后,PXE client將放置在遠(yuǎn)端的操作系統(tǒng)通過(guò)網(wǎng)絡(luò)下載到本地運(yùn)行。
PXE協(xié)議的成功運(yùn)行需要解決以下兩個(gè)問(wèn)題:
既然是通過(guò)網(wǎng)絡(luò)傳輸,那么計(jì)算機(jī)在啟動(dòng)時(shí),它的IP地址由誰(shuí)來(lái)配置;
通過(guò)什么協(xié)議下載Linux內(nèi)核和根文件系統(tǒng)
對(duì)于第一個(gè)問(wèn)題,可以通過(guò)DHCP Server解決,由DHCP server來(lái)給PXE client分配一個(gè)IP地址,DHCP Server是用來(lái)給DHCP Client動(dòng)態(tài)分配IP地址的協(xié)議,不過(guò)由于這里是給PXE Client分配IP地址,所以在配置DHCP Server時(shí),需要增加相應(yīng)的PXE特有配置。
至于第二個(gè)問(wèn)題,在PXE client所在的ROM中,已經(jīng)存在了TFTP Client。PXE Client使用TFTP Client,通過(guò)TFTP協(xié)議到TFTP Server上下載所需的文件。
這樣,PXE協(xié)議運(yùn)行的條件就具備了,下面我們就來(lái)看看PXE協(xié)議的工作過(guò)程。
2) 工作過(guò)程
498)this.style.width=498;'' onmousewheel = ''javascript:return big(this)'' src="/files/uploadimg/20051212/1001530. g">
在上圖中,PXE client是需要安裝Linux的計(jì)算機(jī),TFTP Server和DHCP Server運(yùn)行在另外一臺(tái)Linux Server上。Bootstrap文件、配置文件、Linux內(nèi)核以及Linux根文件系統(tǒng)都放置在Linux Server上TFTP服務(wù)器的根目錄下。
PXE client在工作過(guò)程中,需要三個(gè)二進(jìn)制文件:bootstrap、Linux 內(nèi)核和Linux根文件系統(tǒng)。Bootstrap文件是可執(zhí)行程序,它向用戶(hù)提供簡(jiǎn)單的控制界面,并根據(jù)用戶(hù)的選擇,下載合適的Linux內(nèi)核以及Linux根文件系統(tǒng)。
有了前面的背景知識(shí),接下來(lái)就可以正式操作了,下面按照順序給出了操作步驟:
1) 配置DHCP Server
選用ISC dhcp-3.0,DHCP Server的配置文件是/etc/dhcpd.conf,配置文件的內(nèi)容如下:
option ace PXE;
option PXE.mtftp-ip code 1 = ip-addre
option PXE.mtftp-cportcode 2 = u igned integer 16;
option PXE.mtftp- ortcode 3 = u igned integer 16;
option PXE.mtftp-tmoutcode 4 = u igned integer 8;
option PXE.mtftp-delaycode 5 = u igned integer 8;
option PXE.discovery-control code 6 = u igned integer 8;
option PXE.discovery-mcast-addr code 7 = ip-addre
cla "pxeclients" {
match if su tring (option vendor-cla -identifier, 0, 9) = "PXEClient";
option vendor-cla -identifier "PXEClient";
vendor-option- ace PXE;
# At least one of the vendor- ecific PXE optio must be set in
# order for the client boot ROMs to realize that we are a PXE-compliant
# server. We set the MCAST IP addre to 0.0.0.0 to tell the boot ROM
# that we can''t provide multicast TFTP (addre 0.0.0.0 mea no
# addre ).
option PXE.mtftp-ip 0.0.0.0;
# This is the name of the file the boot ROMs should download.
filename "pxelinux.0";
# This is the name of the server they should get it from.
next-server 192.168.0.1;
}
dd -update-style interim;
ignore client-update
default-lease-time 1200;
max-lease-time 9200;
option su et-mask 255.255.255.0;
option broadcast-addre 192.168.0.255;
option routers 192.168.0.254;
option domain-name-servers 192.168.0.1,192.168.0.2;
option domain-name "mydomain.org";
su et 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.10 192.168.0.100;
}
host q10 {
hardware ethernet 00:00:F0:6B:38:5
fixed-addre 192.168.0.22;
}
dhcpd.conf配置文件中幾個(gè)關(guān)鍵部分說(shuō)明如下:host q10{…}定義了筆記本Q10網(wǎng)卡的MAC地址與IP地址的對(duì)應(yīng)關(guān)系,表明DHCP Server為Q10分配一個(gè)固定的IP:192.168.0.22;filename ""指定bootstrap的文件名;netx-server指定TFTP Server的地址。其它的配置請(qǐng)讀者參考DHCP Server的手冊(cè)。
2) 配置TFTP server
選用tftp-hpa,TFTP Server的配置文件是/etc/xinetd.d/tftp,配置文件的內(nèi)容如下:
service tftp
{
socket_type = dgram
protocol= udp
wait= yes
user= root
server = /usr/ in/in.tftpd
disable = no
per_source = 11
c = 100 2
}
這里制定了/tft oot為T(mén)FTP Server的根目錄位置。
3) 配置bootstrap
bootstrap文件在dhcpd.conf中被指定為pxelinux.0文件,放置在/tft oot。Linux內(nèi)核以及Linux根文件系統(tǒng)也放置在/tft oot。pxelinux.0在執(zhí)行過(guò)程中,要讀配置文件,所有的配置文件都放在/tft oot/pxelinux.cfg/ 目錄下。由于PXElinux具有為不同的PXE Client提供不同的Linux內(nèi)核以及根文件系統(tǒng)的功能,所以要通過(guò)不同的配置文件名來(lái)區(qū)分出不同的PXE Client的需求。比如一個(gè)PXE Client由DHCP Server分配的IP地址為192.168.0.22,那么相對(duì)應(yīng)的配置文件名為/tft oot/pxelinux.cfg/C0A80016 (注:C0A80016為IP地址192.168.0.22的十六進(jìn)制表示)。如果找不到,就按照順序C0A80016-> C0A8001-> C0A800-> C0A80-> C0A8-> C0A-> C0-> C->default查找配置文件。
/tft oot/pxelinux.cft/C0A80001配置文件的具體內(nèi)容如下:
DEFAULT i tall
PROMPT 1
LABEL i tall
KERNEL vmlinuz
A END initrd=initrd.img devfs=nomount ramdisk_size=16384
此配置文件指定了Linux內(nèi)核以及根文件系統(tǒng)的名稱(chēng),并給內(nèi)核傳遞了一些參數(shù),其中ramdisk_size參數(shù)要非常注意,它指定Linux內(nèi)核啟動(dòng)后建立ramdisk的大小,如果設(shè)置太小,Linux的安裝過(guò)程就可能無(wú)法進(jìn)行。
4) 制作Linux內(nèi)核/根文件系統(tǒng)
因?yàn)樾枰ㄟ^(guò)網(wǎng)絡(luò)安裝,所有選擇Redhat Linux 8.0安裝盤(pán)(disk #1)中E:image ootnet.img(光驅(qū)的盤(pán)符為E:)。bootnet.img包括Linux內(nèi)核、Linux根文件系統(tǒng)(有安裝程序在內(nèi))。用bootnet.img制作一張引導(dǎo)軟盤(pán),方法在DOS命令行運(yùn)行E:dosutilsrawrite E:image ootnet.img,根據(jù)提示制作。制作完畢后,將引導(dǎo)軟盤(pán)中的vmlinuz(Linux內(nèi)核)和initrd.img (Linux根文件系統(tǒng))拷貝到Linux Server的/tft oot下。
5) 啟動(dòng)DHCP Server/TFTP Server
在Linux Server上,運(yùn)行service dhcpd start和service xinetd restart。
6) 啟動(dòng)Q10
Q10加電后,在出現(xiàn)Samsung公司徽標(biāo)時(shí),在左下角會(huì)提示用戶(hù)按F12進(jìn)入網(wǎng)絡(luò)引導(dǎo)。按F12后,Q10進(jìn)入網(wǎng)絡(luò)引導(dǎo)過(guò)程。首先通過(guò)DHCP Server獲得了IP地址,然后下載并執(zhí)行bootstrap文件pxelinux.0;在執(zhí)行中,讀入配置文件 /tft oot/pxelinux.cfg/C0A80016。此時(shí)屏幕上出現(xiàn)boot:,敲入i tall,就進(jìn)入了Redhat Linux 8.0的網(wǎng)絡(luò)安裝界面,一切OK!
步驟
linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論