WIN7@USB攻略:把Windows 7旗舰版装到移动硬盘/U盘(VHD版)真正的移动版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本本,已安装Windows 7旗舰版(或者WINPE3.0版),用来给移动WIN7做引导- Win7.vhd,15G,位于Y450 D:盘- 移动硬盘,80G分为两个分区,分区一是移动XP的系统分区,分区二是数据盘。
步骤1. 启动Y450进入Win7,打开win7磁盘管理工具,附加vhd文件,把D:/win7.vhd附加到系统。
成功后可以在计算机里看到一个新分区,我给它分配的盘符是V:,所以V:盘里就是已经预先安装好的完整的win7系统文件。
2. 因为USB驱动的关系,这个VHD上的win7从移动硬盘上启动时会蓝屏报错:007B!所以下面要修改VHD win7的USB驱动。
2.1 进入V:\windows\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 = System Bus Extender[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 = 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;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_STARTStartType = 0 ; SERVICE_BOOT_STARTErrorControl = 1 ; SERVICE_ERROR_NORMALServiceBinary = %12%\usbehci.sys;LoadOrderGroup = BaseLoadOrderGroup = 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_STARTStartType = 0 ; SERVICE_BOOT_STARTErrorControl = 1 ; SERVICE_ERROR_NORMALServiceBinary = %12%\usbohci.sys;LoadOrderGroup = BaseLoadOrderGroup = Boot Bus Extender[UHCI.AddReg.NT]HKR,,EnumPropPages32,,"usbui.dll,USBControllerPropPageProvider" HKR,,Controller,1,01;HKLM,System\CurrentControlSet\Services\usbuhci,BootFlags,0x00010003,4DisplayName = %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 = 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_STARTStartType = 0 ; SERVICE_BOOT_STARTErrorControl = 1 ; SERVICE_ERROR_NORMALServiceBinary = %12%\usbhub.sys;LoadOrderGroup = BaseLoadOrderGroup = System Bus Extender ————————————————————————————————————usbstor.inf[USBSTOR.AddService]DisplayName = %USBSTOR.SvcDesc%ServiceType = 1;StartType = 3StartType = 0ErrorControl = 1ServiceBinary = %12%\USBSTOR.SYSLoadOrderGroup = System Bus Extender2.2 进入v:\Windows\System32\DriverStore\FileRepository\,找到名为usb.inf_……的文件夹,然后把刚才改好的usb.inf文件复制到此处覆盖原文件;继续找名为usbstor.inf_……的文件夹,用改好的usbstor.inf覆盖此处的原文件。
(注意:这个位置的文件夹和文件所有权属于TrustedInstaller,直接改是不行的,首先要修改所有权为登录用户,并且赋予完全权限,才可以修改。
修改步骤请自己网上搜。
)2.3 文件改好了,接下来要改注册表V:\windows 的注册表。
修改注册表有很多方法,我下面用的是最简单的一种2.3.1 打开写字板,把如下代码复制到写字板中,保存为usb1.reg(注意不是usb1.reg.txt!)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:000000002.3.2 打开写字板,把如下代码复制到写字板中,保存为usb2.regWindows 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××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××回复匿名网友:再做第二步的时候到了重启进入VHD的时候写入注册表的那个环节可不可以通过其他方式写入注册表而不是进入vhd的系统才写入,有没有不进入VHD写入注册表的?比如ghost的镜像,如何写入GHOST镜像中的系统啊?2.3.3 在本地win7修改VHD win7注册表的方法如下1. 进入v:\windows\system32\config\,找到名为system的文件,复制到随便哪里2. 打开本地win7的注册表编辑器,定位到HKEY_LOCAL_MACHINE,然后从菜单选择[文件]-[加载配置单元]-选择刚才复制的system 文件导入注册表,并且改名为temp(或者随便什么名)3. 修改本攻略中2.3.1和2.3.2中的usb1.reg和usb2.reg内容。