一、制作256MB版USB@XP啟動閃存盤
?。ㄒ唬蕚涔ぷ?/P>
要制作一個XP@USB啟動盤其實一點也不困難,只需有一個PE-Bulider工具軟件,一個Widnows Server 2003 SP1安裝文件包,一張Windows XP安裝光盤(或一個已安裝好的XP操作系統)便可成事。
需要的具體材料如下:
1.USB閃存盤:
如果是最基本的安裝模式,256MB的容量已經足夠(圖1)。另外,所用的電腦系統需有256MB的系統主內存。
圖 1
2.PE-Buider:
相信不少資深的電腦用戶都知道BartPE公司,利用BartPE開發的PE-Buider程序(圖2),用戶可以將XP操作系統安裝到一張CD或DVD光盤中,實現無硬盤環境下運行Windows XP。最新版本的PE-Buider現在已支持將XP系統安裝到USB閃存盤中運行,制作步驟跟制作光盤版XP啟動盤相差少許,所以PE-Buider可以說是自制XP系統USB啟動盤的靈魂所在。
圖 2
3.Windows Server 2003 SP1升級文件包:
Windows Server 2003 SP1本來是提供給Windows Server 2003操作系統升級用的,但該升級包中有兩個文件(setupldr.bin和ramdisk.sys),卻造就了USB閃存盤成功啟動電腦的可行性。setupldr.bin及ramdisk.sys是以壓縮文件的形式存在于SP1升級包中,要使用前我們需先將它們解壓縮提取出來。
Windows Server 2003 SP1的官方下載網址為:(文件大小約323.5MB)
http://support.microsoft.com/kb/889100/
4.XP操作系統文件來源
Windows XP操作系統的文件來源,可以來自一個已經安裝到硬盤上的XP系統,又或是一張XP的安裝光盤。雖然PE-Buider可以制作出支持中文的XP啟動盤,但為了簡化和節約空間起見,建議使用英文版的XP操作系統或安裝光盤進行此習作。
?。ǘy試主板能否從USB設備啟動
想要制作XP@USB啟動閃存盤,最困難的是不知道主板能否支持從USB設備啟動系統。如果主板BIOS中沒有這個啟動項目,用戶當然不能通過USB閃存盤啟動電腦。不過,就算主板BIOS中有這項設置,也不一定成功。原因是從USB設備啟動分成模擬硬盤啟動和模擬軟盤啟動兩種方式,加上與其他硬件的兼容性問題,如果用戶的USB閃存盤與某個品牌的主板不兼容,USB啟動功能也就無法使用。
基于上述兼容性的問題,在將XP操作系統安裝到USB閃存盤之前,我們最好先作一個簡單的測試,看看你的USB閃存盤是否可在所用的主板上引導開機。
測試方式是利用美國惠普(HP)公司設計的Windows-based Format Utility for HP Drive Key工具軟件,將USB閃存盤格式化成一個DOS形式的啟動盤。如果該USB啟動盤能夠引導進入DOS系統,則該USB閃存盤有很大機會完成制作XP啟動盤的操作。
Windows-based Format Utility for HP Drive Key的國內下載網址:
http://dl.ttud.com:8068/200507/1/HPUSBFW.rar
從網上下載此軟件并將其安裝后啟動,如果電腦中已插有USB閃存盤,程序很快就會檢測出來。然后在程序主操作界面“File System”一欄選擇“FAT”文件系統,再勾選“Create a DOS startup disk”(創建一張DOS啟動盤)一項,最后點擊“Start”按鈕進行格式化(圖3)。在進行這項操作前,我們還要先準備好一張DOS啟動磁盤(例如Windows98啟動盤),目的是讓程序從中提取DOS的系統文件。
圖 3
當DOS版的USB啟動閃存盤制作成功后,重新啟動電腦并按Del鍵進入主板BIOS設置窗口,將BIOS中的系統引導設備改成USB優先。然后重新啟動電腦,如果能夠成功啟動USB閃存盤上的DOS操作系統,我們即可進入下一步驟。
?。ㄈ蕚鋝etupldr.bin和ramdisk.sys文件
前面提到我們需要Windows Server 2003 SP1升級包中的兩個文件--setupldr.bin和ramdisk.sys,但這兩個文件是以壓縮形式存在于Windows Server 2003 SP1升級包內的,故首先我們要把它們解壓出來。
1.提取setupldr.bin文件
從網上下載得到的Windows Server 2003 SP1是一個單一的.exe可執行文件,直接雙擊只會將它安裝在系統中(若你使用的是XP操作系統,其實它是無法安裝的)。由于我們只是想打開它,故可在XP操作系統的命令行模式(桌面→開始→運行→cmd)中用“-x”的參數將它解壓縮,例如:
Windows Server 2003-K889101-SP1-x86-chs.exe -x
?。ㄗⅲ浩渲蠾indows Server 2003-K889101-SP1-x86-chs.exe是SP1升級包文件的名稱,可能會因用戶所下載的版本不同而有異)。
此時會彈出一個對話框讓用戶選擇SP1升級包文件解壓縮后的保存路徑(例如:d:/w23sp1,圖4)。解壓完成后,在d:/w23sp1/i386文件夾中找到setupldr.bin文件,并復制到另一個文件夾中單獨保存。
圖 4
2.提取ramdisk.sys
在解壓出來的SP1文件中,即本例d:/w23sp1文件夾內的文件,有一個叫ramdisk.sy_的文件,它本身也是一個壓縮文件。想對它解壓縮,也要在命令行模式下進行(圖5)。
圖 5
expand -r ramdisk.sy_
解壓出來的是一個名為ramdisk.sys的文件,請將它保存到另一個文件夾中。
現在,setupldr.bin和ramdisk.sys兩個文件都已解壓出來,其他存放于d:/w23sp1文件夾內的文件已經沒有利用價值,可以全部刪掉。
?。ㄋ模﹩覲E-Buider
目前PE-Buider工具軟件的最新版本是3.1.10a,下載后要先進行安裝,安裝后可在Windows XP的“程序”中運行它。
啟動PE-Buider后,程序首先會自動掃描系統內可用的Windwos源文件。可用的源文件包括:XP的安裝光盤或硬盤上本身已安裝的XP操作系統。選好源文件后,在PE-Buider的主操作界面上,我們可于“Output”一欄填寫XP啟動盤文件的保存文件夾名稱(本例為BartPE)?!癇artPE”子文件夾將建立到c:/pebuilder3110a文件夾中(即PE-Buider軟件的安裝路徑)。另外,由于我們不是制作光盤版的XP啟動盤,因此,在“Media Output”一欄可點選“None”。當然,如果用戶想要制作一張光盤版的XP啟動盤,則應點選“Create ISO image”或“Burn to CD/DVD”項目,直接刻錄成啟動光盤(圖6)。
圖 6
完成設置后,在PE-Buider的主操作界面上單擊Build按鈕,便開始進行輸出工作。輸出過程一般都沒有什么問題,耗時不過10多分鐘,輸出的文件大小總共有156MB。
?。ㄎ澹⑤敵鑫募險SB閃存盤
進行到這個步驟,我們需要使用前面從Windows Server 2003 sp1升級包中提取出來的setupldr.bin及ramdisk.sys文件。
在c:/pebuilder3110a文件夾中,新增一個名為“srsp1”的子文件夾,將setupldr.bin和ramdisk.sys文件復制到里面。之后,在c:/pebuilder3110a文件夾中,找到一個可執行文件pe2usb.cmd。在XP操作系統的命令行模式下,執行如下指令。
Pe2usb.cmd -f x:
其中“-f”指進行格式化操作,而“X:”則代表USB閃存盤的盤符代號(圖7)。接下去,根據提示鍵入“YES”確認格式化并導出XP系統到USB閃存盤。經過8-10分鐘時間后,導出過程便會完成,用戶看到“Done”的字樣,即可退出命令行模式。至此,XP系統USB啟動閃存盤宣告制作成功,用戶只要在主板BIOS中設置好從USB設備引導開機(圖8),USB閃存盤便可啟動進入Windwos XP操作系統。
圖 7
圖 8
?。┰黾痈喙δ懿寮?
在本文的例子中,USB閃存盤所用掉的存儲空間只有150多MB,所以啟動出來的XP系統(或者應該說是BartPE系統)只有一些很基本的功能,例如網絡、寫字板、畫筆、計算器、任務管理器等等。
想讓USB版XP的功能更豐富,在上一步進行輸出前,我們可在PE-Buider的主操作界面上單擊“Plug-ins”按鈕啟動更多的功能插件(圖9)。不過,這些插件要從網上下載,例如BartPE公司官方網頁或者那些專門發布BartPE Plug-ins的網站。插件的安裝一般都很簡單,只要細心閱讀網頁上的提示,制作應該沒有什么難度。
圖 9
安裝插件后,USB版XP的大小無疑會增加一些,但用戶卻能得到更多的實用功能,如光盤刻錄、殺毒、防間諜軟件、上網、備份等等無法在這里一一訴說的功能。
二、制作一個完整版XP@USB啟動閃存盤
上面已經介紹怎樣將PE-builder版本的XP操作系統安裝到USB閃存盤上。雖然制作成功的USB閃存盤能夠引導并以XP系統核心運行,但畢竟這個方案至始至終只是一個BartPE的版本,在功能和操作方面跟實際意義上的硬盤啟動版XP系統仍有一段距離。對于真正想將XP操作系統移植到USB存儲設備中的用戶來說,這絕對不是理想答案。那么,將完整的XP系統安裝到USB閃存盤或其他USB設備使用,究竟可不可行?告訴大家,答案是可行的,至于詳情,就請一起參看筆者在下面介紹的XP@USB實戰報告。
?。ㄒ唬腢SB設備啟動硬盤版XP失敗的原因
其實,可能已經有一些朋友嘗試過將XP操作系統直接安裝到大容量的USB閃存盤、USB讀卡器中的存儲卡或USB移動硬盤中,但結果都以失敗者居多。失敗的原因主要是XP操作系統啟動后,會把USB閃存盤重新識別成外置的USB存儲器而非本機磁盤,使系統產生USB閃存盤身份沖突的問題,從而在系統啟動時出現藍屏錯誤畫面。
盡管失敗的嘗試居多,但成功的案例也有不少。網上有一位德國朋友Dietmar就在一些論壇中分享了他的成功心得。而在回貼中,不少網友按照Dietmar的方法也成功地將XP系統完整安裝到USB閃存盤上。
由于Dietmar在網上披露的成功心得是以討論形式存放的,里面夾雜著另外一些網友的回應,以及幾種不同的方案,閱讀起來相當凌亂,而且當中有些地方說得相當含糊,讀者可能要連看幾十頁后才能看出端倪,因此筆者特意將當中最簡單且確實可行的Tutorial 2方案介紹給大家,并整理出以下報告供各位參考。
?。ǘ嶋H操作過程
1.準備一個經過格式化后的空白硬盤,將Windows XP with SP1操作系統“新鮮地”安裝在硬盤當中(必須安裝在第一個分區)。在安裝前,若主機的CPU為具備超線程(HyperThreading)技術的處理器,用戶必須先在主板BIOS中將此功能關閉(Disabled)。同時,用來安裝Windows XP with SP1的電腦不能裝有其他硬盤,又或是連接任何的USB設備,總之系統的硬件配置越簡單越好,至于光驅和軟驅則可正常連接。安裝用的XP光盤要帶有SP1補丁文件包,但卻不能有SP2補丁文件包的存在。有SP2的存在,肯定會在啟動時出現藍屏錯誤畫面。如果大家有心安裝SP2補丁包,則請自己參考Dietmar在網上論壇中提供的其他方案。
為什么要關閉處理器的“超線程”功能,Dietmar并沒有作詳細解釋。但測試中筆者發現,如果沒有將之關閉,結果確實是不能使XP@USB系統啟動成功。但是,若XP@USB系統已經安裝好,用戶使用時再在主板BIOS中將“超線程”技術打開,則不會影響到XP@USB系統的啟動和運行。
2.將XP安裝到硬盤上后,不要為系統安裝其他硬件的驅動程序,只需使用XP安裝光盤本身提供的驅動程序即可。尤其是主板芯片組方面,絕對不能安裝Intel等廠商所提供的驅動程序,充其量只能安裝網卡和聲卡的驅動程序。如有需要,其他硬件的驅動程序必須在成功完成XP@USB啟動后再進行安裝。
3.在新安裝的XP系統中,將虛擬內存設為0,方法是在桌面“我的電腦”圖標上單擊鼠標右鍵,在隨后出現的快捷功能菜單中點選“屬性”一項。彈出“系統屬性”窗口后,在“高級”標簽頁的“性能”一項中依次點擊“設置”→“高級”→“虛擬內存”→“更改”,勾選“無分頁文件”,再點擊“確定”即可(圖10)。
圖 10
4.完成以上準備工作后,插入想用來安裝XP系統的USB閃存盤或USB硬盤,讓系統成功識別出該USB設備。
5.在系統插著USB閃存盤的情況下,運行注冊表編輯器(在Windows桌面依次點擊“開始”→“運行”→“regedit”),準備修改注冊表文件。首先要改的是四個注冊表項目。
?。?)在HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/usbehci的注冊表項目中,將名為“Start”的DWord值由3改為0,將名為“Group”的字符串由“Base”改為“Boot Bus Extender”,其余不變。
這是一個系統支持USB 2.0時才會出現的注冊表項,在本文的例子中,由于準備制作的XP SP1@USB操作系統并不支持USB 2.0,所以此步驟大家可以跳過不看。
?。?)在HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/usbuhci的項中,將“Start”DWORD值由3改為0,將“Group”字符串由“Base”改為“Boot Bus Extender”(圖11),其余不變。
圖 11
?。?)在HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/usbhub的項中,將“Start”DWORD值由3改為0,將“Group”字符串由“Base”改為“Boot Bus Extender”,其余不變。
?。?)在HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/USBSTOR的項中,將“Start”DWORD值由3改為0,將“Group”字符串由“Base”改為“Boot Bus Extender”,其余不變。
6.修改了上面四個大致相同的注冊表項目后,現在還要創建兩個全新的注冊表項。
(1)在HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Control/CriticalDeviceDatabase/注冊表項目下,新建一個名為“usb#root_hub”的子項,并在里面創建兩個字符串:
Service=usbhub
ClassGUID={36FC9E60-C465-11CF-8056-444553540000}
注意:須包括“{” 及“ }”的大括號。
?。?)在HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Control/CriticalDeviceDatabase/注冊表項目下,新建一個名為“usb#root_hub20”的子項,并在里面創建兩個字符串(圖12)。
圖 12
Service=usbhub
ClassGUID={36FC9E60-C465-11CF-8056-444553540000}
注意:須包括“{” 及“}”的大括號。
7.建立了上面兩個全新的注冊表項目后,另外還有兩個新的注冊表項目需要用戶手工創建。但在創建前,我們得先在注冊表文件中找出一些資料。
(1)在HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Enum/USB注冊表項目下,從其中一個子項找出準備安裝XP系統的USB設備的“Vid_&Pid_名字”。
“VID_&Pid_名字”的結構是Vid_xxxx&Pid_xxxx,當中x代表數字。如本例中,“Vid_&Pid_名字”是Vid_05e3&Pid_0702(圖13),將它用筆記錄下來,留待下一步驟使用。
圖 13
?。?)在HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Enum/USBSTOR注冊表項目下,從里面的一個子項中找出HardwarelD這個字符串,將字符串第一行的文字符號完整記錄下來。本例中,要記下的文字符號是:USBSTOR/DiskFUJITSU_MHF2043AT_0811(圖14),同時將當中的“/”符號改為“#”,所以應改為USBSTOR#DiskFUJITSU_MHF2043AT_0811。
圖 14
注意:當中任何一個符號,例如“.”和“_”符號不可有任何缺漏。
8.記下前面步驟獲取的資料后,現在要新建兩個注冊表項目。
(1)在HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Control/ CriticalDeviceDatabase/注冊表項目下新增一個子項,子項的名字是從“Vid_&Pid_名字”修改而成的,本例中為USB#Vid_05e3&Pid_0702。然后,在該子項中新增兩個字符串(圖15)。
圖 15
Service=usbstor
ClassGUID={36FC9E60-C465-11CF-8056-444553540000}
(2)在HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Control/ CriticalDeviceDatabase/注冊表項目下新增一個子項,子項的名字取自第7步的HardwarelD。本例中是USBSTOR#DiskFUJITSU_MHF2043AT_0811。然后,在該子項中新建兩個字符串(圖16)。
圖 16
ClassGUID={4D36E967-E325-11CE-BFC1-08002BE10318}
Service=disk
注意:在以上所有針對注冊表文件進行的修改中,字母大小寫必須完全正確。
9.在HKEY_LOCAL_MACHINE/SYSTEM/注冊表項目下,將子項MountedDevices及其里面的東西全部刪掉(圖17)。
圖 17
10.在HKEY_LOCAL_MACHINE/SYSTEM/Setup注冊表項目下,將字符串SystemPartition刪除(圖18)。
圖 18
11.檢查HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/USBSTOR注冊表項目,確定字符串“Start”被設置為0。在“USBSTOR”項目上單擊鼠標右鍵,選擇“權限”,設置不讓操作系統在這里再進行任何更改。方法是在組中點選“SYSTEM”,并在“權限”一欄勾選“拒絕”(圖19)。
圖 19
之所以進行此設置,是為了避免系統將Start字符串改回“3”。若改回3,XP啟動時就會出現藍屏錯誤。不過,當Start字符串為O時,XP將不再自動檢測和啟用其他USB設備,這也是XP@USB方案最大的缺憾。網上介紹的補救方法是,用戶想使用其他USB設備時,可將Start字符串改成3,用完謹記將之改成0,否則下次從USB設備啟動XP便會失敗。
12.以上所有設置完成后,關閉這個新安裝的XP操作系統,千萬不要用它啟動電腦。
13.將剛才裝好XP的硬盤取下來,并裝到另一臺正常使用XP操作系統的電腦中,用另一個XP操作系統引導(切記不能讓剛才新裝的硬盤啟動電腦)。進入桌面后,找到新裝XP的硬盤中,將WINDOWS/System32/Config文件夾下后綴名為.sav、.log及.evt的所有文件刪除。
14.打開新裝XP的硬盤根目錄下的boot.ini文件,檢查是否與以下資料相同或相近:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)/WINDOWS
[Operating systems]
multi(0)disk(0)rdisk(0)partition(1)/WINDOWS="Microsoft Windows XP PRofessional"/fastdetect
15.利用HP USB Disk Storage Format Tool閃存盤格式化工具軟件,將準備用來安裝XP的USB閃存盤或USB移動硬盤格式化,可選擇FAT、FAT32或NTFS任何一種文件格式,但注意不要勾選“Create a DOS startup disk”一項(圖20)。
圖 20
16.用一般的復制/粘貼法,將裝有這個特別版XP系統的硬盤分區上的所有文件復制到USB設備。注意,Recycle及System Volume Information兩個文件夾不要復制。尤其不能夠將System Volume Information的內容復制進去,因為途中系統會拒絕而使復制中斷。
17.完成以上所有步驟后,在主板BIOS中設置優先從USB設備引導系統。然后用USB閃存盤啟動電腦,因為是第一次嘗試的緣故,最好先將其他硬盤拔掉,保持安裝XP時原有的硬件配置!若XP@USB能夠順利啟動,反復運行多次后,再安裝其他有必要的硬件驅動程序。
?。ㄈy試結果
筆者自己在換過一個USB存儲器及多次的啟動嘗試后,并進入XP的安全模式解決了一些硬件問題,最終XP@USB能夠正常啟動使用,效果與正常安裝XP系統到硬盤上沒有多大分別。同時,功能方面,USB版XP系統內的大部分功能如硬盤版XP系統般都可正常使用。速度方面,由于筆者使用的是一個低速的USB 1.1標準存儲器,且不支持USB2.0的主機,所以感覺上是慢了一點,但仍可接受。
筆者建議用戶使用1GB容量以上的USB存儲器(目前市場上便宜的1GB閃存盤價格不到200元),這樣可避開USB存儲器不能Set Active的問題。另外,由于XP的安裝在沒有分頁文件的情況下已經超過1GB容量,所以1GB以上容量的USB設備在安裝時較為方便。當然,如果用戶手上的閃存盤容量較小,想讓XP安裝后的體積縮小,可利用nLite之類的工具軟件預先制作一個精簡版的XP再進行安裝。
正常使用的XP@USB系統,最好不要進行Windows Update在線升級,因為可能會使XP@USB無法啟動,尤其是升級SP2補丁包。如果用戶出于安全上網需要確實想升級SP2,則請參考Dietmar在網上論壇的相關報告。
最后,也是最重要的一點,閃存盤或USB讀卡器中的存儲卡這類Flash存儲設備其實并不適合反復進行引導啟動,原因是會影響閃存盤或存儲卡的壽命。
新聞熱點
疑難解答