PXE及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協議的工作過程。??
工作過程??
在上圖中,PXE client是需要安裝Linux的計算機,TFTP Server和DHCP Server運行在另外一臺Linux Server上。Bootstrap文件、配置文件、Linux內核以及Linux根文件系統都放置在Linux Server上TFTP服務器的根目錄下。??
PXE client在工作過程中,需要三個二進制文件:bootstrap、Linux 內核和Linux根文件系統。Bootstrap文件是可執行程序,它向用戶提供簡單的控制界面,并根據用戶的選擇,下載合適的Linux內核以及Linux根文件系統。??
步驟?
有了前面的背景知識,接下來就可以正式操作了,下面按照順序給出了操作步驟:??
配置DHCP Server??
選用ISC dhcp-3.0,DHCP Server的配置文件是/etc/dhcpd.conf,配置文件的內容如下:??
option space PXE;?
option PXE.mtftp-ip ?? ?? ?? ?? code 1 = ip-address;?
option PXE.mtftp-cport ?? ?? ?? code 2 = unsigned integer 16;?
option PXE.mtftp-sport ?? ?? ?? code 3 = unsigned integer 16;?
option PXE.mtftp-tmout ?? ?? ?? code 4 = unsigned integer 8;?
option PXE.mtftp-delay ?? ?? ?? code 5 = unsigned integer 8;?
option PXE.discovery-control ?? code 6 = unsigned integer 8;?
option PXE.discovery-mcast-addr code 7 = ip-address;?
class "pxeclients" {?
match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";?
option vendor-class-identifier "PXEClient";?
vendor-option-space PXE;?
# At least one of the vendor-specific PXE options must be set in?
# order for the client boot ROMs to realize that we are a PXE-compliant?
# server.?? We set the MCAST IP address to 0.0.0.0 to tell the boot ROM?
# that we can't provide multicast TFTP (address 0.0.0.0 means no?
# address).?
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;?
}?
ddns-update-style interim;?
ignore client-updates;?
default-lease-time 1200;?
max-lease-time 9200;?
option subnet-mask 255.255.255.0;?
option broadcast-address 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";?
subnet 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:5B;?
fixed-address 192.168.0.22;?
}?
??
dhcpd.conf配置文件中幾個關鍵部分說明如下:host q10{…}定義了筆記本Q10網卡的MAC地址與IP地址的對應關系,表明DHCP Server為Q10分配一個固定的IP:192.168.0.22;filename ""指定bootstrap的文件名;netx-server指定TFTP Server的地址。其它的配置請讀者參考DHCP Server的手冊。??
配置TFTP server??
選用tftp-hpa,TFTP Server的配置文件是/etc/xinetd.d/tftp,配置文件的內容如下:??
service tftp?
{?
?? ??? socket_type ?? ?? ?? = dgram?
?? ??? protocol ?? ?? ?? ?? = udp?
?? ??? wait ?? ?? ?? ?? ?? ??? = yes?
?? ??? user ?? ?? ?? ?? ?? ??? = root?
?? ??? server ?? ?? ?? ?? ?? = /usr/sbin/in.tftpd?
?? ??? server_args ?? ?? ?? = -u nobody -s /tftpboot?
?? ??? disable ?? ?? ?? ?? ??? = no?
?? ??? per_source ?? ?? ?? ??? = 11?
?? ??? cps ?? ?? ?? ?? ?? ?? = 100 2?
}?
??
這里制定了/tftpboot為TFTP Server的根目錄位置。??
配置bootstrap??
bootstrap文件在dhcpd.conf中被指定為pxelinux.0文件,放置在/tftpboot。Linux內核以及Linux根文件系統也放置在/tftpboot。pxelinux.0在執行過程中,要讀配置文件,所有的配置文件都放在/tftpboot/pxelinux.cfg/目錄下。由于PXElinux具有為不同的PXE Client提供不同的Linux內核以及根文件系統的功能,所以要通過不同的配置文件名來區分出不同的PXE Client的需求。比如一個PXE Client由DHCP Server分配的IP地址為192.168.0.22,那么相對應的配置文件名為/tftpboot/pxelinux.cfg/C0A80016(注:C0A80016為IP地址192.168.0.22的十六進制表示)。如果找不到,就按照順序C0A80016->; C0A8001->; C0A800->; C0A80->; C0A8->; C0A->; C0->; C->;default查找配置文件。??
/tftpboot/pxelinux.cft/C0A80001配置文件的具體內容如下:??
DEFAULT install?
PROMPT 1?
LABEL install?
KERNEL vmlinuz?
APPEND initrd=initrd.img devfs=nomount ramdisk_size=16384?
??
此配置文件指定了Linux內核以及根文件系統的名稱,并給內核傳遞了一些參數,其中ramdisk_size參數要非常注意,它指定Linux內核啟動后建立ramdisk的大小,如果設置太小,Linux的安裝過程就可能無法進行。??
制作Linux內核/根文件系統??
因為需要通過網絡安裝,所有選擇Redhat Linux 8.0安裝盤(disk #1)中E:\images\bootnet.img(光驅的盤符為E:)。bootnet.img包括Linux內核、Linux根文件系統(有安裝程序在內)。用bootnet.img制作一張引導軟盤,方法在DOS命令行運行E:\dosutils\rawrite E:\images\bootnet.img,根據提示制作。制作完畢后,將引導軟盤中的vmlinuz(Linux內核)和initrd.img(Linux根文件系統)拷貝到Linux Server的/tftpboot下。??
啟動DHCP Server/TFTP Server??
在Linux Server上,運行service dhcpd start和service xinetd restart。??
啟動Q10??
Q10加電后,在出現Samsung公司徽標時,在左下角會提示用戶按F12進入網絡引導。按F12后,Q10進入網絡引導過程。首先通過DHCP Server獲得了IP地址,然后下載并執行bootstrap文件pxelinux.0;在執行中,讀入配置文件/tftpboot/pxelinux.cfg/C0A80016。此時屏幕上出現boot:,敲入install,就進入了Redhat Linux 8.0的網絡安裝界面,一切OK!??
計算機的網卡中必須要有BootROM--PXE Client。同時,PXE協議也可作為無盤Linux技術,用于引導放置在遠程的Linux。實際上,只要根據需要,在Pxelinux的配置文件的APPEND選項中,為Linux內核傳進需要mount的文件系統的位置參數即可。
PXE無盤站的啟動原理簡介:?
當客戶機啟動后,通過網卡bootrom程序廣播一個引導請求幀,包含客戶機的網卡號如:00E04C500234。 服務器接到請求幀便調用BOOTP(boot protocol/啟動協議)或者DHCP( Dynamic Host Configuration Protocol/動態主機配置協議),分配給工作站端的機器名字、IP地址、服務器端的IP地址、以及啟動時的映像文件等。工作站分配到IP地址后,利用服務器提供的TFTP ( Trivial File Transfer Protocol/小文件傳輸協議),接收到完整的啟動文件后,就開始執行文件中的啟動程序,將執行點轉向啟動塊的入口,啟動工作站。接著是不同的OS有不同的引導方式了,要啟動無盤win98,需要往服務器上上傳win98文件,并制作啟動影像文件,工作站才能讀取win98的啟動影像文件,進一步讀取win98安裝目錄,啟動win98。?
二、安裝PXE無盤站所需的軟件:?
根據以上的原理解釋,我們知道啟動無盤win98需要網卡PXE bootrom程序(寫入主板bios,如果網卡已有PXE bootrom則不需要),DHCP服務器軟件,PXE服務軟件,TFTP服務軟件,工作站上傳工具,當然,還要有WIN98操作系統軟件。?
我篩選的軟件:8139網卡寫入主板的bootrom程序8139pxe.lom,cbrom606.exe,awdflash.exe,Vicomsoft DHCP Server,3COM Dabs101(包含TFTP服務與PXE服務等),litenet115上傳工具,Win98se操作系統,litenet所需英文win98軟件包(如果有英文win98則忽略)。?
三、安裝PXE無盤站所需的硬件:?
如果只是做實驗,硬件只需要兩臺普通的能裝WIN98的PC電腦(含網卡并聯網)。?
我的試驗環境:?
服務器:k6-2-350, 128m,硬盤46G Ibm 7200轉,8139網卡?
工作站(一臺):C333, 主板via691(Award Bios),64m,tnt2 m64/16m顯卡, 4235聲卡,8139網卡?
聯網方式:雙絞線直連?
四、服務器端軟件安裝及配置?
1、普通方式安裝WIN98操作系統(如果已經是,忽略這一步),安裝好網卡驅動程序、協議及服務(協議可以安裝IPX/SPX兼容協議,NETBEUI,TCP/IP,Microsoft 網絡上的文件與打印機共享)。?
2、在“TCP/IP屬性”中,指定IP地址,例如:?
IP地址:192.168.0.1?
子網掩碼:255.255.255.0?
默認網關:192.168.0.1?
3、假定計算機名稱為:pxeserver,工作組名為pxedomain。?
4、安裝3Com Dabs,序列碼為:0111151111111111,安裝類型:SERVER ,可使用缺省路徑即C:\Program Files\3Com\DynamicAccess boot services。?
運行開始菜單中“程序”——3Com Boot Services中的PXE Server,如果在打開3COM PXE對話框時出現警告框,請點擊“是”跳過。在3COM PXE Server對話框的Options標簽中去掉“Proxy DHCP”前面的勾,在“File”菜單中的“Open Boot File”選中C:\Program Files\3Com\DynamicAccess boot services中的Bootptab,然后點擊“打開(O)”按鈕退出。?
5、安裝Vicomsoft DHCP Server并運行,在菜單中的“Network”下的“DHCP Setup”中的“Boot Server IP”設定為192.168.0.1,“Boot File”設定為C:\Program Files\3Com\DynamicAccess boot services\win98.pxe (3Com Dabs中的啟動文件路徑,win98.pxe的制作方法見下文),在菜單中的“Ports”下的“New Port”中把“Ip Address”由缺省的192.168.181.254改為192.168.0.1,在“Router Address”中填入“192.168.0.1”(此為工作站網關),點OK確定退出。如果需要用sygate之類的軟件共享上網,還需要在菜單中的“Edit”下的“Preferences”中的“Network”選項中設定“DNS Addresses”為192.168.0.1,“Default Domain Name”設定為pxedomain。?
6、在服務器上建立一個文件夾“pxeboot”并設為完全共享,在PXEBOOT文件夾下,為各用戶建立個人目錄并完全共享,例如:user01、user02、user03……?
五、工作站軟件安裝上傳及設置?
1、 在有盤工作站上正常安裝Win98并安裝好需要的應用軟件,假定為缺省安裝路徑c:\windows,安裝好網卡驅動程序、協議及服務,協議可以安裝IPX/SPX兼容協議,NETBEUI,TCP/IP,并且可以安裝Microsoft 網絡上的文件與打印機共享(注意這里與NT下的PXE-PDK無盤不同),將網絡登錄設置為“Microsoft友好登錄”,設定計算機工作組為pxedomain。?
2、 復制實模式下驅動程序?
將keyb.com、ndishlp.sys、net.exe、net.msg、protman.dos、protman.exe、protocol.ini、RTL8139.sys、rtsnd.dos、snapshot.exe復制到c:\Windows目錄下,全部替代;將第一版的ndis.vxd復制到c:\Windows\System 目錄下,這里可用提供的e98files.exe解壓到Windows文件夾中。?
如果不知道還需要復制什么文件,可以運行litenet中的instnic.exe看提示一一復制。?
3、 運行litenet115安裝程序setup.exe,出現“Step 0”界面,單擊“Next”。?
4、 關閉“license.txt”文本,單擊“Yes”按鈕,出現“Step 1”界面,在“NetBIOS Server Name”文本框中輸入服務器名,如pxeserver。在“NetBIOS Share Name”文本框中輸入共享目錄名,如pxeboot,單擊“Next”。?
出現“Comfirm”對話框,要求驅動網卡實模式,單擊“Yes”,出現“Real Mode Net”對話框,在“Nic Type”選擇框中選取“RTL8139”,單擊“Install”,而后單擊“Finish”。?
5、 出現“Step 2”界面,單擊“Next”, 出現“Step 3”界面,提示Windows目錄、System目錄、TEMP目錄位置,若無誤則單擊“Next”。?
6、 出現“Step 4”界面,在“Location of MS Windows files”文本框中,輸入英文版的Win98安裝文件所在路徑(其實只需要輸snapshot.exe所在目錄就行,可能還需要base4.cab,如果已經拷貝了e98files到c:\windows,則只需輸入c:\windows即可),單擊“Next”。?
7、 出現“Step 5”界面,按默認值設置,單擊“Next”。 出現“Comfirm”對話框,單擊“OK”,出現另一對話框,選擇“No”,使工作站自動登錄,再次出現對話框,提示計算機是否重啟,選擇“Yes”。?
8、 重啟出現“Step 6”界面,放入一張質量較好的軟盤,用于制作啟動映象盤,單擊“Next”,出現格式化對話框,將其全面格式化,并可選中“復制系統文件”。?
9、 出現“Step 7”界面,制作引導軟盤,單擊“Next”,復制相關文件。?
10、 出現“Step 8”界面,系統提示安裝Litenet實用工具,按默認值設置,單擊“Next”,再三次單擊“Yes”。?
11、 出現“Step 9”界面,單擊“Next”,再單擊“OK”,出現“Synchroniaer”界面,選擇“From Local Driver”,如果是第一次上傳,單擊“Complete Copy”(完全上傳),開始上傳文件。?
上傳完成后,系統自動檢測WIN98SE,若為SE則提示你替換NDIS.VXD或運行FTuner進行PATCH,此處有個選項說是否建立虛擬盤,可以去掉前面的勾以節省工作站內存。?
12、 出現“Step 10”,單擊“Finish”完成。?
13、 上傳文件后,在服務器端作以下改動:?
1) 拷貝服務器或工作站中c:\windows\system\sysdm.cpl到共享文件夾中的windows\system中如D:\pxeboot\windows\system中(解決工作站打不開控制面板的系統屬性問題);?
2) 進入PXEBOOT\WINDOWS文件夾,將3COM DABS安裝目錄中的FREEMEE.COM拷貝到此目錄下,?
找到并打開USERCMD.BAT做如下修改:?
將QRESTALL命令前的rem去掉(可不改),并在其下添加以下一行:?
c:\windows\freemem.com (解決作站運行到最后一步時,光標在左上角閃動幾秒種后重啟或起動到win98的藍色界面, 出現鼠標后定住或重啟的問題)?
在WIN.COM命令之前插入以下面這條語句:?
QVMEM S: %SERVER% %USERNAME% (設定虛擬盤符)?
3) 找到并打開SYSTEM.INI,在[386Enh]小節添加以下三條語句:?
PagingDrive=S (S為前面用QVMEM映射的虛擬盤符)?
MinPagingFileSize=65535?
MaxPagingFileSize=65535?
這樣無盤WIN98就可以使用虛擬內存了。如果工作站運行游戲或其它軟件出現內存不足提示,可以適當把值設大!?
4)為了屏蔽啟動信息:?
在Pxeboot\windows\Usercmd.bat第一行加入ctty con(生成軟盤中的autoexec.bat也要做相應修改,見下文)?
14、修改生成軟盤中的文件:?
1) 如果不能同時啟動多臺工作站,有的工作站啟動的時候死機,將RANDELAY.EXE文件復制到A:\WINBOOT 目錄下,在A:\WINBOOT\STARTNET.BAT中的QUALCNX命令前加入RANDELAY 5 60。?
2)為了屏蔽啟動信息:?
修改autoexec.bat,加入:?
@echo off?
cls?
ctty nul?
...?
...?
15、 在服務器端“PXEBOOT\Windows”目錄下,找到Netnames.db文件并打開它,刪除其所有信息,輸入機號及網卡地址,例如:?
user01 00E04C500234?
user02 00E04C500235?
…… ……?
若不知道網卡地址,Litenet可自動添加網卡記錄到Netnames.db文件中。其方法為:在工作站啟動出現:?
Enter the name for this computer (Hardware Address 00E04C500234):?
時,輸入機號,例如:user01。系統提示:?
Confirm that Hardware address 00E04C500234 is assicpned the name user01(Y/N) Y?
系統提示重啟計算機,注意此時只能修改一臺,不然會出現文件共享出錯。?
16、給工作站加入PXE bootrom啟動代碼,如果網卡有PXE啟動芯片則跳過這一步,如果沒有,重新啟動計算機并切換到MS-DOS方式:?
1)讀出BIOS文件?
AWDFLASH /sy a b.bin?
保存為b.bin,有找不到源文件的提示屬于正常現象。?
把b.bin復制一份以便可以恢復原來的狀態?
2)寫8139pxe.lom到b.bin里面?
CBROM606 b.bin /pci 8139pxe.lom?
8139pxe.lom大小為52k,是專用寫入主板Bios的,不要錯把寫入網卡的寫入bios!?
3)把b.bin寫入主板BIOS?
AWDFLASH b.bin /py /sn /r?
4)OK!?
不成功的原因可能有以下幾個:?
1)BIOS容量不夠用?
CBROM b.bin /d?
找REMAIN COMPRESS CODE SPACE一行,看是否夠64KB不夠的話可以用CBROM刪除一些LOGO之類的東西.?
2)bios類型是AMI的或不是標準AWDARD的,比如華碩和皇朝的一些主板就都不行,但是可以用其它工具,這里不一一介紹了。?
六、建立并配置WIN98無盤啟動影像文件?
1、運行服務器上開始菜單的“程序”——“3Com Boot Services”——“Boot Image Editor”,按提示執行“下一步”直到“完成”,并出現3Com Boot Image Edito對話框。?
2、將安裝工作站litenet115生成的軟盤插入服務器軟驅,選擇3Com Boot Image Editor窗口中Create a TCP/IP or PXE image file選項,在“image file name”欄中使用缺省路徑并加入文件名win98.img:“C:\Program Files\3Com\DynamicAccess boot services\win98.img”,選中options中的Writeable和Pre-OS兩個選項,點擊"ok"按鈕建立啟動影像文件。?
3、選擇3Com Boot Image Editor窗口中的Create a PXE menu boot file選項,點擊"add"圖標進入Edit Entry對話框,在image file文本框中輸入win98.img,然后點擊"ok"按鈕返回Create menu file對話框,在此對話框中點擊"save"按鈕進入Save menu file對話框,在文件名文本框中輸入win98.pxe,點擊“OK”,然后點擊“Save”保存返回,退出3Com Boot Image Edito對話框。?
4、運行開始菜單中“程序”——“3Com Boot Services”——“Bootptab Editor”,在出現的對話框中選擇“PXE”、“Open an existing”單選按鈕,并在下面的文本框中輸入C:\Program Files\3Com\DynamicAccess boot services\Bootptab,確定后進入BOOTPTAB Editor窗口。在窗口中選擇"Edit"菜單下的"Add Host"菜單項,進入Edit Host窗口。在“Name”中輸入 “user01”,在“Node”中輸入網卡的MAC地址如:00E04C500234,在“Image”文本框中輸入win98.pxe。點擊“確定”按鈕返回BOOTPTAB Editor窗口。選擇“File”菜單下的“Save”保存設置,然后關閉BOOTPTAB Editor窗口。?
七、在服務器上運行Vicomsoft DHCP Server,并在Status View窗口中點擊按鈕使其啟動服務(按鈕狀態為On),運行3Com TFTP Server并使其啟動服務(狀態為 Server started)。可以不運行3Com PXE Server。?
八、關閉工作站,取掉工作站的硬盤、軟驅、光驅。?
重啟進行工作站主板Bios設置,在STANDARD CMOS SETUP中,將硬盤設置為無,將軟驅設置為1.44M(軟驅設置為無會重啟),在BIOS FEATURES SETUP中把Boot Up Floppy Seek(開機軟驅尋道)設為Disable,有些主板還需要設置Boot First Lan(或者相似選項):Enable。?
重新啟動,按Shift+F10鍵出現PXE啟動設置框,選擇?
Network Boot Protocol:PXE?
Boot Order: Int 19h?
Show Config Message: Disable (不出現提示信息,Enable為有提示信息)?
按F4保存退出。?
九、安裝完成,工作站啟動進入無盤Win98。?
十、優缺點?
優點:?
1、不用安裝winnt server4.0+service park 6或win2000 server,減少安裝時間,如果使用正版,不用買昂貴的軟件及服務協議;?
2、沒有cannot find or load required file krnl386.exe問題;?
3、沒有tnt系列顯卡16色問題;?
4、沒有添加了文件和打印共享就出錯的問題;?
5、沒有修改工作站時間死機問題;?
6、沒有無法正常關機與重啟的問題;?
缺點:?
1、win98做服務器資源分配效率低,比如:?
工作站啟動時,服務器偶爾停頓;?
工作站運行大型游戲如紅警2、diablo2容易死機(不過還好,星際、帝國沒問題);?
工作站數量不能太多。?
此缺點無法彌補,可能使用高配置的電腦做服務器會好一點點(期望值別太高喲)。?
2、工作站用戶權限設置功能弱,容易造成系統被破壞。
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協議的工作過程。??
工作過程??
在上圖中,PXE client是需要安裝Linux的計算機,TFTP Server和DHCP Server運行在另外一臺Linux Server上。Bootstrap文件、配置文件、Linux內核以及Linux根文件系統都放置在Linux Server上TFTP服務器的根目錄下。??
PXE client在工作過程中,需要三個二進制文件:bootstrap、Linux 內核和Linux根文件系統。Bootstrap文件是可執行程序,它向用戶提供簡單的控制界面,并根據用戶的選擇,下載合適的Linux內核以及Linux根文件系統。??
步驟?
有了前面的背景知識,接下來就可以正式操作了,下面按照順序給出了操作步驟:??
配置DHCP Server??
選用ISC dhcp-3.0,DHCP Server的配置文件是/etc/dhcpd.conf,配置文件的內容如下:??
option space PXE;?
option PXE.mtftp-ip ?? ?? ?? ?? code 1 = ip-address;?
option PXE.mtftp-cport ?? ?? ?? code 2 = unsigned integer 16;?
option PXE.mtftp-sport ?? ?? ?? code 3 = unsigned integer 16;?
option PXE.mtftp-tmout ?? ?? ?? code 4 = unsigned integer 8;?
option PXE.mtftp-delay ?? ?? ?? code 5 = unsigned integer 8;?
option PXE.discovery-control ?? code 6 = unsigned integer 8;?
option PXE.discovery-mcast-addr code 7 = ip-address;?
class "pxeclients" {?
match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";?
option vendor-class-identifier "PXEClient";?
vendor-option-space PXE;?
# At least one of the vendor-specific PXE options must be set in?
# order for the client boot ROMs to realize that we are a PXE-compliant?
# server.?? We set the MCAST IP address to 0.0.0.0 to tell the boot ROM?
# that we can't provide multicast TFTP (address 0.0.0.0 means no?
# address).?
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;?
}?
ddns-update-style interim;?
ignore client-updates;?
default-lease-time 1200;?
max-lease-time 9200;?
option subnet-mask 255.255.255.0;?
option broadcast-address 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";?
subnet 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:5B;?
fixed-address 192.168.0.22;?
}?
??
dhcpd.conf配置文件中幾個關鍵部分說明如下:host q10{…}定義了筆記本Q10網卡的MAC地址與IP地址的對應關系,表明DHCP Server為Q10分配一個固定的IP:192.168.0.22;filename ""指定bootstrap的文件名;netx-server指定TFTP Server的地址。其它的配置請讀者參考DHCP Server的手冊。??
配置TFTP server??
選用tftp-hpa,TFTP Server的配置文件是/etc/xinetd.d/tftp,配置文件的內容如下:??
service tftp?
{?
?? ??? socket_type ?? ?? ?? = dgram?
?? ??? protocol ?? ?? ?? ?? = udp?
?? ??? wait ?? ?? ?? ?? ?? ??? = yes?
?? ??? user ?? ?? ?? ?? ?? ??? = root?
?? ??? server ?? ?? ?? ?? ?? = /usr/sbin/in.tftpd?
?? ??? server_args ?? ?? ?? = -u nobody -s /tftpboot?
?? ??? disable ?? ?? ?? ?? ??? = no?
?? ??? per_source ?? ?? ?? ??? = 11?
?? ??? cps ?? ?? ?? ?? ?? ?? = 100 2?
}?
??
這里制定了/tftpboot為TFTP Server的根目錄位置。??
配置bootstrap??
bootstrap文件在dhcpd.conf中被指定為pxelinux.0文件,放置在/tftpboot。Linux內核以及Linux根文件系統也放置在/tftpboot。pxelinux.0在執行過程中,要讀配置文件,所有的配置文件都放在/tftpboot/pxelinux.cfg/目錄下。由于PXElinux具有為不同的PXE Client提供不同的Linux內核以及根文件系統的功能,所以要通過不同的配置文件名來區分出不同的PXE Client的需求。比如一個PXE Client由DHCP Server分配的IP地址為192.168.0.22,那么相對應的配置文件名為/tftpboot/pxelinux.cfg/C0A80016(注:C0A80016為IP地址192.168.0.22的十六進制表示)。如果找不到,就按照順序C0A80016->; C0A8001->; C0A800->; C0A80->; C0A8->; C0A->; C0->; C->;default查找配置文件。??
/tftpboot/pxelinux.cft/C0A80001配置文件的具體內容如下:??
DEFAULT install?
PROMPT 1?
LABEL install?
KERNEL vmlinuz?
APPEND initrd=initrd.img devfs=nomount ramdisk_size=16384?
??
此配置文件指定了Linux內核以及根文件系統的名稱,并給內核傳遞了一些參數,其中ramdisk_size參數要非常注意,它指定Linux內核啟動后建立ramdisk的大小,如果設置太小,Linux的安裝過程就可能無法進行。??
制作Linux內核/根文件系統??
因為需要通過網絡安裝,所有選擇Redhat Linux 8.0安裝盤(disk #1)中E:\images\bootnet.img(光驅的盤符為E:)。bootnet.img包括Linux內核、Linux根文件系統(有安裝程序在內)。用bootnet.img制作一張引導軟盤,方法在DOS命令行運行E:\dosutils\rawrite E:\images\bootnet.img,根據提示制作。制作完畢后,將引導軟盤中的vmlinuz(Linux內核)和initrd.img(Linux根文件系統)拷貝到Linux Server的/tftpboot下。??
啟動DHCP Server/TFTP Server??
在Linux Server上,運行service dhcpd start和service xinetd restart。??
啟動Q10??
Q10加電后,在出現Samsung公司徽標時,在左下角會提示用戶按F12進入網絡引導。按F12后,Q10進入網絡引導過程。首先通過DHCP Server獲得了IP地址,然后下載并執行bootstrap文件pxelinux.0;在執行中,讀入配置文件/tftpboot/pxelinux.cfg/C0A80016。此時屏幕上出現boot:,敲入install,就進入了Redhat Linux 8.0的網絡安裝界面,一切OK!??
計算機的網卡中必須要有BootROM--PXE Client。同時,PXE協議也可作為無盤Linux技術,用于引導放置在遠程的Linux。實際上,只要根據需要,在Pxelinux的配置文件的APPEND選項中,為Linux內核傳進需要mount的文件系統的位置參數即可。
PXE無盤站的啟動原理簡介:?
當客戶機啟動后,通過網卡bootrom程序廣播一個引導請求幀,包含客戶機的網卡號如:00E04C500234。 服務器接到請求幀便調用BOOTP(boot protocol/啟動協議)或者DHCP( Dynamic Host Configuration Protocol/動態主機配置協議),分配給工作站端的機器名字、IP地址、服務器端的IP地址、以及啟動時的映像文件等。工作站分配到IP地址后,利用服務器提供的TFTP ( Trivial File Transfer Protocol/小文件傳輸協議),接收到完整的啟動文件后,就開始執行文件中的啟動程序,將執行點轉向啟動塊的入口,啟動工作站。接著是不同的OS有不同的引導方式了,要啟動無盤win98,需要往服務器上上傳win98文件,并制作啟動影像文件,工作站才能讀取win98的啟動影像文件,進一步讀取win98安裝目錄,啟動win98。?
二、安裝PXE無盤站所需的軟件:?
根據以上的原理解釋,我們知道啟動無盤win98需要網卡PXE bootrom程序(寫入主板bios,如果網卡已有PXE bootrom則不需要),DHCP服務器軟件,PXE服務軟件,TFTP服務軟件,工作站上傳工具,當然,還要有WIN98操作系統軟件。?
我篩選的軟件:8139網卡寫入主板的bootrom程序8139pxe.lom,cbrom606.exe,awdflash.exe,Vicomsoft DHCP Server,3COM Dabs101(包含TFTP服務與PXE服務等),litenet115上傳工具,Win98se操作系統,litenet所需英文win98軟件包(如果有英文win98則忽略)。?
三、安裝PXE無盤站所需的硬件:?
如果只是做實驗,硬件只需要兩臺普通的能裝WIN98的PC電腦(含網卡并聯網)。?
我的試驗環境:?
服務器:k6-2-350, 128m,硬盤46G Ibm 7200轉,8139網卡?
工作站(一臺):C333, 主板via691(Award Bios),64m,tnt2 m64/16m顯卡, 4235聲卡,8139網卡?
聯網方式:雙絞線直連?
四、服務器端軟件安裝及配置?
1、普通方式安裝WIN98操作系統(如果已經是,忽略這一步),安裝好網卡驅動程序、協議及服務(協議可以安裝IPX/SPX兼容協議,NETBEUI,TCP/IP,Microsoft 網絡上的文件與打印機共享)。?
2、在“TCP/IP屬性”中,指定IP地址,例如:?
IP地址:192.168.0.1?
子網掩碼:255.255.255.0?
默認網關:192.168.0.1?
3、假定計算機名稱為:pxeserver,工作組名為pxedomain。?
4、安裝3Com Dabs,序列碼為:0111151111111111,安裝類型:SERVER ,可使用缺省路徑即C:\Program Files\3Com\DynamicAccess boot services。?
運行開始菜單中“程序”——3Com Boot Services中的PXE Server,如果在打開3COM PXE對話框時出現警告框,請點擊“是”跳過。在3COM PXE Server對話框的Options標簽中去掉“Proxy DHCP”前面的勾,在“File”菜單中的“Open Boot File”選中C:\Program Files\3Com\DynamicAccess boot services中的Bootptab,然后點擊“打開(O)”按鈕退出。?
5、安裝Vicomsoft DHCP Server并運行,在菜單中的“Network”下的“DHCP Setup”中的“Boot Server IP”設定為192.168.0.1,“Boot File”設定為C:\Program Files\3Com\DynamicAccess boot services\win98.pxe (3Com Dabs中的啟動文件路徑,win98.pxe的制作方法見下文),在菜單中的“Ports”下的“New Port”中把“Ip Address”由缺省的192.168.181.254改為192.168.0.1,在“Router Address”中填入“192.168.0.1”(此為工作站網關),點OK確定退出。如果需要用sygate之類的軟件共享上網,還需要在菜單中的“Edit”下的“Preferences”中的“Network”選項中設定“DNS Addresses”為192.168.0.1,“Default Domain Name”設定為pxedomain。?
6、在服務器上建立一個文件夾“pxeboot”并設為完全共享,在PXEBOOT文件夾下,為各用戶建立個人目錄并完全共享,例如:user01、user02、user03……?
五、工作站軟件安裝上傳及設置?
1、 在有盤工作站上正常安裝Win98并安裝好需要的應用軟件,假定為缺省安裝路徑c:\windows,安裝好網卡驅動程序、協議及服務,協議可以安裝IPX/SPX兼容協議,NETBEUI,TCP/IP,并且可以安裝Microsoft 網絡上的文件與打印機共享(注意這里與NT下的PXE-PDK無盤不同),將網絡登錄設置為“Microsoft友好登錄”,設定計算機工作組為pxedomain。?
2、 復制實模式下驅動程序?
將keyb.com、ndishlp.sys、net.exe、net.msg、protman.dos、protman.exe、protocol.ini、RTL8139.sys、rtsnd.dos、snapshot.exe復制到c:\Windows目錄下,全部替代;將第一版的ndis.vxd復制到c:\Windows\System 目錄下,這里可用提供的e98files.exe解壓到Windows文件夾中。?
如果不知道還需要復制什么文件,可以運行litenet中的instnic.exe看提示一一復制。?
3、 運行litenet115安裝程序setup.exe,出現“Step 0”界面,單擊“Next”。?
4、 關閉“license.txt”文本,單擊“Yes”按鈕,出現“Step 1”界面,在“NetBIOS Server Name”文本框中輸入服務器名,如pxeserver。在“NetBIOS Share Name”文本框中輸入共享目錄名,如pxeboot,單擊“Next”。?
出現“Comfirm”對話框,要求驅動網卡實模式,單擊“Yes”,出現“Real Mode Net”對話框,在“Nic Type”選擇框中選取“RTL8139”,單擊“Install”,而后單擊“Finish”。?
5、 出現“Step 2”界面,單擊“Next”, 出現“Step 3”界面,提示Windows目錄、System目錄、TEMP目錄位置,若無誤則單擊“Next”。?
6、 出現“Step 4”界面,在“Location of MS Windows files”文本框中,輸入英文版的Win98安裝文件所在路徑(其實只需要輸snapshot.exe所在目錄就行,可能還需要base4.cab,如果已經拷貝了e98files到c:\windows,則只需輸入c:\windows即可),單擊“Next”。?
7、 出現“Step 5”界面,按默認值設置,單擊“Next”。 出現“Comfirm”對話框,單擊“OK”,出現另一對話框,選擇“No”,使工作站自動登錄,再次出現對話框,提示計算機是否重啟,選擇“Yes”。?
8、 重啟出現“Step 6”界面,放入一張質量較好的軟盤,用于制作啟動映象盤,單擊“Next”,出現格式化對話框,將其全面格式化,并可選中“復制系統文件”。?
9、 出現“Step 7”界面,制作引導軟盤,單擊“Next”,復制相關文件。?
10、 出現“Step 8”界面,系統提示安裝Litenet實用工具,按默認值設置,單擊“Next”,再三次單擊“Yes”。?
11、 出現“Step 9”界面,單擊“Next”,再單擊“OK”,出現“Synchroniaer”界面,選擇“From Local Driver”,如果是第一次上傳,單擊“Complete Copy”(完全上傳),開始上傳文件。?
上傳完成后,系統自動檢測WIN98SE,若為SE則提示你替換NDIS.VXD或運行FTuner進行PATCH,此處有個選項說是否建立虛擬盤,可以去掉前面的勾以節省工作站內存。?
12、 出現“Step 10”,單擊“Finish”完成。?
13、 上傳文件后,在服務器端作以下改動:?
1) 拷貝服務器或工作站中c:\windows\system\sysdm.cpl到共享文件夾中的windows\system中如D:\pxeboot\windows\system中(解決工作站打不開控制面板的系統屬性問題);?
2) 進入PXEBOOT\WINDOWS文件夾,將3COM DABS安裝目錄中的FREEMEE.COM拷貝到此目錄下,?
找到并打開USERCMD.BAT做如下修改:?
將QRESTALL命令前的rem去掉(可不改),并在其下添加以下一行:?
c:\windows\freemem.com (解決作站運行到最后一步時,光標在左上角閃動幾秒種后重啟或起動到win98的藍色界面, 出現鼠標后定住或重啟的問題)?
在WIN.COM命令之前插入以下面這條語句:?
QVMEM S: %SERVER% %USERNAME% (設定虛擬盤符)?
3) 找到并打開SYSTEM.INI,在[386Enh]小節添加以下三條語句:?
PagingDrive=S (S為前面用QVMEM映射的虛擬盤符)?
MinPagingFileSize=65535?
MaxPagingFileSize=65535?
這樣無盤WIN98就可以使用虛擬內存了。如果工作站運行游戲或其它軟件出現內存不足提示,可以適當把值設大!?
4)為了屏蔽啟動信息:?
在Pxeboot\windows\Usercmd.bat第一行加入ctty con(生成軟盤中的autoexec.bat也要做相應修改,見下文)?
14、修改生成軟盤中的文件:?
1) 如果不能同時啟動多臺工作站,有的工作站啟動的時候死機,將RANDELAY.EXE文件復制到A:\WINBOOT 目錄下,在A:\WINBOOT\STARTNET.BAT中的QUALCNX命令前加入RANDELAY 5 60。?
2)為了屏蔽啟動信息:?
修改autoexec.bat,加入:?
@echo off?
cls?
ctty nul?
...?
...?
15、 在服務器端“PXEBOOT\Windows”目錄下,找到Netnames.db文件并打開它,刪除其所有信息,輸入機號及網卡地址,例如:?
user01 00E04C500234?
user02 00E04C500235?
…… ……?
若不知道網卡地址,Litenet可自動添加網卡記錄到Netnames.db文件中。其方法為:在工作站啟動出現:?
Enter the name for this computer (Hardware Address 00E04C500234):?
時,輸入機號,例如:user01。系統提示:?
Confirm that Hardware address 00E04C500234 is assicpned the name user01(Y/N) Y?
系統提示重啟計算機,注意此時只能修改一臺,不然會出現文件共享出錯。?
16、給工作站加入PXE bootrom啟動代碼,如果網卡有PXE啟動芯片則跳過這一步,如果沒有,重新啟動計算機并切換到MS-DOS方式:?
1)讀出BIOS文件?
AWDFLASH /sy a b.bin?
保存為b.bin,有找不到源文件的提示屬于正常現象。?
把b.bin復制一份以便可以恢復原來的狀態?
2)寫8139pxe.lom到b.bin里面?
CBROM606 b.bin /pci 8139pxe.lom?
8139pxe.lom大小為52k,是專用寫入主板Bios的,不要錯把寫入網卡的寫入bios!?
3)把b.bin寫入主板BIOS?
AWDFLASH b.bin /py /sn /r?
4)OK!?
不成功的原因可能有以下幾個:?
1)BIOS容量不夠用?
CBROM b.bin /d?
找REMAIN COMPRESS CODE SPACE一行,看是否夠64KB不夠的話可以用CBROM刪除一些LOGO之類的東西.?
2)bios類型是AMI的或不是標準AWDARD的,比如華碩和皇朝的一些主板就都不行,但是可以用其它工具,這里不一一介紹了。?
六、建立并配置WIN98無盤啟動影像文件?
1、運行服務器上開始菜單的“程序”——“3Com Boot Services”——“Boot Image Editor”,按提示執行“下一步”直到“完成”,并出現3Com Boot Image Edito對話框。?
2、將安裝工作站litenet115生成的軟盤插入服務器軟驅,選擇3Com Boot Image Editor窗口中Create a TCP/IP or PXE image file選項,在“image file name”欄中使用缺省路徑并加入文件名win98.img:“C:\Program Files\3Com\DynamicAccess boot services\win98.img”,選中options中的Writeable和Pre-OS兩個選項,點擊"ok"按鈕建立啟動影像文件。?
3、選擇3Com Boot Image Editor窗口中的Create a PXE menu boot file選項,點擊"add"圖標進入Edit Entry對話框,在image file文本框中輸入win98.img,然后點擊"ok"按鈕返回Create menu file對話框,在此對話框中點擊"save"按鈕進入Save menu file對話框,在文件名文本框中輸入win98.pxe,點擊“OK”,然后點擊“Save”保存返回,退出3Com Boot Image Edito對話框。?
4、運行開始菜單中“程序”——“3Com Boot Services”——“Bootptab Editor”,在出現的對話框中選擇“PXE”、“Open an existing”單選按鈕,并在下面的文本框中輸入C:\Program Files\3Com\DynamicAccess boot services\Bootptab,確定后進入BOOTPTAB Editor窗口。在窗口中選擇"Edit"菜單下的"Add Host"菜單項,進入Edit Host窗口。在“Name”中輸入 “user01”,在“Node”中輸入網卡的MAC地址如:00E04C500234,在“Image”文本框中輸入win98.pxe。點擊“確定”按鈕返回BOOTPTAB Editor窗口。選擇“File”菜單下的“Save”保存設置,然后關閉BOOTPTAB Editor窗口。?
七、在服務器上運行Vicomsoft DHCP Server,并在Status View窗口中點擊按鈕使其啟動服務(按鈕狀態為On),運行3Com TFTP Server并使其啟動服務(狀態為 Server started)。可以不運行3Com PXE Server。?
八、關閉工作站,取掉工作站的硬盤、軟驅、光驅。?
重啟進行工作站主板Bios設置,在STANDARD CMOS SETUP中,將硬盤設置為無,將軟驅設置為1.44M(軟驅設置為無會重啟),在BIOS FEATURES SETUP中把Boot Up Floppy Seek(開機軟驅尋道)設為Disable,有些主板還需要設置Boot First Lan(或者相似選項):Enable。?
重新啟動,按Shift+F10鍵出現PXE啟動設置框,選擇?
Network Boot Protocol:PXE?
Boot Order: Int 19h?
Show Config Message: Disable (不出現提示信息,Enable為有提示信息)?
按F4保存退出。?
九、安裝完成,工作站啟動進入無盤Win98。?
十、優缺點?
優點:?
1、不用安裝winnt server4.0+service park 6或win2000 server,減少安裝時間,如果使用正版,不用買昂貴的軟件及服務協議;?
2、沒有cannot find or load required file krnl386.exe問題;?
3、沒有tnt系列顯卡16色問題;?
4、沒有添加了文件和打印共享就出錯的問題;?
5、沒有修改工作站時間死機問題;?
6、沒有無法正常關機與重啟的問題;?
缺點:?
1、win98做服務器資源分配效率低,比如:?
工作站啟動時,服務器偶爾停頓;?
工作站運行大型游戲如紅警2、diablo2容易死機(不過還好,星際、帝國沒問題);?
工作站數量不能太多。?
此缺點無法彌補,可能使用高配置的電腦做服務器會好一點點(期望值別太高喲)。?
2、工作站用戶權限設置功能弱,容易造成系統被破壞。
總結
- 上一篇: STM8L驱动I2C类型的12864
- 下一篇: 怎样下载网页中.ts视频文件