标题: GUI 3-1:win7/vista安装器,支持安装系统到USB硬盘,可在xp的pe下运行,x86/x64通用
  本主题由 66369 于 2010-8-12 14:54 加入精华 
fujianabc
一级上将
Rank: 8Rank: 8



UID 49973
精华 3
积分 37858
帖子 3717
威望 10235
阅读权限 99
注册 2004-6-28
发表于 2009-6-4 03:42  资料  短消息  加为好友 

GUI 3-1:win7/vista安装器,支持安装系统到USB硬盘,可在xp的pe下运行,x86/x64通用

最近一直有人在问怎么在xp核心的pe中安装win7,我在一些回帖中简略提到过方法,在这索性总结一下,把其中所需的工具发上来。

由于xp核心的pe不能直接运行win7的setup.exe,就直接从install.wim解压安装,三条命令即可。
假设要安装win7/2008 r2的分区在pe下盘符是c:,光盘盘符是d:(虚拟光驱也行),激活主分区盘符为e:
1、imagex /apply d:\sources\install.wim 5 c:    (注意,这里5是指ultimate版,要装其它版本把这个数字换成其它)
2、bcdboot c:\windows /s e: /l zh-CN            (一条命令搞定bootmgr和bcd,并把启动菜单设成中文的)
3、bootsect /nt60 e:                                (写入c:盘的bootmgr引导扇区)   

执行了以上命令之后,重启即可

以上3个程序可以从下面的安装器中提取,目前试验最好的版本是7600的imagex/bootsect以及7000的bcdboot

下面的安装器是基于上面的原理制作的,其中代码最基本部分来自zjqcomputer (小小强),我在此基础上作了很多修改和增强。

感谢yuanxin8701 制作了图形版,详见649楼  (由于论坛的bug,如果649楼没有的话,请到639楼找)
2楼是安装器更新记录

下载:
NT6.X快速安装器100227.part1.rar (390.63 KB) NT6.X快速安装器100227.part2.rar (118.14 KB) (中文版)
NT6.X fast installer 100227.part1.rar (390.63 KB) NT6.X fast installer 100227.part2.rar (102.56 KB)  (English version)
(目前cmd版比GUI版更稳定一些)
NT6快捷安装器v1.1.part1.rar (390.63 KB) NT6快捷安装器v1.1.part2.rar (114.94 KB)yuanxin8701的GUI版。GUI版现已为正式版了!!
英文版的一些相关讨论和信息可以看bootland的帖子:
http://www.boot-land.net/forums/index.php?showtopic=10126

本安装器相比微软的setup.exe有4个优点:

QUOTE:
1、支持xp核心的winpe下安装win7和vista
2、支持直接把系统装到USB移动硬盘
3、支持手动选择bootmgr所在分区,从而避免了移动硬盘/U盘启动pe时把启动文件装到移动硬盘/U盘的尴尬
4、支持更改系统分区所占用的盘符。用setup.exe从winpe安装win7/2008 ,系统分区会占用C:盘,这让一些人感觉不爽,本安装器允许你自己选择win7/2008 r2系统分区所占用的盘符。

5、安装速度快。用此安装器硬盘安装,一般主流的5400转的笔记本盘上用11-12分钟,台式机7200转的不到10分钟

说明:

QUOTE:
1、此方法可在xp sp1以上版本的winpe中使用,包括2003的pe和vista的pe 2.x。此方法也可以在win2000 sp4以上windows中使用
2、由于vista/2008直接用imagex解压后不会自动调整系统盘盘符,用上面3条命令的方法安装vista/2008可能会出现问题,详见31楼。
     而安装器在9月5日的更新中引入了微软的一段注册表盘符处理脚本,解决了31楼的问题。从而可以支持VISTA/2008的安装,安装后Vista/2008的系统盘盘符为D:
3、此工具支持直接把系统装到usb移动硬盘上(不支持装到u盘上)。usb硬盘上系统安装完后,建议手动开启usb硬盘的写缓存。
4、如果要把usb系统插到其它电脑上用,请先执行\Windows\System32\sysprep\sysprep.exe /oobe /generalize /shutdown。关机后即可插到其它电脑上启动了。
5、对于用此安装器安装win7后系统占用C:盘感到不爽的人,可以看这里,提供了解决工具。(12月2日更新已经包含了此功能了)




[ 本帖最后由 fujianabc 于 2010-3-1 21:28 编辑 ]

顶部
fujianabc
一级上将
Rank: 8Rank: 8



UID 49973
精华 3
积分 37858
帖子 3717
威望 10235
阅读权限 99
注册 2004-6-28
发表于 2009-6-4 03:50  资料  短消息  加为好友 

安装器更新记录

2010-02-28更新:
1、增添对一些由wimtool制作的非标准wim文件的检测,提示用户确认版本
2、增添对nt 5.x的wim的检测

2010-02-19更新:
1、修正了输入单一空格退出的bug,并修改了提示。
2、修正了光驱、软驱没盘时,某些杀毒软件的所给出额外出错提示


2010-01-20添加yuanxin8701 制作的图形版,详见649

2010-01-03更新:
1、重新整理了一下代码,去除了一些多余代码,增加了注释和可读性。以便与bootland发布的同步
2、根据install.wim安装源自动判断bcdboot /l后面启动菜单的语言,避免了安装其他语言系统时提示中文启动文件缺失的问题。


09-12-20更新:
修改了安装系统到usb的处理方法,舍弃了原来inf修改和替换的方法。改用了注册表项监控程序usbbootwatcher,这样无需再修改和替换inf,可以让各个版本的系统安装到usb硬盘,安装补丁也不受影响。
现在任意版本的vista/2008/win7/2008 r2(任意sp版本)都能装到usb硬盘上了。

09-12-05更新:
感谢“系统维护”制作的utf8->ansi的转码器,这下彻底解决了中文乱码的问题。这个utf8togbk的源代码在
480楼


09-12-02更新:
1、把我的osletter7.cmd包含到了安装器中,大家安装win7/2008 r2时可以自己决定windows所在分区在系统占用哪个盘符
2、写了一个简单的readme,里面包含了本安装器的特点介绍以及本贴后面的注意事项。可以在开始时显示出来


09-11-21更新:
1、根据ioripalm的报告,修正install.wim包含超过10个映像时映像号选择的bug,现在支持install.wim最多包含999个映像
2、根据之前翻译以及一些网友反映的情况,修正了中文版的一些提示信息


09-11-01更新:
应巴基斯坦的网友maanu的请求,翻译制作了英文版,中文版没动。由于代码每变动过,因此英文版版本号依旧是090915

09-09-15更新:
1、根据dvd008 的报告,6001的bootsect在某些pe上无法正常执行,所以用7600的bootsect替换了
2、为适应某些过度精简的winpe,格式化前增加了format命令是否存在的判断
3、增加了对$oem$文件夹处理的处理

09-09-06更新:
隐藏了bcdboot某些错误提示的显示。

09-09-05更新:
1、
安装器支持VISTA/2008安装。
     我找到一段微软写的盘符调整cmd脚本,稍加修改后引入了安装器,使得vista/2008用此方法不会出现31楼的问题了。
2、小修正,以适应那些存在后期自动脚本SetupComplete.cmd的系统


09-09-03更新:
1、修正分区容量判断部分的一个bug
2、一些显示改进
3、感谢alexo帮忙更改了一些文字表述


09-09-02更新:
1、修正一个由bootsect命令的/force参数导致bcdboot写缓存没跟上的bug (感谢comiclife的试验)
2、修正wim文件路径有空格时的bug
3、增加安装分区容量判断

09-09-01更新:
1. 启动菜单中增加对XP等ntldr系统的多系统启动支持
2. 系统安装到USB移动硬盘时会自动禁用休眠
3. 增加目标分区NTFS的检测,因为Win7要求系统分区必须是NTFS

09-08-27更新:
1、添加了usb驱动后期处理,支持直接把win7/2008 r2直接装到usb移动硬盘上,x86/x64的系统都支持。
     至于具体修改的原理,3楼有简单介绍,感兴趣的可以直接看cmd代码。
2、小修正:添加了格式化判断,如果系统盘已有windows文件夹,则会提示格式化。

09-08-11更新:
感谢zjqcomputer (小小强)制作的工具,可以自由查看和选择版本,在任意版本32位的winpe中可以安装,在win2000 sp4以上windows中也可以


[ 本帖最后由 fujianabc 于 2010-2-28 10:20 编辑 ]

顶部
fujianabc
一级上将
Rank: 8Rank: 8



UID 49973
精华 3
积分 37858
帖子 3717
威望 10235
阅读权限 99
注册 2004-6-28
发表于 2009-6-4 04:12  资料  短消息  加为好友 

usb移动硬盘启动windows 6.x原理大致介绍

系统默认的情况下,usb驱动在启动之后才加载,而如果要让系统从usb启动,就必须让系统在启动时就加载usb驱动,因此把注册表中所有usb存储驱动项的加载方式改为boot,修改内容相见安装器里的usb.reg。
但光修改这几项是不够的,因为系统随时会把这几个注册表项还原(比如扫描安装硬件驱动阶段、新插入usb设备、新安装补丁等),这样下次重启会0x7b蓝屏。有两种方法可以防止这几项注册表还原,一种是修改inf文件,另一种是安装注册表监控程序。
本安装器2009年12月19日之前版本用了第一种方法,之后的版本采取了第二种方法。下面分别简单介绍一下:

方法一:修改替换inf文件
这种方法本质上就是修改了usb驱动的默认注册表设置项,因为注册表更改会按照inf的内容来进行,所以改了inf后,会按照inf的内容来还原。具体方法是把usb驱动的usb.inf,usbstor.inf,usbport.inf中与加载相对应的项作以下修改:
搜索.AddService],把其下starttype和LoadOrderGroup 项改为
[*.AddService]
StartType = 0
LoadOrderGroup = boot bus extender
然后要在3个文件夹中替换inf文件。替换文件的小技巧:因为直接替换几个inf需要先解除权限,比较麻烦,但微软自己的imagex拥有修改系统文件的权限,能随便替换系统文件,所以把要替换的inf打包到一个wim中,imagex直接解压就能覆盖。
这种方法,很麻烦,而且不通用,每个版本要修改相应的inf,并且如果遇到系统更新,以上修改便会失效。

方法二:usb注册表项监控
正由于以上方法的不通用性,所以在之后采用了另一种方法,就是安装程序来实时监控注册表usb存储相关的这些项,一但有更改立刻还原,这样就免去了inf修改以及替换的麻烦。而且各个版本通用,系统更新也没问题。
在911cd上,有人专门写了一个usb注册表项监控程序usbbootwatcher
http://www.911cd.net/forums//index.php?showtopic=22473
我把它引入了本安装器中,这样任意版本的vista/2008/win7/2008 r2(任意sp版本)都能装到usb硬盘上了。

usbbootwatcher使用的技巧:
1、把服务类型改成0x20(默认0x10),这样才在第一次重启后进入硬件配置阶段(微软叫specialize阶段)时自动运行
2、要把usbbootwatcher服务的注册表项添加到安全模式的加载项中,否则安全模式下该监控程序不会启动
以上两点都已经添加到了usb.reg中

[ 本帖最后由 fujianabc 于 2009-12-20 22:54 编辑 ]

顶部
zhxy9804
版主
Rank: 7Rank: 7Rank: 7


UID 157521
精华 1
积分 41462
帖子 4705
威望 14654
阅读权限 100
注册 2007-1-4
来自 山东临沂网吧维护
发表于 2009-6-4 07:56  资料  短消息  加为好友  QQ

imagx 在pe中需要组件支持吧?





顶部
wdjlll
中尉
Rank: 4



UID 313197
精华 0
积分 1600
帖子 399
威望 1241
阅读权限 70
注册 2009-5-16
发表于 2009-6-4 08:05  资料  短消息  加为好友 

谢谢楼主,这个问题让你给解决了,不过,还要再简单一点就更好了

顶部
chenall
上将
Rank: 8Rank: 8


UID 1025
精华 5
积分 33573
帖子 2638
威望 8105
阅读权限 99
注册 2003-9-21
来自 福建泉州

用支付宝求购
发表于 2009-6-4 09:42  资料  主页 短消息  加为好友  添加 chenall 为MSN好友 通过MSN和 chenall 交谈 QQ

这样子安装看起来比较简单...

但是用原来的安装程序好像有一些设置.这个的设置要在哪里设置?重启后可以设置吗?

还没有试过.





顶部
888111
军士长
Rank: 3Rank: 3



UID 271110
精华 0
积分 916
帖子 252
威望 624
阅读权限 50
注册 2008-7-9
发表于 2009-6-4 11:08  资料  短消息  加为好友 
我用PE裡的WIN7簡易安裝器成功安裝WIN2K8 SP2,展開文件至26%時會出錯,不管它,重啟可繼續安裝.

顶部
fujianabc
一级上将
Rank: 8Rank: 8



UID 49973
精华 3
积分 37858
帖子 3717
威望 10235
阅读权限 99
注册 2004-6-28
发表于 2009-6-4 15:20  资料  短消息  加为好友 


QUOTE:
原帖由 chenall 于 2009-6-4 09:42 发表
这样子安装看起来比较简单...

但是用原来的安装程序好像有一些设置.这个的设置要在哪里设置?重启后可以设置吗?

还没有试过.

原来安装程序的设置部分包括时区、接受协议、输入序列号等。

这些设置在win7已经移到系统安装完后,第一次登陆前了。

QUOTE:
原帖由 zhxy9804 于 2009-6-4 07:56 发表
imagx 在pe中需要组件支持吧?

现在大家玩得pe 1.x里面都有wim挂载组件和驱动,因此直接就能用imagex.exe

[ 本帖最后由 fujianabc 于 2009-6-4 15:23 编辑 ]

顶部
lxl1638
大元帅
Rank: 8Rank: 8



UID 24596
精华 12
积分 86428
帖子 8828
威望 24665
阅读权限 99
注册 2005-7-24
发表于 2009-6-4 17:10  资料  短消息  加为好友 


QUOTE:
@echo off
REM %1 安装win7/2008 r2分区在winpe中的盘符
REM %2 光驱盘符
REM %3 启动分区,即激活主分区在winpe中的盘符
imagex /apply %2\sources\install.wim 5 %1
bcdboot %1\windows /s %3 /l zh-CN
bootsector /nt60 %3

本人没有玩过Win7和Vista,现请教:红色两条命令有没有先后之分,即先执行bootsector再执行bcdboot

顶部
lqcai
大校
Rank: 6Rank: 6



UID 311564
精华 0
积分 8643
帖子 338
威望 1025
阅读权限 90
注册 2009-5-7
发表于 2009-6-4 17:29  资料  短消息  加为好友 
应该没有先后之分吧,bootsect 改写磁盘主启动代码,如果是Vista及其以上,winpe2.0及其以上系统diskpart或磁盘管理工具创建的活动主分区则不需执行此命令,如果是第三方工具如 diskgenius工具创建的就必须执行此命令

bcdboot 处理系统引导,自动创建 bcd 文件

[ 本帖最后由 lqcai 于 2009-6-4 20:15 编辑 ]

顶部
 



当前时区 GMT+8, 现在时间是 2010-9-3 18:11
闽ICP备05002490号

    本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
清除 Cookies - 联系我们 - 无忧启动 - Archiver - WAP