资源描述:
《u盘windows 7操作系统》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
WIN7@USB攻略:把Windows7旗舰版装到移动硬盘/U盘(VHD版)2009-11-2818:51真正的移动版WIN7,在移动硬盘/U盘上运行的WIN7为什么要用VHD而不是直接用真实硬盘呢?因为——方便,用VHD的话,只要硬盘空间足够,就可以放进10个20个系统而不必考虑分区的问题,每个系统只不过是一个VHD文件罢了。卸载也非常方便,直接把相应的VHD删除,然后再删掉相应的bcd引导项就完事。制作另一个新的移动系统更是简单,把VHD复制到另一个移动硬盘,然后重建引导,就一切OK。——————————————————————————————————我在前一个贴里讲了如何把WIN7安装到VHD里,然后用这个VHD启动计算机并且运行WIN7。现在我会继续这个攻略,把这个装了WIN7的VHD移植到移动硬盘,然后用移动硬盘启动计算机,并且运行VHD中的WIN7。(U盘也可以!只要它够大!)制作好的移动版WIN7兼容性非常好,比我以前做的移动XP要更好!我用这个移动版WIN7启动了两台笔记本,联想Y450和Dell的D630,完全没有任何问题。唯一的麻烦是第一次启动新计算机时,要重新安装驱动。移动版win7的性能比本地的要略低,一是USB2.0的速度限制,二是VHD的读写驱动会稍微拖慢硬盘读写速度,但是不会低太多,这个贴的最后,我会发本地win7和移动win7的性能对比图。下面攻略开始:工具准备 -联想Y450本本,已安装Windows7旗舰版(或者WINPE3.0版),用来给移动WIN7做引导 -Win7.vhd,15G,位于Y450D:盘 -移动硬盘,80G分为两个分区,分区一是移动XP的系统分区,分区二是数据盘。步骤 1.启动Y450进入Win7,打开win7磁盘管理工具,附加vhd文件,把D:/win7.vhd附加到系统。成功后可以在计算机里看到一个新分区,我给它分配的盘符是V:,所以V:盘里就是已经预先安装好的完整的win7系统文件。 2.因为USB驱动的关系,这个VHD上的win7从移动硬盘上启动时会蓝屏报错:007B!所以下面要修改VHDwin7的USB驱动。 2.1进入V:windowsinf文件夹,找到如下文件,依次双击打开,找到对应的部分,修改内容如下(黄色背景红色字符为增加的内容),然后保存覆盖原文件: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_STARTStartType=0;SERVICE_BOOT_STARTErrorControl=1;SERVICE_ERROR_NORMALServiceBinary=%12%usbhub.sys;LoadOrderGroup=BaseLoadOrderGroup=SystemBusExtender[CommonClassParent.AddService]DisplayName =%GenericParent.SvcDesc%ServiceType =1 ;SERVICE_KERNEL_DRIVER;StartType =3 ;SERVICE_DEMAND_STARTStartType =0 ;SERVICE_DEMAND_STARTErrorControl =1 ;SERVICE_ERROR_NORMALServiceBinary=%12%usbccgp.sys;LoadOrderGroup=BaseLoadOrderGroup=BootBusExtender——————————————————————————————————————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,SystemCurrentControlSetServicesusbehci,BootFlags,0x00010003,4[EHCI.AddService]DisplayName=%EHCIMP.SvcDesc%ServiceType=1;SERVICE_KERNEL_DRIVER;StartType=3;SERVICE_DEMAND_STARTStartType=0;SERVICE_BOOT_STARTErrorControl=1;SERVICE_ERROR_NORMALServiceBinary=%12%usbehci.sys;LoadOrderGroup=BaseLoadOrderGroup=BootBusExtender[OHCI.AddReg.NT]HKR,,EnumPropPages32,,"usbui.dll,USBControllerPropPageProvider"HKR,,Controller,1,01;HKLM,SystemCurrentControlSetServicesusbohci,BootFlags,0x00010003,4[OHCI.AddService]DisplayName=%OHCIMP.SvcDesc%ServiceType=1;SERVICE_KERNEL_DRIVER;StartType=3;SERVICE_DEMAND_STARTStartType=0;SERVICE_BOOT_STARTErrorControl=1;SERVICE_ERROR_NORMALServiceBinary=%12%usbohci.sys;LoadOrderGroup=BaseLoadOrderGroup=BootBusExtender [UHCI.AddReg.NT]HKR,,EnumPropPages32,,"usbui.dll,USBControllerPropPageProvider"HKR,,Controller,1,01;HKLM,SystemCurrentControlSetServicesusbuhci,BootFlags,0x00010003,4[UHCI.AddService]DisplayName=%UHCIMP.SvcDesc%ServiceType=1;SERVICE_KERNEL_DRIVER;StartType=3;SERVICE_DEMAND_STARTStartType=0;SERVICE_BOOT_STARTErrorControl=1;SERVICE_ERROR_NORMALServiceBinary=%12%usbuhci.sys;LoadOrderGroup=BaseLoadOrderGroup=BootBusExtender[ROOTHUB.AddReg.NT]HKR,,EnumPropPages32,,"usbui.dll,USBHubPropPageProvider";HKLM,SystemCurrentControlSetServicesusbhub,BootFlags,0x00010003,4[ROOTHUB.AddService]DisplayName=%ROOTHUB.SvcDesc%ServiceType=1;SERVICE_KERNEL_DRIVER;StartType=3;SERVICE_DEMAND_STARTStartType=0;SERVICE_BOOT_STARTErrorControl=1;SERVICE_ERROR_NORMALServiceBinary=%12%usbhub.sys;LoadOrderGroup=BaseLoadOrderGroup=SystemBusExtender————————————————————————————————————usbstor.inf[USBSTOR.AddService]DisplayName=%USBSTOR.SvcDesc%ServiceType=1;StartType=3StartType=0ErrorControl=1ServiceBinary=%12%USBSTOR.SYSLoadOrderGroup=SystemBusExtender 2.2进入v:WindowsSystem32DriverStoreFileRepository,找到名为usb.inf_……的文件夹,然后把刚才改好的usb.inf文件复制到此处覆盖原文件;然后继续找名为usbport.inf_……的文件夹,用改好的usbport.inf文件覆盖此处的原文件;继续找名为usbstor.inf_……的文件夹,用改好的usbstor.inf覆盖此处的原文件。(注意:这个位置的文件夹和文件所有权属于TrustedInstaller,直接改是不行的,首先要修改所有权为登录用户,并且赋予完全权限,才可以修改。修改步骤请自己网上搜。) 2.3文件改好了,接下来要改注册表V:windows的注册表。修改注册表有很多方法,我下面用的是最简单的一种 2.3.1打开写字板,把如下代码复制到写字板中,保存为usb1.reg(注意不是usb1.reg.txt!)REGEDIT4[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesUsbBootWatcherService]"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"="UsbBootWatcherService""ObjectName"="LocalSystem"[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSafeBootMinimalUsbBootWatcherService][HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSafeBootNetworkUsbBootWatcherService][HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicespciide]"Start"=dword:00000000[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesintelide]"Start"=dword:00000000 2.3.2打开写字板,把如下代码复制到写字板中,保存为usb2.regWindowsRegistryEditorVersion5.00[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesusbccgp]"Group"="BootBusExtender""Start"=dword:00000000[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesusbehci]"Group"="BootBusExtender""Start"=dword:00000000[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesusbhub]"Group"="BootBusExtender""Start"=dword:00000000[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesusbohci]"Group"="BootBusExtender""Start"=dword:00000000[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesUSBSTOR]"Start"=dword:00000000"Group"="BootBusExtender"[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesusbuhci]"Group"="BootBusExtender""Start"=dword:00000000 2.4关机重启进入V:盘的Win7,即本地的VHDWin7。找到2.3中创建的usb1.reg和usb2.reg文件,分别双击运行,文件中的内容即被写入VHDWin7的注册表。 2.5重启,进入本地Windows7。 3在步骤2中,USB驱动已经改好了,现在win7.vhd中的系统已经可以在移动硬盘中运行了。插上移动硬盘,把D:win7.vhd文件复制到G:(移动硬盘数据盘,事先准备好大于15G的空闲空间) 4不要急着用移动硬盘去启动计算机,因为——引导还没有建立!下面我们来手动给G:win7.vhd建立引导。 4.1把本地Windows7的系统盘中boot文件夹和bootmgr文件完整复制到移动硬盘F:(这相当于移动硬盘的C盘)根目录下 4.2进入c:windowssystem32文件夹,把如下三个文件复制到F:boot文件夹下: bootsect.exe——用来给移动硬盘MBR写引导信息 bcdedit.exe——用来建立、修改bcd引导项 bcdboot.exe——用来复制bcd引导项 4.3运行cmd进入命令行,依次运行如下命令: bcdbootc:windows/sf:——把本地Windows7的引导项复制到F:盘(即移动硬盘) bootsect/nt60f:/mbr——这个命令将把nt60版的引导信息写入移动硬盘的mbr!因此一定要小心别搞错了盘符! bcdedit/storef:bootbcd/copy{default}/d"Windows7VHDUSB" 回车后返回这种格式的GUID,{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx},后续命令中我用{GUID}代替 bcdedit/storef:bootbcd/set{GUID}devicevhd=[g:]win7.vhd bcdedit/storef:bootbcd/set{GUID}osdevicevhd=[g:]win7.vhd bcdedit/storef:bootbcd/set{GUID}detecthalon——打开detecthal参数,对移动win7的兼容性非常重要,作用是启动时强制检测hal(即俗称的电源管理模式,做过系统封装的都知道这东西的重要性)。xp就没有这个功能…… bcdedit/storef:bootbcd/displayorder{GUID}/addlast bcdedit/storef:bootbcd/timeout5 改这改那,终于都改好了。OK,现在一切就绪。 5关机,用移动硬盘启动Y450吧…… 6还可以用它来启动DellD630,嘿嘿……第一次启动时Windows7会自动安装驱动。攻略完成!注意:关于Windows7版本的选择,第一,一定要旗舰版,因为只有旗舰版才支持VHD!第二,要考虑激活Windows7的问题,因为当你在其它机器上启动这个系统,因为硬件改了,Windows会要求你重新激活……如果你的是特定的OEM版,很可能启动不了另一台计算机。真希望微软快点出个像XP时代的VLK大客户版……下面上hdtune测试结果,只做了读取和随机存取测试,写入的因为要格式化分区所以没做了……先是USB-VHD-WIN7的虚拟盘的测试 下面是本地win7的 (这个攻略一样可以应用于真实移动硬盘。如果直接改install.wim,还可以把安装光盘改成移动Windows7版的,不过,正常安装时,Windows7的setup不允许安装到usb设备,这点还没想到办法克服……或许boot.wim的相关设置也要改。 总之,Windows7移动版比xp好做了多,通用性也强得多。喜欢折腾的朋友可以试试,有什么问题的话,可以给我留言,或者hi我。)——————————————————————————————————————————————最新测试:这个Windows7USBVHD版的通用性比我想象的还要强悍,今天我用它启动我的老台式机,01年的,P41.5G,512M内存,USB1.1,bios无usb启动选项,我插上移动硬盘后,从硬盘项可以看到移动硬盘,从它启动后顺利进入WIN7USBVHD系统!当然因为USB1.1的关系,启动时间5分钟……运行速度嘛,能感觉到明显的停滞感……没办法,这老爷机出厂的时候USB2.0还不成气候呢。还有网卡,声卡,显卡驱动全都不能识别……太老啦还能说什么呢?实在是太强悍了……联想到现在的USB3.0,什么时候能让这个系统在上面跑跑,哇……流口水YY中…… 下面上图: