ganboing 发表于 2014-5-6 18:55

【原创】无第三方工具U盘手动安装8.1 up1和xp sp3 x86双系统(msdn原版)

无第三方工具U盘手动安装8.1 up1和xp sp3 x86双系统(msdn原版)

附件已上传

内容:

利用windows pe进行手工安装8.1up1和xp sp3,全程无第三方工具参与,并把两个系统的启动文件放到单独分区,方便管理且可让8.1启用bitlocker
其中用到了的命令工具有:
diskpart,dism,bcdedit,bcdboot,bootsect,wpeutil,winnt32
参考:http://technet.microsoft.com/zh-cn/library/hh825677.aspx

优势:

手工U盘安装,可以对很多选项自定义,比如引导程序的分区。最大程度避免出现多硬盘多分区引导程序覆盖的问题
安装xp时,手工集成sata/raid驱动,并直接从硬盘安装,提高安装速度。
“干净无污染”,各种“大师”,什么所谓白菜pe之类的可以先歇了,那些软件的害处你懂得

本贴只适合bios/mbr启动方式(xp x86本身不支持uefi),如果希望了解安装win8到uefi磁盘,参阅:
http://technet.microsoft.com/zh-cn/library/hh824839.aspx (配置基于 UEFI/GPT 的硬盘驱动器分区)
事实上uefi模式安装win8.1反而更简单,请期待下一篇帖子。下面开始正题:

准备:

u盘或移动硬盘,8.1 x86安装盘和xp sp3 x86 vl安装盘(msdn)
需要安装win8.1 x64系统的话,请同时准备x64安装盘

U盘或移动硬盘的准备工作 (两个步骤):
1.建立可引导的磁盘结构(1.1)并复制winpe(1.2):
2.复制安装文件
--------------------------------------------------------------------------------
1.1
对于U盘来说,确保U盘容量不小于4G!!
这里我建议直接清空移动磁盘,然后重新建立活动分区。
先做好相应的备份工作,然后在win7/8的环境中,打开cmd,键入diskpart
然后列出磁盘,看到磁盘列表
list disk

这里我们的U盘是disk 1,接下来清空U盘然后创建活动分区
先“选中”磁盘,看一下详细信息以确定我们没有选错
select disk 1
detail disk

因为这里我是利用vhd作的实验,所以磁盘的控制器显示为Msft Virtual Disk SCSI Disk Device
下面直接清空磁盘,创建一个主分区,格式化,设为活动,分配盘符为R盘
clean
create partition primary
format fs=ntfs quick
active
assign letter=R
exit

实际上diskpart支持命令的缩写形式,所以例如"create partition primary"可以直接缩写为"cre par pri"
建立好分区之后,我们还需要给R盘的根目录赋予一下权限,这样就不用使用admin用户复制文件了,
cacls R: /E /G Users:F


1.2
我们直接把win8.1 x86 光盘中的下列文件复制到U盘,U盘就可以作pe启动盘了,根本不需要什么所谓“大师”一类的呵呵软件,这些是bios/mbr方式启动需要的文件
因为xp的安装程序是32位,所以这里我们使用32位的原生pe,所以这里我们用了x86版本8.1的安装盘。不过在32位pe环境下,我们也可以安装64位8.1,请继续看
光盘\boot
光盘\bootmgr
光盘\sources\boot.wim
这是准备好的样子

--------------------------------------------------------------------------------

1.1
对于移动硬盘,如果没有需要备份的文件且不想保留多分区,也建议采取直接清空然后再建立分区的形式(和U盘相同),但是如果不想清空的话,可以按照如下方式处理,这样不会破坏文件也不会破坏分区结构。只是mbr和pbr会被覆盖为ms原生版本
这里我们需要用到diskpart和一个ms提供的工具,bootsect.exe(从pe中提取得到,我直接在附件里面给出了,请一定确保下载后文件带有Microsoft Windows的数字签名且签名有效)
先选择一个移动硬盘的主分区,并确保有200M的可用空间用来存放引导文件和pe,假设这里是R盘,我们需要把R盘设为活动,这里直接开
diskpart
select volume R
active
exit

然后使用bootsect更新mbr和pbr:
bootsect /nt60 R: /mbr
1.2
参考上面U盘的1.2一节来复制相应文件。
--------------------------------------------------------------------------------

2
下面我们需要复制安装文件了,8.1的安装文件其实只有一个,install.wim。因为ms从vista之后引入了wim镜像,从vista开始windows的安装都已经打包到wim镜像中了,如果需要安装32位8.1,我们就把32位8.1光盘中sources\install.wim复制到U盘或移动硬盘备用,64位亦然。对于xp来说,比较麻烦一些,因为安装文件都是分开的,这里我们直接把整个xp安装光盘的内容复制到xp_install文件夹。到此,基本的工作就完成了。

下面是一个“题外话”,众所周知,msdn原版xp没有集成sata/raid驱动,如果需要安装到AHCI/RAID控制器的硬盘,我们可以手工集成之。这里采取的方式和一些第三方工具有所区别,实际上我们利用了windows xp安装程序的无人值守安装模式,在TEXTMODE安装期间,安装驱动。应该算是很简单的一种方式了。

官方的参考http://support.microsoft.com/kb/816299

首先,我们建立一个unattend.txt,作为xp安装时的应答文件,这样可以让安装程序复制sata/raid驱动,且省事一些,我提供了一个unattend.txt模板,大家利用xp光盘中的setupmgr工具进行修改,只是OemPreinstall=Yes一定要保留。接下来以intel的sata/raid驱动为例,介绍如何手工集成驱动。
首先需要下载intel AHCI/RAID driver for XP x86:http://downloadmirror.intel.com/17882/eng/f6flpy3289.zip
将TXTSETUP.OEM文件中一栏中所有的控制器字符串复制到unattend.txt的一栏中,并在后面加上 = "OEM"
例如TXTSETUP.OEM中有


iaAHCI_8MEM         = "Intel(R) ICH8M-E/M SATA AHCI Controller"

那么unattend.txt中就要写上


    "Intel(R) ICH8M-E/M SATA AHCI Controller" = "OEM"

然后再对TXTSETUP.OEM做一下处理,把一栏中=后面的名称和路径换为 "Windows XP Driver Set v1.00", \w2kdsk1, \
例如,原来是


disk1 = "Intel(R) Matrix Storage Manager Driver", iaStor.sys, \

现在改为


disk1 = "Windows XP Driver Set v1.00", \w2kdsk1, \
       
在unattend.txt的一栏中把需要复制的驱动文件添加上,例如这里我们需要写


    iaAHCI.inf
    iaAHCI.cat
    iaStor.inf
    iaStor.cat
    iaStor.sys
    TXTSETUP.OEM

这样就处理好TXTSETUP.OEM和unattend.txt了,下面直接把列出的文件复制到
I386\$OEM$\TEXTMODE\
下面,这里我们复制到
R:\xp_install\I386\$OEM$\TEXTMODE
中。unattend.txt的位置不重要,这里我们不妨放在R:\xp_install下面

如果大家不方便修改上述文件,我的附件里面提供了intel和amd的改好的样例,大家可以直接使用
到此,安装磁盘的准备工作彻底结束了

--------------------------------------------------------------------------------

下面开始安装,这里我用虚拟机来演示,真机同理。为了模拟大家有多块硬盘的情况,这里我的虚拟机环境是这样的

三块硬盘,
sata 5G + sata 12G + sata 5G (“移动硬盘”)
其中第一块硬盘存在一个主活动分区,并被格式化为ntfs,我们要确保不能破坏其中的内容,
第二块硬盘没有任何分区,我们需要把8.1和xp装在这块硬盘上,
第三块硬盘是我们用来模拟移动硬盘的

启动时,我们首先从“移动硬盘”启动,然后选择repair computer,


然后一路troubleshoot->advanced options->command prompt

看到命令行之后,我们可以使用diskpart 察看磁盘的情况,命令包括list disk,list volume,list partition这里C:对应第一块硬盘的分区,D:对应移动硬盘的分区,第二块硬盘没有分区
这时我们第一件事就是给第二块硬盘分区,这里我们采用先创建一个350M的主分区来存放启动文件(350M是win8.1的要求),之后我们创建一个扩展分区,其中我们再创建一个8G的逻辑分区和3G的逻辑分区分别用来安装8.1和xp
命令如下
sel dis 1
cre par pri size=350
for fs=ntfs quick
act
ass letter=S
cre par ext
cre par log size=8192
for fs=ntfs quick
ass letter=W
cre par log
for fs=ntfs quick
ass letter=K
exit


这样我们就建立好磁盘结构,并且分配了盘符,S:代表启动文件分区,W:代表8.1即将被安装的分区,K:代表xp即将被安装的分区。
下面,先部署8.1,这里我们的install.wim被放在D:\install.wim,用dism察看install.wim的情况
dism /get-wiminfo /wimfile:d:\install.wim
这里wim包含8.1和8.1 pro,我们部署8.1pro:
dism /apply-image /imagefile:D:\install.wim /index:1 /applydir:W:
然后使用
bcdboot W:\Windows /s S:
建立引导
到此win8.1部署完成
更多内容还可以参考官方 http://technet.microsoft.com/zh-cn/library/hh825089.aspx


下面直接继续部署xp,直接运行xp的无人值守安装,
D:\xp_install\I386\WINNT32.EXE /syspart:S: /tempdrive:K: /unattend:D:\xp_install\unattend.txt


到此,xp部署完成,下面使用
wpeutil shutdown
关机,
拔下移动硬盘,启动,在boot manager选单,我们先开始xp的安装。


直到gui安装开始前,我们都不需要任何操作,全部都是自动完成的
在gui安装时,也只需基本的输入,最终windows xp安装完成

一个需要注意的地方是,由于xp并没有安装在启动分区,所以Windows目录并不在C:\Windows而在F:\Windows。但这并不会带来什么问题,因为一个设计好的软件应该总是用%systemroot%来判断Windows目录的位置,而不是hard code C:\Windows(这里顺带bs一下某非专业些程序员)

因为xp的安装程序覆盖了mbr和pbr,需要更新它们为nt60版本,下面我们再次需要使用移动硬盘的pe环境,进入命令提示符,使用diskpart找到我们之前S: (引导盘)所对应的盘符(这次被默认分配了盘符,为D),
并使用bootsect更新mbr,pbr
bootsect D: /nt60 /mbr

然后添加ntldr对应bcd记录以便直接用boot manager启动ntldr的引导
bcdedit /store D:\Boot\BCD /create {ntldr}
bcdedit /store D:\Boot\BCD /set {ntldr} device partition=D:
bcdedit /store D:\Boot\BCD /set {ntldr} path \ntldr
bcdedit /store D:\Boot\BCD /set {ntldr} description "NT5"
bcdedit /store D:\Boot\BCD /displayorder {ntldr} /addlast

wpeutil shutdown
关机后,拔下移动硬盘,开机开始win8.1的初始化。这里我们选择8.1启动。



现在win8.1和xp安装完成







[ Edited byganboing on 2014-5-7 17:04 ]

misterben 发表于 2014-5-6 19:05

这是你的原创嘛?

changfeng526 发表于 2014-5-6 19:26

已不用XP很多年了!

yueqq 发表于 2014-5-6 20:30

从低到高安装即可

ganboing 发表于 2014-5-6 20:45

回复 #2 misterben 的帖子

是的,稍后上传附件。

之前看到LiveOnLove的帖子,这里我也发一下我的安装方法

LiveOnLove 发表于 2014-5-6 21:32

比较翔实的文章,命令看来只有多学多记了。^c^

LiveOnLove 发表于 2014-5-6 21:39

回复 #4 yueqq 的帖子

重在学习的过程^,^

abcit 发表于 2014-5-6 21:55

马克

ganboing 发表于 2014-5-6 22:26

回复 #2 misterben 的帖子

附件已经上传

ganboing 发表于 2014-5-6 22:33

回复 #6 LiveOnLove 的帖子

已经编辑好了,这样看起来会比较方便,附件已上传

LiveOnLove 发表于 2014-5-6 23:56

已经保存为网页文件了,学习。

edmondgavin 发表于 2014-5-7 00:48

还是XP经典

intsilence 发表于 2014-5-7 12:25

够详细,不错!
不过还是习惯用PE装了,毕竟简单方便,要追求原汁原味引导也可以量产U盘的。

ganboing 发表于 2014-5-7 13:02

回复 #13 intsilence 的帖子

这里也是利用pe安装的,只不过是官方原版pe

doitnowl 发表于 2014-5-7 13:16

我有个想法不知能不能按照上面的行得通不? 有块32G的u盘已经安装了windows to go 但是我还想在这盘上分出一部分来作为usb 启动来直接安装系统,请问这样可行么?以前听说过量产貌似可以,但是我这个u盘还没找到 主控,按照lz这种操作看上去挺接近我这种想法

mvpwar 发表于 2014-5-7 15:18

技术帖,牛人啊!!!

ganboing 发表于 2014-5-7 15:23

回复 #15 doitnowl 的帖子

是这样,理论上U盘是不能像移动硬盘一样分区的,这是windows本身的限制。如果你已经有win to go了,那么不妨直接用它来安装系统

doitnowl 发表于 2014-5-7 15:33

回复 #17 ganboing 的帖子

win to go 进入pc就是要略等待一段时间。谢谢指点,可以少走不少弯路了。

ganboing 发表于 2014-5-7 20:49

回复 #6 LiveOnLove 的帖子

又上传一片uefi模式安装8.1的帖,可以看看

intsilence 发表于 2014-5-8 06:11

回复 #14 ganboing 的帖子

哈,你咬文嚼字了。我的意思是带shell的pe + DG,bootice之类的磁盘工具 + XX安装器 岂不是比黑乎乎的窗口用起来爽多了。实际动手操作也没必要执着于“无第三方工具”,能顺利完成自己的想法就行。

intsilence 发表于 2014-5-8 06:26

回复 #15 doitnowl 的帖子

分区和磁盘类型没关系,U盘不用量产,除了系统自带磁盘管理无法操作之外,常用分区软件DG,PM都行,不过分完区要检查下引导记录对了没。另外windows下zip类型磁盘只能有一个分区挂上盘符。如果实在有多分区同时使用的需求可以尝试量产,或者替换windows驱动。

参考:http://tieba.baidu.com/p/2312794255

ganboing 发表于 2014-5-8 10:34

回复 #20 intsilence 的帖子

对,用pe+Diskgenius+BootICE+NT安装器也是bios启动模式下比较有效的方案。

因为ms提供了一个样例脚本,我实际做一遍让大家参考一下如何利用各种原生命令来操作,以备不时之需。

[ Edited byganboing on 2014-5-8 10:35 ]

aarx 发表于 2014-5-8 13:27

这个有空我得试下

doitnowl 发表于 2014-8-17 21:31

回复 #5 ganboing 的帖子

楼主,xp的achi驱动放在是直接放在xp_install目录下?

ganboing 发表于 2014-8-18 10:43

回复 #24 doitnowl 的帖子

驱动和TXTSETUP.OEM一并放在

R:\xp_install\I386\$OEM$\TEXTMODE

feng197212 发表于 2014-8-18 16:07

报告一下楼主,我做好的u盘,虽然用了第三方工具,但是整体比你这个简洁太多了
16G的u盘,用量产工具,直接做出一个usb-cdrom模拟分区,写入winxp with sp3 msdn,当然加了一个winnt.sif自动安装直接进桌面
剩下的分区,放了几个iso解压缩的文件夹,比如win7 with sp1和win 8.1 with update
当然这个分区只用diskpart处理了一下,然后要装8.1呢,把8.1目录下的文件移动到根目录即可,装7呢,就把8.1的文件放回8.1目录,7下的目录移动到根目录即可
顺便说一句我对所有什么启动pe或者什么硬盘安装方式都嗤之以鼻,包括ultraiso写iso到u盘,嘿嘿,有点洁癖

feng197212 发表于 2014-8-18 16:11

看了一下你写的xp的安装部分,我其实早就如下这么干了
找一个空白硬盘,用光盘启动msdn光盘,然后在第一次重启前,把磁盘内容ghost下来成为一个gho
然后装哪个用gho恢复一下即可
另外我双系统只喜欢两个硬盘用启动顺序切换,不喜欢用启动方式切换,理由同上

ganboing 发表于 2014-8-18 16:19

回复 #27 feng197212 的帖子

这也是很好的办法,我只是写一个不需要第三方工具的安装过程,有备无患

heimahei 发表于 2014-8-18 19:21

这个双系统安装办法太详细了,感谢分享

doitnowl 发表于 2014-8-18 20:13

回复 #25 ganboing 的帖子

很不幸,蓝屏。
不过我应该交代下,我用的安装方法比较特殊。win8.1(windows to go)下用下面这个软件辅助安装的F:\ xp 文件夹里是xp原版镜像全部拷贝,外加楼主说的八txt文件放在F:\xp文件夹下,驱动放在新建的F:\xp\I386\$OEM$\TEXTMODE里。
我在 不开启achi模式的xp是好的,win7,win8也都是没问题。
页: [1] 2
查看完整版本: 【原创】无第三方工具U盘手动安装8.1 up1和xp sp3 x86双系统(msdn原版)