真正的移动版WIN7,在移动硬盘/U盘上运行的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\ 文件夹,找到如下文件,依次双击打开,找到对应的部分,修改内容如下(黄色背景红色字符为增加的内容),然后保存覆盖原文件:

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 进入 v:\Windows\System32\DriverStore\FileRepository\,
找到名为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_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 打开写字板,把如下代码复制到写字板中,保存为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

××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
回复匿名网友:再做第二步的时候到了重启进入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内容。把其中所有HKEY_LOCAL_MACHINE\SYSTEM\改为HKEY_LOCAL_MACHINE\temp\,保存。
4. 双击usb1.reg usb2.reg把内容导入注册表
5. 右键点击注册表项HKEY_LOCAL_MACHINE\temp\,选[导出]-改保存类型为[注册表配置单元文件]-起名为system(无后缀名)-确定保存6. 把改好的system复制到v:\windows\system32\config\,覆盖原文件(或者把原文件改名),做这一步,你可能需要system或是administror权限,请自己网上搜索获得权限的方法经过上面几步,VHD win7的注册表就改好了。如果是ghost镜像,你需要用ghostexp获得镜像内的system文件,然后按上述步骤修改,改好后用ghostexp把改好的system文件写入ghost镜像的同一位置。】
××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

2.4 关机重启进入V:盘的Win7,即本地的VHD Win7。找到2.3中创建的usb1.reg和usb2.reg文件,分别双击运行,文件中的内容即被写入VHD Win7的注册表。

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:\windows\system32 文件夹,把如下三个文件复制到 F:\boot\ 文件夹下:
bootsect.exe —— 用来给移动硬盘MBR写引导信息
bcdedit.exe —— 用来建立、修改bcd引导项
bcdboot.exe —— 用来复制bcd引导项

4.3 运行cmd进入命令行,依次运行如下命令:

bcdboot c:\windows /s f: —— 把本地Windows7的引导项复制到F:盘(即移动硬盘)

bootsect /nt60 f: /mbr —— 这个命令将把nt60版的引导信息写入移动硬盘的mbr!因此一定要小心别搞错了盘符!

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

回车后返回这种格式的GUID, {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx},后续命令中我用{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 —— 打开detecthal参数,对移动win7的兼容性非常重要,作用是启动时强制检测hal(即俗称的电源管理模式,做过系统封装的都知道这东西的重要性)。xp就没有这个功能……

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

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

改这改那,终于都改好了。OK,现在一切就绪。

5 关机,用移动硬盘启动Y450吧……

6 还可以用它来启动Dell D630,嘿嘿……第一次启动时Windows7会自动安装驱动。

攻略完成!

移动硬盘/U盘装Windows 7旗舰版(VHD版)的更多相关文章

  1. 移动硬盘/U盘上装Windows 7旗舰版(VHD版)

    真正的移动版WIN7,在移动硬盘/U盘上运行的WIN7 工具准备 - 联想Y450本本,已安装Windows 7旗舰版(或者WINPE3.0版),用来给移动WIN7做引导 -Win7.vhd,15G, ...

  2. U盘启动盘的制作--用U盘硬装Windows系统、或是重装Windows系统

    借助IT天空的优启通U盘启动盘的制作--用U盘装Windows系统.或是重装Windows系统之U盘启动盘的制作 1.==================================== 2.== ...

  3. 如何安装Windows 7旗舰版

    如何安装Windows 7旗舰版.. ----------------- Windows 7旗舰版安装的初始画面 ------------------------- 选择好语言后,点击“下一步”按钮, ...

  4. Windows 7旗舰版产品密钥

    http://www.xitongcheng.com/jiaocheng/win7_article_45903.html 一.Windows 7旗舰版产品密钥 零售版: Windows 7 Ultim ...

  5. 微星(MSI)新主板B150M MORTAR U盘装win7的坎坷经历

    新买的微星主板,热心的同事帮忙装好了win10,但是显卡驱动没装好,屏幕都快看瞎了眼,再者,楼主非常不喜欢win10的花哨,所以就装回了win7.下面来说一下我装win7的痛苦经历. 我是用UItra ...

  6. 通用PE u盘装Ghost Win7系统

    http://www.tongyongpe.com/win7ghost.html 导读 通用pe工具箱是现在最老牌的的U盘装系统和维护电脑的专用工具之一,一键式制作.操作简单便捷,几乎100%支持所有 ...

  7. U帮忙U盘装系统工具使用教程

    在用U盘装系统时首先我们需要了解一下U帮忙U盘启动盘的制作以及BIOS设置U盘启动和U盘装系统步骤后才能让操作更顺利的完成,下面就来说说U帮忙U盘装系统工具使用教程,希望对大家有所帮助! 如果您不了解 ...

  8. 【XP系统下载U盘装系统】用电脑店超级U盘装XP系统详细图文教程

    现在U盘装系统已经越来越流行了,不仅方便而且简单,由于U盘启动盘用的制作工具不同,其中比较流行的有老毛桃.电脑店.大白菜.一键U盘装系统等等,因此安装过程中也有不尽相同的,今天就和大家分享下利用电脑店 ...

  9. 通用PE u盘装Ghost Win7系统教程

    通用PE u盘装Ghost Win7系统教程 导读 通用pe工具箱是现在最老牌的的U盘装系统和维护电脑的专用工具之一,一键式制作.操作简单便捷,几乎100%支持所有U盘,不再为装机烦恼们,抓紧时间下载 ...

随机推荐

  1. css link import

    link和@import的区别   页面中使用CSS的方式主要有3种:行内添加定义style属性值,页面头部内嵌调用和外面链接调用,其中外面引用有两种:link和@import.外部引用CSS两种方式 ...

  2. SQL C# nvarchar类型转换为int类型 多表查询的问题,查询结果到新表,TXT数据读取到控件和数据库,生成在控件中的数据如何存到TXT文件中

    在数据库时候我设计了学生的分数为nvarchar(50),是为了在从TXT文件中读取数据插入到数据库表时候方便,但是在后期由于涉及到统计问题,比如求平均值等,需要int类型才可以,方法是:Conver ...

  3. POJ 3984 迷宫问题 记录路径的广搜

    主要是学一下如何在广搜中记录路径:每找到一个点我就记录下这个点是由那个点得来的,这样我找到最后个点后,我就可以通过回溯得到我走过的路径,具体看代码吧~ #include<cstdio> # ...

  4. hrbustoj 2033 A Funny Game(对称博弈)

    对称博弈,注释在代码里 #include<iostream> #include<cstdio> using namespace std; ///这个地方其实是博弈原理里面的对称 ...

  5. 删除DriverStore\FileRepository文件夹后,设备驱动无法安装,提示“没有为设备信息集或元素选择驱动程序(代码 28)”的解决办法

    前言: 我前几天手贱,整个FileRepository删除掉了,之后重启就出现了让人蛋疼的这个问题,因为出于各种原因不想重装系统,百度轮番换搜索词无果,虽然驱动装上了但新设备依然无法自动安装驱动等“一 ...

  6. Python3基础 list() 将一个元组转换成列表

    镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...

  7. 计算机学院大学生程序设计竞赛(2015’12) 1008 Study Words

    #include<cstdio> #include<cstring> #include<map> #include<string> #include&l ...

  8. PAT 天梯赛 L1-009 N个数求和

    模拟题 题目链接 题解 每次将两个分数进行相加,到最后再将结果化成带分数.主要考察的最大公约数与最小公倍数. 代码如下: #include<cstdio> #include<cstd ...

  9. Python+Selenium+PhantomJS下载JavaScript异步加载网页

    # -*- coding: utf-8 -*- from selenium import webdriver import selenium.webdriver.support.ui as ui fr ...

  10. 基于css3的环形动态进度条(原创)

    基于css3实现的环形动态加载条,也用到了jquery.当时的想法是通过两个半圆的转动,来实现相应的效果,其实用css3的animation也可以实现这种效果.之所以用jquery是因为通过jquer ...