幫助中心

當(dāng)前位置:首頁(yè) > 幫助中心 > U盤(pán)/移動(dòng)硬盤(pán)上運(yùn)行win7(VHD版)

U盤(pán)/移動(dòng)硬盤(pán)上運(yùn)行win7(VHD版)

日期:2011-05-01 | 時(shí)間:12:52
 

為什么要用VHD而不是直接用真實(shí)硬盤(pán)呢?因?yàn)椤奖?,用VHD的話,只要硬盤(pán)空間足夠,就可以放進(jìn)10個(gè)20個(gè)系統(tǒng)而不必考慮分區(qū)的問(wèn)題,每個(gè)系統(tǒng)只不過(guò)是一個(gè)VHD文件罷了。卸載也非常方便,直接把相應(yīng)的VHD刪除,然后再刪掉相應(yīng)的bcd引導(dǎo)項(xiàng)就完事。制作另一個(gè)新的移動(dòng)系統(tǒng)更是簡(jiǎn)單,把VHD復(fù)制到另一個(gè)移動(dòng)硬盤(pán),然后重建引導(dǎo),就一切OK。

 

對(duì)于不喜歡用VHD的同學(xué),真實(shí)硬盤(pán)做法也是一樣的。bcd引導(dǎo)項(xiàng)直接修改成引導(dǎo)移動(dòng)硬盤(pán)/U盤(pán)的win7就可以了。

 

如果安裝到U盤(pán)的話,首先U盤(pán)要夠大!其次完成后要安裝支持win7的fbwf(一定要裝!否則U盤(pán)很快就掛,論壇里有下載)

———————————————————————————————————————————————

首先要把WIN7安裝到VHD里,然后用這個(gè)VHD啟動(dòng)計(jì)算機(jī)并且運(yùn)行WIN7。這一步很容易,我就略過(guò)了,論壇里有相關(guān)帖子。

 

下面繼續(xù),把這個(gè)裝了WIN7的VHD移植到移動(dòng)硬盤(pán),然后用移動(dòng)硬盤(pán)啟動(dòng)計(jì)算機(jī),并且運(yùn)行VHD中的WIN7。

 

制作好的移動(dòng)版WIN7兼容性很好!我用這個(gè)移動(dòng)版WIN7啟動(dòng)了兩臺(tái)筆記本,聯(lián)想Y450和Dell的D630,完全沒(méi)有任何問(wèn)題;還啟動(dòng)了我的老臺(tái)式機(jī),01年的,P4 1.5G,512M內(nèi)存,USB1.1,bios無(wú)usb啟動(dòng)選項(xiàng)。唯一的麻煩是第一次啟動(dòng)新計(jì)算機(jī)時(shí),要重新安裝驅(qū)動(dòng)。移動(dòng)版win7的性能比本地的要略低,一是USB2.0的速度限制,二是VHD的讀寫(xiě)驅(qū)動(dòng)會(huì)稍微拖慢硬盤(pán)讀寫(xiě)速度,但是不會(huì)低太多,這個(gè)貼的最后,我會(huì)發(fā)本地win7和移動(dòng)win7的性能對(duì)比圖。

 

工具準(zhǔn)備

- 聯(lián)想Y450本本,已安裝Windows 7旗艦版,用來(lái)給移動(dòng)WIN7做引導(dǎo)并且修改win7.vhd的內(nèi)容(不一定要win7,反正能給移動(dòng)win7做引導(dǎo)和修改就行,比如WINPE3.0版)

- Win7.vhd,15G, 位于Y450 D:盤(pán)

- 移動(dòng)硬盤(pán),80G分為兩個(gè)分區(qū),分區(qū)一是其它系統(tǒng)的系統(tǒng)分區(qū),分區(qū)二是數(shù)據(jù)盤(pán)。

 

步驟

1. 啟動(dòng)Y450進(jìn)入Win7,打開(kāi)win7磁盤(pán)管理工具,附加vhd文件,把D:/win7.vhd附加到系統(tǒng)。成功后可以在計(jì)算機(jī)里看到一個(gè)新分區(qū),我給它分配的盤(pán)符是V:,所以V:盤(pán)里就是已經(jīng)預(yù)先安裝好的完整的win7系統(tǒng)文件。

 

2. 因?yàn)閁SB驅(qū)動(dòng)的關(guān)系,這個(gè)VHD上的win7從移動(dòng)硬盤(pán)上啟動(dòng)時(shí)會(huì)藍(lán)屏報(bào)錯(cuò):007B!所以下面要修改VHD win7的USB驅(qū)動(dòng)。


2.1 進(jìn)入 V:\windows\inf\ 文件夾,找到如下文件,依次雙擊打開(kāi),找到對(duì)應(yīng)的部分,修改內(nèi)容如下(紅色字符為增加的內(nèi)容,注意紅色的;號(hào)),然后保存覆蓋原文件:

 


usb.inf


;[SignatureAttributes]
;usbccgp.sys=SignatureAttributes.DRM
;usbhub.sys=SignatureAttributes.DRM

[StandardHub.AddService]
DisplayName = %StandardHub.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
;StartType = 3 ; SERVICE_DEMAND_START
StartType = 0 ; SERVICE_BOOT_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %\usbhub.sys
;LoadOrderGroup = Base
LoadOrderGroup = System Bus Extender

[CommonClassParent.AddService]
DisplayName = %GenericParent.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
;StartType = 3 ; SERVICE_DEMAND_START
StartType = 0 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %\usbccgp.sys
;LoadOrderGroup = Base
LoadOrderGroup = Boot Bus Extender

——————————————————————————————————————

usbport.inf

[ControlFlags]
;BasicDriverOk = *
;ExcludeFromSelect = *

;[SignatureAttributes]
;usbehci.sys=SignatureAttributes.DRM
;usbhub.sys=SignatureAttributes.DRM
;usbohci.sys=SignatureAttributes.DRM
;usbport.sys=SignatureAttributes.DRM
;usbuhci.sys=SignatureAttributes.DRM

;[SignatureAttributes.DRM]
;DRMLevel=1300

[EHCI.AddReg.NT]
HKR,,EnumPropPages32,,"usbui.dll,USBControllerPropPageProvider"
HKR,,Controller,1,01
;HKLM,System\CurrentControlSet\Services\usbehci,BootFlags,0x00010003,4

[EHCI.AddService]
DisplayName = %EHCIMP.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
;StartType = 3 ; SERVICE_DEMAND_START
StartType = 0 ; SERVICE_BOOT_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %\usbehci.sys
;LoadOrderGroup = Base
LoadOrderGroup = Boot Bus Extender

[OHCI.AddReg.NT]
HKR,,EnumPropPages32,,"usbui.dll,USBControllerPropPageProvider"
HKR,,Controller,1,01
;HKLM,System\CurrentControlSet\Services\usbohci,BootFlags,0x00010003,4

[OHCI.AddService]
DisplayName = %OHCIMP.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
;StartType = 3 ; SERVICE_DEMAND_START
StartType = 0 ; SERVICE_BOOT_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %\usbohci.sys
;LoadOrderGroup = Base
LoadOrderGroup = Boot Bus Extender

[UHCI.AddReg.NT]
HKR,,EnumPropPages32,,"usbui.dll,USBControllerPropPageProvider"
HKR,,Controller,1,01
;HKLM,System\CurrentControlSet\Services\usbuhci,BootFlags,0x00010003,4


[UHCI.AddService]
DisplayName = %UHCIMP.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
;StartType = 3 ; SERVICE_DEMAND_START
StartType = 0 ; SERVICE_BOOT_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %\usbuhci.sys
;LoadOrderGroup = Base
LoadOrderGroup = Boot Bus Extender

[ROOTHUB.AddReg.NT]
HKR,,EnumPropPages32,,"usbui.dll,USBHubPropPageProvider"
;HKLM,System\CurrentControlSet\Services\usbhub,BootFlags,0x00010003,4

[ROOTHUB.AddService]
DisplayName = %ROOTHUB.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
;StartType = 3 ; SERVICE_DEMAND_START
StartType = 0 ; SERVICE_BOOT_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %\usbhub.sys
;LoadOrderGroup = Base
LoadOrderGroup = System Bus Extender

————————————————————————————————————

usbstor.inf

[USBSTOR.AddService]
DisplayName = %USBSTOR.SvcDesc%
ServiceType = 1
;StartType = 3
StartType = 0
ErrorControl = 1
ServiceBinary = %\USBSTOR.SYS
LoadOrderGroup = System Bus Extender

 


2.2 進(jìn)入 v:\Windows\System32\DriverStore\FileRepository\,

找到名為usb.inf_……的文件夾,然后把剛才改好的usb.inf文件復(fù)制到此處覆蓋原文件;

然后繼續(xù)找名為usbport.inf_……的文件夾,用改好的usbport.inf文件覆蓋此處的原文件;

繼續(xù)找名為usbstor.inf_……的文件夾,用改好的usbstor.inf覆蓋此處的原文件。
(注意:這個(gè)位置的文件夾和文件所有權(quán)屬于TrustedInstaller,直接改是不行的,首先要修改所有權(quán)為登錄用戶,并且賦予完全權(quán)限,才可以修改。修改步驟請(qǐng)自己網(wǎng)上搜。)

 


2.3 文件改好了,接下來(lái)要改注冊(cè)表 V:\windows 的注冊(cè)表。修改注冊(cè)表有很多方法,我下面用的是最簡(jiǎn)單的一種

 

2.3.1 打開(kāi)寫(xiě)字板,把如下代碼復(fù)制到寫(xiě)字板中,保存為usb1.reg(注意不是usb1.reg.txt?。?/P>

 

REGEDIT4

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\UsbBootWatcherService]
"Type"=dword:00000010
"Start"=dword:00000002
"ErrorControl"=dword:00000000
"ImagePath"=hex(2):25,53,79,73,74,65,6d,52,6f,6f,74,25,5c,73,79,73,74,65,6d,33,\
32,5c,55,73,62,42,6f,6f,74,57,61,74,63,68,65,72,2e,65,78,65,00
"DisplayName"="Usb Boot Watcher Service"
"ObjectName"="LocalSystem"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SafeBoot\Minimal\UsbBootWatcherService]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SafeBoot\Network\UsbBootWatcherService]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\pciide]
"Start"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\intelide]
"Start"=dword:00000000

 

2.3.2 打開(kāi)寫(xiě)字板,把如下代碼復(fù)制到寫(xiě)字板中,保存為usb2.reg

 

Windows Registry Editor Version 5.00

 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbccgp]
"Group"="Boot Bus Extender"
"Start"=dword:00000000[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbehci]
"Group"="Boot Bus Extender"
"Start"=dword:00000000[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbhub]
"Group"="Boot Bus Extender"
"Start"=dword:00000000[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbohci]
"Group"="Boot Bus Extender"
"Start"=dword:00000000[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR]
"Start"=dword:00000000
"Group"="Boot Bus Extender"[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbuhci]
"Group"="Boot Bus Extender"
"Start"=dword:00000000

2.4 關(guān)機(jī)重啟進(jìn)入V:盤(pán)的Win7,即本地的VHD Win7。找到2.3中創(chuàng)建的usb1.reg和usb2.reg文件,分別雙擊運(yùn)行,文件中的內(nèi)容即被寫(xiě)入VHD Win7的注冊(cè)表。

 

2.5 重啟,進(jìn)入本地Windows7。

 

3 在步驟2中,USB驅(qū)動(dòng)已經(jīng)改好了,現(xiàn)在win7.vhd中的系統(tǒng)已經(jīng)可以在移動(dòng)硬盤(pán)中運(yùn)行了。插上移動(dòng)硬盤(pán),把D:\win7.vhd文件復(fù)制到G:\ (移動(dòng)硬盤(pán)數(shù)據(jù)盤(pán),事先準(zhǔn)備好大于15G的空閑空間)

 

4 不要急著用移動(dòng)硬盤(pán)去啟動(dòng)計(jì)算機(jī),因?yàn)椤龑?dǎo)還沒(méi)有建立!下面我們來(lái)手動(dòng)給G:\win7.vhd建立引導(dǎo)。


4.1 把本地Windows7的系統(tǒng)盤(pán)中boot文件夾和bootmgr文件完整復(fù)制到移動(dòng)硬盤(pán) F:\ (這相當(dāng)于移動(dòng)硬盤(pán)的C盤(pán))根目錄下


4.2 進(jìn)入 c:\windows\system32 文件夾,把如下三個(gè)文件復(fù)制到 F:\boot\ 文件夾下:
bootsect.exe —— 用來(lái)給移動(dòng)硬盤(pán)MBR寫(xiě)引導(dǎo)信息
bcdedit.exe —— 用來(lái)建立、修改bcd引導(dǎo)項(xiàng)
bcdboot.exe —— 用來(lái)復(fù)制bcd引導(dǎo)項(xiàng)


4.3 運(yùn)行cmd進(jìn)入命令行,依次運(yùn)行如下命令:

 


bcdboot c:\windows /s f: —— 把本地Windows7的引導(dǎo)項(xiàng)復(fù)制到F:盤(pán)(即移動(dòng)硬盤(pán))
bootsect /nt60 f: /mbr —— 這個(gè)命令將把nt60版的引導(dǎo)信息寫(xiě)入移動(dòng)硬盤(pán)的mbr!因此一定要小心別搞錯(cuò)了盤(pán)符!

bcdedit /store f:\boot\bcd /copy {default} /d "Windows 7 VHD USB"

回車后返回這種格式的GUID, {********-****-****-****-************},后續(xù)命令中我用{GUID}代替

bcdedit /store f:\boot\bcd /set {GUID} device vhd=[g:]\win7.vhd

bcdedit /store f:\boot\bcd /set {GUID} osdevice vhd=[g:]\win7.vhd

bcdedit /store f:\boot\bcd /set {GUID} detecthal on —— 打開(kāi)detecthal參數(shù),對(duì)移動(dòng)win7的兼容性非常重要,作用是啟動(dòng)時(shí)強(qiáng)制檢測(cè)hal(即俗稱的電源管理模式,做過(guò)系統(tǒng)封裝的都知道這東西的重要性)。xp就沒(méi)有這個(gè)功能……

bcdedit /store f:\boot\bcd /displayorder {GUID} /addlast

bcdedit /store f:\boot\bcd /timeout 5

 

這改那,終于都改好了。OK,現(xiàn)在一切就緒。

5 關(guān)機(jī),用移動(dòng)硬盤(pán)啟動(dòng)Y450吧……

 

6 還可以用它來(lái)啟動(dòng)Dell D630,嘿嘿……第一次啟動(dòng)時(shí)Windows7會(huì)自動(dòng)安裝驅(qū)動(dòng)。

 

7 還可以用它來(lái)啟動(dòng)01年的老爺機(jī),P4 1.5G,512M內(nèi)存,USB1.1,bios無(wú)usb啟動(dòng)選項(xiàng),我插上移動(dòng)硬盤(pán)后,從硬盤(pán)項(xiàng)可以看到移動(dòng)硬盤(pán),從它啟動(dòng)后順利進(jìn)入WIN7 USB VHD系統(tǒng)!當(dāng)然因?yàn)閁SB1.1的關(guān)系,啟動(dòng)時(shí)間5分鐘……運(yùn)行速度嘛,能感覺(jué)到明顯的停滯感……沒(méi)辦法,這老爺機(jī)出廠的時(shí)候USB2.0還不成氣候呢。還有網(wǎng)卡,聲卡,顯卡驅(qū)動(dòng)全都不能識(shí)別……太老啦!

 

8 還可以用它來(lái)啟動(dòng)明年的主流機(jī),USB3.0 SSD固態(tài)硬盤(pán),豈不是比本地硬盤(pán)還快?!流口水YY中……

 

注意:關(guān)于Windows 7版本的選擇,第一,一定要旗艦版,因?yàn)橹挥衅炫灠娌胖С諺HD!第二,要考慮激活Windows 7的問(wèn)題,因?yàn)楫?dāng)你在其它機(jī)器上啟動(dòng)這個(gè)系統(tǒng),因?yàn)橛布牧耍琖indows會(huì)要求你重新激活……如果你的是特定的OEM版,很可能啟動(dòng)不了另一臺(tái)計(jì)算機(jī)。

(責(zé)任編輯:m.chanjuzi.cn)

大白菜超級(jí)U盤(pán)啟動(dòng)盤(pán)制作工具