无忧启动论坛

标题: uefi/bios+gpt模式安装winvista至win10的分区、Compact、vhd(x)、wimboot系统要点 [打印本页]

作者: qj_tzy    时间: 2016-6-20 16:04
标题: uefi/bios+gpt模式安装winvista至win10的分区、Compact、vhd(x)、wimboot系统要点
本帖最后由 qj_tzy 于 2016-6-23 07:30 编辑

uefi+gpt、bios+gpt模式下安装gho或原版winvista至win10的正常分区、Compact分区、vhd(x)、wimboot系统要点

本贴,是我在学习系统安装过程中写出的笔记,现分享给各位网友。由于水平有限,其中的错误在所难免,敬请各位网友指出,让我们共同进步。
1.安装后的效果菜单请见:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=378392&extra=
2.发布的10个vhd(x)系统下载请见:
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=378414&extra=page%3D1
3.所用的启动菜单系统请见:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=320832&extra=page%3D1
4.安装的注意事项请见:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=378402&extra=

本篇将以要点方式简要介绍UEFI_bios+GTP模式下安装正常(非压缩)分区系统、Compact(压缩)分区系统、VHD(X)系统、wimboot系统的安装与启动。该四类系统的性能从高到低依次为:正常分区系统->略忧于Compact分区系统->略优于VHD(X)系统(因相对wimboot系统文件未压缩)->略优于wimboot系统。但即使是wimboot系统,其性能比正常分区系统也只是略低、差得不是太多,但后三者会对硬盘寿命有一定影响。因此也是值得安装和使用的。

一、与GPT分区硬盘相关的问题处理——重点要作好ESP分区的处理
用DiskGenius专业版(不能用免费版)将硬盘分区调整为GPT分区,并重点作好ESP分区的处理。因在不正确的安装过程中,或在系统gho方式备份后还原完成时、dism++工具备份还原、隐藏分区等一些未知因素,均可能导致GPT分区出错,即用ghost12原版软件查看GPT分区硬盘时,会出现“unknown"的出错提示而不能显现分区列表。此时就要用DiskGenius专业版搜索丢失分区(重建分区表)。但用CGI等备份还原工具进行备份甚至还原时,有时又不会引导GPT分区表出错。用bootice隐藏或显现GPT分区时,GPT分区也不会出错。但发现用grub4dos的hide或unhide命令对gpt分区进行隐藏或显现时,会引起GPT分区表错误,但hide命令有时也不会引起错误,因此,目前尚未找到引起GPT分区出错的真正原因,暂时称之为未知因素。

1.建ESP分区时,默认为100M容量,可选择超过2G,如4G的大小。一定要建为ESP(Efi System Partition首字母)分区,不要用FAT16/FAT32分区代替之。前者在BOOTICE中查看其ID为00(系统保留分区msr的ID也为00),后者ID为0B或0C;在用winntsetup安装原版系统时.在其界面的EFI Part处,前者显示为绿灯,后者显示红灯。用FAT16/FAT32分区代替时,存在以下问题:一是安装win7/win8/win2012/win10的gho版或原版时,在安装中途,会出现“windows不能配置在此硬件的计算机上”,并不能完全安装,导致禁用administrator帐户,而启用需要密码的其他帐户(由于其他任何帐户尚未设置,致不能登录windows);二是对于win7,虽能采取特殊手段,走完第一步,但仍可能不能激活。
2.电脑启动时,不出现EFI启动方式时,是因:对新一点的电脑可用bootice、XorBoot、EasyUEFI等工具设置某一efi文件为启动文件;但对有的电脑,其启动前总是把Windows Boot Manager设为第一启动项(若启动列表中有此项就将其移动到第一项,若无此项就建立此项),该启动项默认设定的启动文件为\efi\Microsoft\Boot\bootmgfw.efi,或\efi\boot\bootx64.efi。只要\efi\文件夹下建好这些文件即可出现uefi启动项,若还不行,还可用EasyUEFI设置一下即可。因此,对此类电脑,若想以其他efi文件启动时,只有将该efi文件重命名为bootmgfw.efi,并复制到\efi\Microsoft\Boot\文件夹下覆盖原bootmgfw.efi文件才行。
3.鉴于以上原因,gpt分区硬盘系统的备份与还原,在用CGI等工具时,建议不用ghost内核进行gho方式的备份与还原(弃用gho方式),而用wimlib_imagex内核进行wim或esd方式的备份与还原,这样还可方便将备份还原成wimboot等类型的系统。因gho文件要还原成其他类型的系统时,先要将其还原成分区或VHD系统,才能用工具还原成wimboot等类型的系统,极不方便。
4.用bootice对gpt分区硬盘的某一分区或多个分区隐藏后,用ghost12原版软件查看GPT分区硬盘时,会出现“unknown"的出错提示。若用bootice显现GPT分区硬盘的全部分区后,再用ghost12查看GPT分区硬盘又正常。或许bootice1.34版已作改进不会出现这一问题(未作测试)。
5.以bios或uefi方式启动硬盘winpe均不能启动时,用U盘引导进入winpe,用DiskGenius查看硬盘出现分区表错误的提示,用该软件修改后就能正常启动了。
6.当用dism++、wimtool等工具挂载wimboot.wim文件到某目录出错,无法删除该目录下的文件时,可用360安全卫士、金山毒霸、电脑管家等带的文件粉碎工具,或下载独立版的文件粉碎机,粉碎文件或文件夹。但有时用这些文件粉碎机也不能删除这些顽固的文件夹,因其删除后又重生且文件夹改为他名。因此,要开劈一个临时分区、建立一个临时文件夹,当这个文件夹不能删除时,就采用格式化分区的办法解决。


二、uefi+gpt方式下安装正常分区系统
1.若用winntsetup工具安装原版系统时,安装文件类型选ALL(即安装bios和UEFI启动的所有文件),若ESP分区有相关efi文件且想手动修改时,或想按下步方法处理时,选“不要更新启动代码”;若有相关efi文件时,可将\efi\文件夹重命名为\efi_old\,再选“用bootice.exe或bootsect.exe更新启动代码”,可在ESP分区建立或更新\efi\文件夹下的相关启动文件。即使选“不要更新启动代码”,也会设置Windows Boot Manager为第一启动项,其启动文件设定为\EFI\Microsoft\Boot\bootmgfw.efi,且把\EFI\Microsoft\Boot\文件夹下的bootmgfw.efi文件更换为该版本微软的标准启动文件,还会修改\EFI\Microsoft\Boot\BCD,将刚安装系统的启动项写入BCD中。

2.安装gho版系统时,将其克隆至系统分区后,若已有/efi/文件夹下的相关引导文件,则忽略此步而进行手动修改,否则按以下进行:
不要立即重启进入新安装的系统,须重启进入win8pe系统(也可是已安装好的win8系统,为了保证启动文件的兼容性,不要用win7、win10的PE系统或实机系统,当然也不是尚未安装好的系统),用以下方法之一处理:
⑴用以下命令建立新系统的uefi启动文件:
X:\>bcdboot c:\windows /f all /s f: /l zh-ch
其中X:为win8pe所在的系统分区,一般显示为boot(x:)
c:\为新安装的系统分区,
f:为esp分区,并导入语言为中文。
执行完此句后要进入esp分区是否建立了efi文件夹及其下所需的文件。

⑵对手工编辑/efi/文件夹下的BCD等文件。
⑶用bootice将windows boot manager为第一启动项。
3.再启动进行余下的安装过程。
⑴一定要以windows boot manager方式启动,不能以grub2或xorboot等其他方式启动,因这样才能保证其安装过程中将安装信息写入\efi\Microsoft\Boot\BCD中,才不会出现一中所说的几个问题。
⑵要按设置本地帐户方式设置帐户,同时建议用户名不要有密码,否则忘记后就得重装系统了。因win8/win10系统,只要电脑连接了网线且系统自动安装了网卡驱动后,就会要求上微软的站点设置帐户(这可设置自己的图片作为登录的肖像,但有失秘危险),可断开网线,也可设置本地帐户,对win8来说,点开“创建帐户”->“不使用microsoft帐户登录”即可设置本地帐户。进入桌面后,右击“计算机”-> 管理->本地用户和组->用户->双击administrator帐户,去掉“帐户已禁用”前的勾,并勾选“密码永不过期”->注销->以administrator帐户登录->控制面板->大图标->用户帐户->删除安装系统建立的帐户如abc等。

4.激活系统,安装驱动,打系统补丁,安装有关应用软件,在uefi+gpt方式下即安装完毕。安装驱动要使用未经第三方签名的驱动(如一些老的驱动)时,就要禁用win7/win8/win10的数字签名,其方法是:用bootice打开BCD,用高级编辑模式,在本系统的启动项下的右窗口中,右击鼠标新建参数添加(若有此项就不添加)bootmenupolicy,其值设为legacy(传统模式),但若想恢复标准(图形)模式就选standard。并用windows boot manager方式启动,出现启动菜单(有两个启动项及以上时)后,就按F8(若只有一个启动项时,就狂按F8,技巧是加一个win8pe的启动,就不会狂按F8),选禁用数字签名项后启动系统,即可使用未经签名的驱动。
5.支持uefi启动的正常分区系统
⑴64位架构电脑支持uefi+mbr及uefi+gpt启动的64位系统:winvsta_x64/win2008_x64、win7_x64/win2008r2、win8.x_x64/win2012r2、win10_x64/win2016r2,其中/后的系统是其前系统的服务器版。现95%以上的电脑均是64位硬件系统。
⑵32位架构电脑支持uefi+mbr及uefi+gpt启动的32位系统:winvsta_x32/win2008_x32、win7_x32、win8.x_x32、win10_x32,后3个系统尚无服务器版系统。现只有不到5%的电脑是32位硬件系统。
⑶64位架构电脑不支持32位系统的uefi方式启动,32位架构电脑不支持64位系统的uefi方式启动。


三、bios+gpt方式下安装正常分区系统
(一)对支持uefi+gpt启动的电脑
1.按二中所述uefi+gpt启动方式安装好系统。
2.检查该系统所在分区有无boot文件夹及bootmgr,若无,就拷入同系统版本的这些文件,并编辑\BOOT\下的BCD(虽不用这些文件启动,但若无这些文件却不能启动,原因是用grub4dos+ntboot启动时,其要用该分区\boot\bcd来替换ntboot置入内存中的bcd后再启动)。这样就可直接在bios+gpt方式下启动系统了,且启动后系统也是激活的。到此就可备份系统了。

(二)对不支持uefi+gpt启动的电脑
1.在bios+gpt方式下安装winnt6系统,含winvista/win2008/win7/win2008r2/win8.x/win2012r2/win10等的32位和64位分区系统的测试
因bios+gpt方式下,不能直接读取gpt分区硬盘中的bootmgr及boot文件夹下的bcd(会出错退出)。只能采取以下方式之一启动:

⑴用grub4dos读取一个ima软盘映像文件包(其内含bootmgr及\boot\下的bcd等文件)
title win8_x64_gpt_安装_with_setup_winnt6.ima
find --set-root --devices=h %pathimg%setup_winnt6.ima
#须用grub4dos 0.46a版本,以不用--mem参数
#map --mem %pathimg%setup_winnt6.ima (fd0)
map %pathimg%setup_winnt6.ima (fd0)
map --hook
rootnoverify (fd0)
chainloader +1

⑵用ntboot启动
title win8_x64_gpt
set sysdsk=(hd0,6)
#上句表示gpt分区系统所在的分区,不同的系统修改上句所指的分区编号即可
set pntboot=/boot/ntboot/ntboot
find --set-root --devices=h %pntboot%
%pntboot% nt6=%sysdsk%
boot  

⑶用xorboot_0.74启动
经测试,以上三种方式均只能用于启动已安装好的winnt6系统,即使在方式一中不带--mem参数、且其内BCD为系统所在分区的BCD拷入的,也只能启动而不能安装系统,因安装时不能回写信息到gpt分区硬盘的BCD中。若采用方法一强行安装,因系统在安装中要写分区表,还
会导致分区表出错。

特别是对winvista_x32/win2008_x32系统,无论是在gpt分区中新安装,或是mbr分区中安装好的系统,只要将其克隆或提取到gpt分区中,均不能运行。
因此,在bios+gpt方式下,对winvista_x32/win2008_x32系统只能安装为vboot方式的VHD系统(详见下),而对其他NT6系统,可采取如下变通方法安装。
2.变通法——安装win7_x32及以后系统概述
⑴方法一:推荐,U盘作启动盘安装法(详见后)。
⑵方法二:在本机上另挂一硬盘,为MBR分区结构,在bios+mbr方式下,在其上安装好winnt6系统,作好备份后,再用Ghostexp等工具提取到gpt分区中。

⑶方法三:用DiskGenius专业版将gpt分区硬盘转为mbr分区结构,安装好winnt6系统后,再
用DiskGenius专业版将硬盘转为gpt分区结构。

⑷方法四:在bios+gpt方式,先安装为VHD系统(其内部为MBR分区结构),待安装完成后,再在WINPE下提取到某分区。详见安装VHD(X)系统部分。
⑸方法五:用clover模拟环境。一是64位架构电脑可用clover32模拟32位架构电脑以uefi方式安装启动32位系统,二是32位架构电脑可用clover64模拟64位架构电脑以uefi方式安装启动64位系统。此法未测试。但据有的网友讲,此法性能很差或多数情况下模拟不成功。
3.bios+gpt方式安装win7_x32及以后版本系统实战记录——U盘(可用mbr分区硬盘的主分区代替)作启动盘安装法
虚拟光驱虚拟win7_x32原版安装ISO -> 用winntsetup工具安装,选虚拟出的光驱中sources\下的install.wim,启动分区选U盘(分区文件系统为fat32或ntfs,插入usb2.0而非usb3.0接口中,因后者另需驱动),系统分区选硬盘的某一gpt分区 -> winntsetup部署完后,复制U盘中的bootmgr及boot文件夹到系统所在分区  -> 用U盘启动进行安装,因安装中能将有关信息回写到U盘中的BCD中,能正常安装成功进入桌面 -> win7_x32/x64须用CHEW-WGA_0.9激活,win2008r2/win8/win2012/win10用KMS类工具按kms方式激活 -> win7/win2008r2用win7的驱动,win8.x/win2012r2用win8的驱动,win10用win10或win8的驱动 -> 安装好后用xorboot或grldr+ntboot从硬盘启动系统 -> 备份为wim文件(方便以后DIY)。
注1:不能用dism++工具安装,其一是须用其他工具从原版系统iso文件中把wim文件中需用的某卷提取成一个wim文件,二是启动文件分区不能选U盘,只能选gpt分区硬盘的esp分区,但选esp分区时在更新esp分区的启动文件又出错,原因是其按uefi+gpt方式进行更新,但此时是bios+gpt方式启动的,当然出错。
注2:用生成的备份包win7_32_wimboot.wim,生成wimboot+vhd指针系统,启动到中途出错退出。原因是win7_32_wimboot.wim包中未含wof.sys驱动,按其后的wimboot系统安装所述的方法处理即可。
注3:此法不能安装winvista_x32/win2008_x32系统,只要将其写到gpt分区,不论采用U盘或其他方式启动,均不能启动gpt分区中的该两个系统。


四、安装Compact(压缩)分区系统
Compact(压缩)是Win10引入的新功能,是WimBoot的升级版,可大幅度缩小系统盘体积,同时无需像WimBoot那样需要额外依赖一个指针文件系统。这种方式其实是按照规定压缩算法将wim文件解压到某个硬盘分区的根目录(不能到某子目录)上成为分区系统,其他同正常分区系统。其性能略低于正常分区系统。
目前,只能用Dism++安装,其已深度整合Compact功能,已经兼容Win7/win8.0/win8.1/win2012r2/win10等的64位系统使用Compact模式,Compact模式驱动为wofadk(dism++打开后处理前会给非win10的NT6系统自动注入wofadk.sys驱动,使这些非win10系统能转换为Compact模式),可按bios+mbr/uefi+mbr/bios+gpt/uefi+gpt四种方式正常启动。而win7/win8.x/win10的32位系统,其受限情况与正常分区系统相同。
(一)安装新系统
启动Dism++ -> 点“文件”--“释放映像”,或“恢复功能”--“系统还原”-> 选windows原版映像中的install.wim或原版esd文件(对于加密的esd,可以使用Dism++的ESD解密功能,点击文件-> 格式转换->ESD解密即可) -> 选映像号,并务必勾选“Compact” -> 选映像存放目录为某分区根目录(只能为根目录),表示系统安装到此分区 -> 点“完成”,并耐心等待其释放完毕 -> 将该分区压缩系统添加进BCD -> 安装与启动的其他部分同正常分区系统。

注:Dism++使用特别说明,若在纯64位PE中使用时,将无法离线处理32位系统,可能导致处理的32位系统出错。因此处理32位系统时,须在win7_x64及以后版本的实机系统下运行dism++工具。系统备份时的“可启动”选项,为生成启动文件,为生成PE用,而非加入wof.sys驱动。
(二)还原系统
若系统安装好后,已用Dism++或CGI等工具作了系统备份,如备份文件名为win8.wim。方法是:

1.还原到原安装分区
⑴原系统已为Compact系统,可用CGI工具将备份文件wim直接还原到原分区。但建议还是用Dism++工具还原比较妥当。
⑵原系统为正常而非Compact系统,需还原为Compact系统时,只能用Dism++工具还原。方法同(一),但选择映像文件时需选系统备份的文件如win8.wim。

2.还原到其他分区
⑴先按方法1进行还原,再按下步⑵处理。
⑵用注册表修改法修改系统盘符(重置系统盘符),否则进不了系统桌面。以下操作均在当前系统或PE中进行:

第一步:打开 regedit 导出本机HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices为reg文件保存到某盘某目录下,用记事本打开该reg文件,把内容[HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices]改成[HKEY_LOCAL_MACHINE\000\MountedDevices]保存备用。如为sys.reg
第二步:打开regedit,用加载配置单元命令,若还原到的系统的盘符为H:,把 H:\Windows\System32\config\system 挂上HKEY_LOCAL_MACHINE 取名为000;把 HKEY_LOCAL_MACHINE\000\MountedDevices中的内容全部删除;导入以上保存备用的sys.reg,编辑 MountedDevices,保留H:盘及其对应的UUID项,删除其余项,若H:盘及其对应的UUID项的UUID值不相同,复制H:盘的UUID值,将UUID项的值修改为与其相同,把\DosDevices\H: 改名为 \DosDevices\C:;选中000项,卸载配置单元,退出 regedit。
(三)撤销Compact系统
若Compact系统在本机运行相当慢,或不能正常运行,打开Dism++工具,选中当前系统,点“撤销Compact”,即解压当前系统为正常分区系统,所占盘的空间将扩大。撤销时建议在win8pe中进行,在当前系统中撤销,可能导致文件解压出错。

我安装的win10系统,其正常分区系统占用空间18G,按最大压缩率备份成wim文件占用空间5.1G,压缩率为28.4%。在PE中以Compact方式将其释放到另一分区完成时占用空间7.78G,启动进入该Compact系统后在当前系统及PE中均显示占用空间13.1G,即Compact方式的压缩率为13.1/18=72.8%。撤销Compact后,其占用空间近18G。


五、安装VHD(X)系统
(一)类型与启动方式
1.原生VHD(X)系统。win8.x_x32/x64、win2012r2、win10_x32/x64,支持原生VHD系统和VHDX系统能在对应位数的架构电脑上以bios+mbr、bios+gpt、uefi+mbr、uefi+gpt方式的启动。

2.原生VHD系统。win7_x32、win7_x64、win2008r2支持原生VHD系统的启动。其中win7_x64、win2008r2的VHD系统支持64位架构电脑的bios+mbr、bios+gpt、uefi+mbr、uefi+gpt方式启动,win7_x32的VHD系统在64位电脑上只支持bios+mbr或bios+gpt方式的启动。特别注意的是,win7、win2008r2均不支持 VHDX 系统,将其安装为此类系统时,不能启动(将会出错退出)。
3.vboot驱动的VHD系统。winxp_x32/x64、win2003_x32/r2、winvista_x32/x64、win2008_x32/x64,本不支持VHD系统,在第三方工具vboot支持下,可安装为bios+mbr或bios+gpt方式启动的VHD系统。winvista_x64、win2008_x64虽支持uefi+mbr或uefi+gpt方式启动的分区系统,但因vboot不支持uefi方式启动,其VHD也当然不支持UEFI方式启动。其启动机制是:vboot将VHD系统虚拟为一个分区->winnt6系统调用VHD内部的bootmgr和boot文件夹下的BCD启动,NT5系统调用内部的ntldr+boot.ini启动。
因此,与wimboot系统相比,建议做成VHD系统,一是适应广(从winxp至win10通吃),二是维护方便且安全(改名、改所在目录、移动到其他分区均不会导致指针与主文件失联),三是运行速度稍快(文件未压缩)。
(二)安装要点
以bios+mbr、bios+gpt、uefi+mbr、uefi+gpt之任一方式启动的VHD(X)系统,必须注意以下三点:
⑴VHD(X)系统的内部,必须是mbr分区结构(不能为gpt分区结构),且分区文件系统类型为NTFS、分区为主分区并激活,分区启动类型为ntldr或bootmgr(视安装的系统不同而不同,winxp、win2003为NT5系统,启动类型为ntldr;其余为NT6系统,启动类型为bootmgr)。

⑵必须存放在mbr或gpt分区硬盘的NTFS分区中,存放在硬盘越靠后的分区启动越慢。
⑶原生VHD(X)系统不靠存放在其内部的bootmgr和boot目录下的BCD等文件来启动,而是靠存放在分区上的外部bootmgr和boot目录下的BCD等文件来启动,因此原生VHD(X)系统内部不存放bootmgr和boot目录下的BCD等文件。由此:
①对bios+mbr方式启动的VHD(X)系统,必须在安装后的第一次启动前,编辑好用之启动的分区上的\boot\目录下的BCD,以让其在安装过程中将有关信息写入BCD中,否则不能正确安装而失败。
②同理,对uefi+mbr方式启动的VHD(X)系统,必须在安装后的第一次启动前,编辑好用之启动的分区上的\EFI\Microsoft\Boot\目录下的BCD,以让其在安装过程中将有关信息写入BCD中。
③而对欲以bios+gpt方式启动的VHD(X)的NT6系统,因根本不能读取外置gpt分区上的\boot\目录下的BCD进行启动,而以grub4dos不带--mem参数调用软盘映像ima包(其内含bootmgr和已编辑好的\Boot\目录下BCD等文件)启动,或调用ntboot工具包启动,或用xorboot启动,用这几种方式之一启动后进行安装时,因均不能将其在安装过程中有关信息写入BCD中,会导致安装失败。因此,正确做法是:先按①、②所述,编辑好\boot\目录下的BCD,和\EFI\Microsoft\Boot\目录下的BCD;以uefi+gpt方式启动,此时就能正确安装好VHD(X)系统了,且要激活系统并安装好驱动;再以bios+gpt方式启动,就能正常进入VHD(X)系统了,此时系统也已激活且能正常使用了。
④按③所述,对不支持uefi启动的原生VHD系统,如win7_x32的VHD系统不支持64位架构电脑的UEFI启动,或电脑本身不支持uefi启动,要安装在bios+gpt方式运行时,以另挂一mbr分区硬盘或以U盘启动(其上的BCD要先编辑为启动gpt分区上的系统含VHD系统)安装完成后克隆到gpt分区硬盘中的方法,则会成功;或用clover32模拟以uefi+gpt方式安装VHD系统,然后可直接克隆到分区中成为分区系统,以bios+gpt方式运行。特别注意的是win7_x32只有企业版和旗舰版才支持VHD方式,而它的其余版本均不支持VHD方式。
⑤按③所述,对不支持uefi启动的vboot驱动的VHD方式的NT6系统,如winvista或win2008的VHD系统,可在bios+mbr或bios+gpt方式下安装和运行。
⑥vboot驱动的VHD方式的NT5系统,如winxp或win2003的VHD系统,要安装在bios+gpt方式运行时,可直接在此方式下调用vboot或grub4dos+ntboot启动进行安装。因NT5系统可直接读取GPT分区根目录的NTLDR启动来安装。
(三)bios+gpt方式安装win7_x32及以后版本原生VHD(X)系统实战记录——U盘(可用mbr分区硬盘的主分区代替)作启动盘安装法
用系统的磁盘管理创建15-40G的VHD或VHDX文件(内部结构为mbr分区结构) -> 虚拟光驱虚拟win7_x32原版安装ISO -> 用winntsetup工具安装,选虚拟出的光驱中sources\下的install.wim,启动分区选U盘,系统分区选VHD(X)挂载的盘符 -> winntsetup部署完后,复制U盘中的bootmgr及boot文件夹到系统所在分区(为以后DIY备用,察看该BCD应是启动该VHD文件的)  -> 用U盘启动进行安装,因安装中能将有关信息回写到U盘中的BCD中,能正常安装成功进入桌面 -> win7_x32/x64须用CHEW-WGA_0.9激活,win8/win2012/win10用KMS类工具按kms方式激活 -> win7/win2008r2用win7的驱动,win8.x/win2012r2用win8的驱动,win10用win10或win8的驱动 -> 安装好后备份为wim文件(方便以后DIY使用) -> 还可将该备份wim文件还原到某gpt分区作分区系统(但因要更新设备,须用U盘启动让其更新完成进入桌面即可)。
(四)bios+gpt方式安装winvista_x32、win2008_x32的VBOOT驱动VHD系统实战记录
1.将原版winvista的iso文件中的wim文件的某卷写到winvista_x32.vhd中

用系统的磁盘管理创建15G的VHD文件(内部结构为mbr分区结构) -> 虚拟光驱虚拟winvista_x32原版安装ISO -> 用wimboot安装辅助工具将wim文件中的某卷提取出来(注意其卷号,一般是最后一卷) -> 用dism++工具的释放映像或系统还原功能,WIM文件选刚才提取出的卷,系统分区选VHD挂载的盘符,且勾选添加引导,引导保存到VHD挂载的盘中。
注:不能使用winntsetup工具,一是其拒绝将win7以前版本系统保存到VHD文件中,二是不能将启动文件写到VHD挂载的盘(因windows在原生VHD中不保存引导文件)。
2.若硬盘模式为AHCI模式,则在winpe中用skyiar为其离线安装ahci驱动。安装时,一是不清理目标系统即插即用驱动、不清理目标系统磁盘控制器驱动,二是一般先用最高版本的skyiar,一定要待其导入完成,若未导入完成,需用较低版本的skyiar逐一再试,直至其导入完成。 对win2008_x32,因skyiar常常不能正确安装AHCI模式的磁盘驱动,则此步一定要略去不做,此为使win2008_x32启动时不蓝屏能正常部署的关键,切记。
3.离线打入vboot驱动。先拷入VBOOT所有文件至启动分区根目录的vboot目录中,若现行是64位系统用h:\vboot\tools\amd64\vbootctl prepare g:\vhdos\winvista_x32.vhd命令,现行是32位系统用h:\vboot\tools\x86\vbootctl prepare g:\vhdos\winvista_x32.vhd,将vboot驱动离线打入winvista_x32.vhd中。若在winpe中不能打入,在实体windows系统中打入即可。建议在win7_x32实机系统下进行,否则可能不能正常离线打入vboot驱动。并立即拷入vboot1.1已破解的vbootstor.sys,替换winvista_x32.vhd中的\windows\system32\drivers\下的同名文件。
4.写启动文件
用grub4dos启动vbootldr引导器:
title install vboot vhd_sys
#chainloader vbootldr.mbr
kernel /vboot/vbootldr
boot

再更改vboot/grub/grub.cfg,添加如此内容:
menuentry "winvista vboot vhd Install" {
  vboot harddisk="(UUID=0000678400004823)/vhdp/winvista_x32.vhd"
}

注:UUID=后的值,在windows下,用vboot目录下的vbootedit/vbootedit64命令按如下命令格式获得:
h:\vboot\vbootedit uuid g: >>uuid.txt
其中,g:为存放winvista_x32.vhd文件所在分区的盘符。

5.启动运行安装程序完成进入桌面后的第一件事是安装vboot驱动。该驱动未安装或安装完全正确后能正常启动,否则该驱动项出现叹号或将该出现叹号的驱动项卸载,均不能再启动进入系统了。正确安装该驱动使其不出现叹号的办法是,若手动选择让其自动安装,因其找不到驱动程序的位置,就出现叹号,此时,应手动浏览并将驱动程序的位置指向x:\vboot\tools\x86\drivers\vbootstor\目录下,让其装驱动即可。同时,应立即拷入vboot1.1已破解的vbootstor.sys,替换winvista_x32.vhd中的\windows\system32\drivers\下的同名文件。重启后,可见其驱动安装正确,且无叹号。
6.第二件重要的事是改系统盘符为c:。启动后,若系统盘符为d:、e:等,如为d:,应重启进入win7pe中,挂载winvista_x32.vhd为z:盘,打开注册表编辑工具RegWorkshop工具,按如下进行:
⑴在HKEY_LOCAL_MACHINE上,以加载配置单元的方式打开z:\windows\system32\config\SOFTWARE,如命名为0,选中0,用其搜索功能搜索“D:\”,要选中“Search/Replace In”组中的"Data"、"Values"、Keys"前的复选框;然后用“在查找结果中替换”功能,将搜索到的所有“D:\”替换成“C:\”,多搜索几次以防有漏网之鱼。但有些项被禁止修改的,就放弃修改;然后选中0项,卸载配置单元,如此则将修改结果保存到SOFTWARE中。
⑵修改配置单元SYSTEM(此项载明系统的注册信息)。先采取与上步相同的方法,打开z:\windows\system32\config\SYSTEM,将所有“D:\”替换成“C:\”,也多搜索几次;再按“四、安装Compact(压缩)分区系统”中重置系统盘符的方法进行修改;然后选中0项,卸载配置单元,如此则将修改结果保存到SYSTEM中。
7.第三件重要之事就是激活系统。建议激活或安装驱动前先作一个备份。千万不能用win7的激活工具CHEW-WGA_Activite0.9来激活,否则重启后再也进不了系统了。而应使用Windows Loader_2.x来激活。重启后不要立即进入该系统,而是进入winpe,挂载winvista_x32.vhd,查看其根目录下的软激活代码文件,如为DJUGE,则用bootice工具将winvista_x32.vhd的分区引导记录更改为grub4dos或ntldr类型,但启动文件名更名为DJUGE即可。重启进入该系统后可见其已激活。此法是激活vboot驱动的winvista/win2008的VHD系统的通用方法。
8.再就是装其余各项驱动程序。因it天空的万能驱动不支持win2008、、winvista系统,可将win7_x32的驱动备份下来,作为该两个系统的驱动,还可试试winxp的驱动。也可从网地下载最新版的驱动精灵或驱动人生,若不行再从网上下载本机驱动程序的方法来安装驱动。
9.安装好各项应用软件,再进入winpe生成子VHD文件,用其来启动即可。
10.用此法在bios+gpt方式下成功用原版ISO安装winvista_x32.vhd和win2008_x32.vhd。
11.若将已安装好的winvista_x32、win2008_x32的VBOOT驱动VHD系统,克隆到gpt分区中,仍不能运行。因该两个系统是根本不能作为gpt分区系统来启动的。
(五)vhd(x)的VirtualDiskExpandOnMount值设置
1.原生vhd(x)系统
将vhdx系统的\Windows\System32\config\system 挂上HKEY_LOCAL_MACHINE,取名为000,将HKEY_LOCAL_MACHINE\000\ControlSet001\Services\FsDepends\Parameters\下的"VirtualDiskExpandOnMount"的值改为“dword:00000004”,即直接修改为4(其值默认为1),再卸载配置单元。

注:这个值决定着VHD(X)挂载后不会自动扩展到所设的最大容量,也即用了多少硬盘空间就是多少。若调用的是子VHD,则占用的空间为父VHD+子VHD的实际空间的和。如VHD的最大容量设为20G,virtualDiskExpandOnMount的数据值设为1时,在VHD系统启动后,用属性查看VHD挂载分区所有文件占用容量时,可能只有几个GB,但查看挂载的父VHD或子VHD文件的占用空间时是撑满20GB的;VirtualDiskExpandOnMount的数据值设为4时,VHD文件的占用空间不会撑满到设定的最大容量。应挂载父VHD或VHDX进行修改,若挂载的是差分盘,只影响当前所挂载差分盘,不影响父级VHD,当然把子VHD合并到父VHD后,则影响父VHD了。
2.vboot驱动vhd系统
HKEY_LOCAL_MACHINE\000\ControlSet001\Services\项下,无\FsDepends\Parameters\子项,更无VirtualDiskExpandOnMount数据项。经测试,对于vboot驱动的vhd系统,无需设置该数据

值,只要是创建VHD文件时是设定为动态扩展(不是固定大小)的,运行VHD系统时其占用的空间不会扩展到设定的最大容量值,其占用的空间为父VHD+子VHD占用的实际空间的和。

(未完,余下部分见2楼)




作者: qj_tzy    时间: 2016-6-20 16:04
(续):

六、安装wimboot系统

经测试,win7_x64、win2008r2、win8_x64、win2012r2、win10_x64、win2016r2在uefi+gpt及bios+gpt模式下,按本法均测试成功,其中win7_x64、win2008r2须用vhd镜像作指针文件,其余用vhd或vhdx镜像作指针文件;win7_x32、win8.x_x32、win10_x32在bios+mbr及bios+gpt模式下,按本法均测试成功,因其在64位架构电脑中不支持uefi启动,无法测试uefi启动模式。有网友说win2012r2不支持wimboot系统,但我按此法安装成功。

(一)wim文件的压缩类型及有关说明

1.wim文件中有相同文件时,第二个及以上的相同文件则使用指针(即wim文件中也有指针文件),因此体积大大减少,但未安装wof.sys驱动(win8PE和win8及以上系统一般已安装wof.sys驱动)时,读取指针文件时会出错。

2.wim文件的压缩方式有xpress(fast参数) 、lzx 和lzms等三种,压缩率有:“不压缩”(无意义,未使用)、default或wimboot或xpress4k(wimboot采用的压缩率、4096b,但用xpress4k压缩时wimboot的启动兼容标志显示为no)、xpress8k(8192b)、xpress16k(16384b)、xpress32k(32768b)、lzx或lzx32k(块大小为32768b,max参数,常规wim镜像使用的默认压缩率,即wim文件的最大压缩率,其压缩率比xpress32k高)、lzms(该压缩类型为esd,固实压缩方式,块大小为128kb,即131072b)。

3、wimboot文件不能直接用于启动,必须建立指针文件系统,从指针文件系统启动。且系统更新、安装软件、删除软件等对系统的修改,全部保存在指针文件系统中,但可将这些更新修改保存到custom.wim(在wimboot文件的同一文件夹下)。此wimboot的内容不被修改,真正起到备份文件的作用。

4.查看一个wim文件是否为WIMBOOT压缩映像,用命令:dism /get-wiminfo /wimfile:《WIM路径》 /index:1,若显示WIM Bootable为Yes,即表示支持,为NO则不是。但dism命令支持的目标系统为win8/win2012/win10而不支持win7。也可用WimKit工具查看,先用虚拟光驱工具虚拟ISO文件,再将虚拟出的光驱中的install.wim拖入wimkit的信息查看窗口中,即可查看其信息。

5.指针文件系统和WIMBOOT压缩映像可以存在在一起,也可分开存放。用此方式安装多系统时,为方便管理,建议以系统名称建立目录,如\win10_x64\,将wimboot文件、custom.wim,及vhdx指针文件存放在该目录下。

6、wimboot系统支持固态硬盘、机械硬盘、移动硬盘和U盘(但U盘上运行要经特别处理)。

7、wimboot系统安装的一般步骤:因win8.1及win10的原版系统中集成wof.sys驱动,可直接从原版iso中的install.wim进行wimboot系统的安装,或按win7等系统的安装方法安装。而对win7_x32/x64、win2008r2、win8.0、win2012r2原版系统均未集成wof.sys驱动,一般要先安装为分区系统或vhd/vhdx系统后,再向系统分区添加wof.sys驱动,然后备份为wimboot压缩文件,再建立指针VHD系统才可。向系统分区(若是vhd系统须先挂载为分区盘符)添加wof驱动的方法有三:一是进入当前系统中,运行别人编写的批处理模块,为当前系统在线添加x86或x64位的wof驱动。二是用Wimboot辅助工具GUI v1.8,选定系统分区后,点“添加wof驱动到系统盘”,为选定的分区系统离线添加wof.sys驱动。同时还要为指针系统添加wof.sys驱动,因指针系统及wimboot包中均有指针文件。注:Wimboot辅助工具GUI v1.8的增量备份不支持卷映像,其生成的增量备份文件名为原wimboot文件.w1,第2次备份为原名.w2,第n次备份为原名.wn。三是使用Dism++工具时会自动为其添加wof.sys驱动。

8、wimboot系统最大的不足之处是:若将WIMBOOT压缩映像文件置放在GPT分区中,建立指针文件系统后,因GPT分区经常因某种不明因素导致分区出错,就得用DiskGenius重建分区表,这样,指针文件系统就会与WIMBOOT压缩映像文件失去联系,因指针文件所指向WIMBOOT压缩映像文件所在分区的UUID变化了,就得重建指针文件。

(二)建立wimboot映像文件

1、将安装好的win7及以上系统生成WIMBOOT压缩映像

方法一:命令法——适用于目标系统为win8/win2012/win10(下同)

DISM /Capture-Image /ImageFile:"D:\WIMBOOT.wim" /CaptureDir:X:\ /Name:"Windows 8.1 Pro with Update" /WIMBoot

注:上句把在x:分区已安装好的系统,捕获到D:\WIMBOOT.wim中,/Name:是以后在WIMBOOT.wim中显示的映像号名,可以取一个自己喜欢的名称。
Dism是win8.1及以上系统自带的命令,要在x:\windows\system32>路径上才能调用Dism命令。x:为当前系统的盘符,若在win8pe系统中,则为pe的系统盘符。
若不带/WIMBoot参数,则把X:分区的系统备份为最大压缩率的wim映像文件。

若系统已安装好且已备份为wim文件(一般为非WIMBOOT压缩),如win10.wim,要转换为“WIMBOOT压缩映像”,则用:
Dism /Export-image /WIMBoot /SourceimageFile:D:\sysbak\win10.wim /Sourceindex:1 /DestinationimageFile:D:\wimos\wimboot.wim
DestinationimageFile 是生成Wimboot.wim保存的位置和文件名。
Sourceindex:1,选映像号为1,若要输出第2个映像,则选映像号为2,依次类推。wimboot.wim一般只保存一个映像号,以便管理。

注:Dism 的expot命令加wimboot参数就做了两件事:把镜像从LZX转换为xpress-4k压缩方式,并添加wimboot标记。但wimboot标记其实可有可无,使用WinNTSetup安装会无视这个标记。

方法二:用dism++工具

在当前已安装好的系统或PE系统中(建议在PE系统)-> 启动Dism++ -> 点“恢复功能”--“系统备份”-> 浏览选“WIMBOOT压缩映像”(不能选其他类型压缩映像,否则即使建立了指针文件,也不能启动,选为esd文件类型时更不能)选定一个文件名,如win10_x64.wim -> 点“确定”,并耐心等待备份完毕。此法一般只是将已安装好的win7及以上的系统,生成“WIMBOOT压缩映像”。

方法三:用通用wimboot安装辅助工具(win7不被dism内核支持,应选wimlib内核,不知软件作者是谁)
用其捕获capture功能实现。

方法四:用chenall的wimboot安装辅助工具2.5(最新版,支持win7,但要安装其附带的Windows6.1-KB3033929-x64补丁)
wimboot映像文件默认存放在选定分区的\System Volume Information\wimboot.wim,可按B键另行选定存放文件夹和文件名,压缩率选default。并选重置盘符。
若选其他压缩率则表示生成普通备份,特别地若选压缩率为lzx 32k,则表示生成esd类型的普通备份文件。

注:将wimboot文件生成到\System Volume Information\(系统卷标信息文件夹),以后还要生成custom.wim到该目录,主要是为此两个wim文件与指针文件系统存放在同一分区(成为分区指针文件系统)用。也可将其放到回收站($Recycle.Bin或RECYCLER)目录下(当然容易被用户当作垃圾文件被清空,建议不放在此目录)。当用命令或工具扫描分区指针文件系统的更新生成custom.wim时,该两个目录是被排除在外的,其目录下的文件更新等不会被扫描生成到custom.wim中。

方法五:用Wimboot辅助工具GUI v1.8(不知软件作者是谁)
功能强大,建议使用。

2、将原版win7及以上系统生成WIMBOOT压缩映像

方法一:命令法
Dism /Export-image /WIMBoot /SourceimageFile:D:\sources\install.wim /Sourceindex:1 /DestinationimageFile:D:\wimos\wimboot.wim

D:\sources\install.wim 是先将原版系统iso文件解压到D盘的install.wim,也可用虚拟光驱软件加载原版系统ISO文件为某盘。
Sourceindex:1,选映像号为1,若要安装映像号为2的系统,此处选2,依次类推。

方法二:用通用wimboot安装辅助工具
用导出export功能实现,要选压缩率为xpress 4k(但wimboot的启动兼容标志显示为no,不影响使用)。若选压缩率为lzx,则导出esd文件。

方法三:用dism++等其他3个工具
dism++工具不能从用虚拟光驱软件虚拟原版系统ISO文件的虚拟光驱中\sources\install.wim提取wim文件。chenall的wimboot安装辅助工具2.5,及Wimboot辅助工具GUI v1.8,均无此功能。因此该3个软件均不能完成此功能。

(三)建立指针文件系统

1、建立指针文件系统到分区中

⑴第一步:释放指针文件到目标分区

方法一:用命令DISM /Apply-Image /ImageFile:d:\wimboot.wim /ApplyDir:x: /Index:1 /WIMBoot
上句将d:\wimboot.wim的指针系统建立到x:分区。
若省略/WIMBoot参数,则用不压缩方式释放文件到分区上,变为普通安装方式。
若是VHD或VHDX指针文件,则须先挂载此指针文件为x:盘。

方法二:用dism++工具,占“释放映像”,或“系统还原”模块,选定上步备份的“WIMBOOT压缩映像”win10_x64.wim并选映像号(一般为1个),指定释放的目标分区,并勾选“WIMBOOT”,则把WIMBOOT压缩映像文件的指针文件全部释放到目标分区中。该分区的文件个数与WIMBOOT压缩映像win10_x64.wim中的文件个数相同,只不过全是这些文件的指针文件,一般占用空间不到1G。若是VHD或VHDX指针文件,则须先挂载此指针文件为x:盘。

方法三:用winntsetup:在第一个框中选在(二)中生成的wimboot映像文件,在第三框选目标分区,在版本处选映像号,挂载安装驱动器选C:,勾选mode并选wimboot或xpress4k,点“开始安装”即可将指针文件释放到目标分区。推荐此法。若是VHD或VHDX指针文件,则须先挂载此指针文件为x:盘,若用该软件的VHD挂载功能进行挂载会退出该软件(似有BUG),须用系统的磁盘管理功能挂载,再选择挂载的盘符即可。

方法四:用chenall的wimboot安装辅助工具2.5,或Wimboot辅助工具GUI v1.8
若同时勾选重置盘符或清除系统盘符信息,则以下第二步可省略。

⑵第二步:修改系统盘符为指针文件系统所在的分区盘符

若上步释放指针文件到的目标分区是原安装该系统的分区,或用chenall的wimboot安装辅助工具2.5或Wimboot辅助工具GUI v1.8释放wimboot文件时重置了盘符,或用winntsetup安装已挂载c:分区自动更改了系统盘符,均可忽略此步。否则,要按照“安装Compact(压缩)分区系统”中的注册表修改法手动修改系统盘符为指针文件系统所在的分区盘符。也可用他人制作的fixletter.cmd批模块(我无此模块)更改:fixletter.cmd/currentos:c

⑶第三步:修改\EFI\Microsoft\Boot\目录下的BCD,按启动分区系统的方式修改。

注1:如上操作按uefi+gpt方式启动完毕后,再将电脑转到bios+gpt方式启动,也能正常启动,且系统为激活的。
注2:因此法要单独占一个分区,不推荐使用。

2、建立指针文件系统到VHD或VHDX文件中

⑴第一步:在当前或PE系统中,用磁盘管理功能,建立一个不小于10G(32位系统)或15G(64位系统)的VHDX系统(VHDX的性能忧于VHD,对win8/win2012/win10则不用VHD系统),或VHD系统(对win7/win2008r2只能用vhd系统),存储方式为动态扩展。其内部结构是:分区结构为MBR(不用GPT)、分区文件系统为NTFS、主分区且激活。然后挂载为某盘,如z:盘。

⑵第二步:按照“建立指针文件系统到分区中”的方法,将“WIMBOOT压缩映像”win10_x64.wim释放到VHD或VHDX系统挂载的分区如Z:盘中。

⑶第三步:按照“安装Compact(压缩)分区系统”中的注册表修改法修改系统盘符为指针文件系统所在的VHD或VHDX系统挂载的分区盘符。同时,要将vhdx系统的\Windows\System32\config\system 挂上HKEY_LOCAL_MACHINE,取名为000,将HKEY_LOCAL_MACHINE\000\ControlSet001\Services\FsDepends\Parameters\下的"VirtualDiskExpandOnMount"的值改为“dword:00000004”,即直接修改为4。

⑷第四步:用工具生成该VHD或VHDX系统的子VHD,如win10p_child.vhdx。

⑸第五步:修改\EFI\Microsoft\Boot\目录下的BCD,按启动VHD或VHDX系统的方式修改,以子VHDX如win10p_child.vhdx进行启动。

注1:如上操作按uefi+gpt方式启动完毕后,再将电脑转到bios+gpt方式启动,也能正常启动,且系统为激活的。
注2:因bios+gpt及uefi+gpt启动方式,均是以外部BCD启动该VHD或VHDX系统,因此该VHD或VHDX系统内部不含boot文件夹。
注3:因此法不单独占一个分区,便于安装多系统,推荐使用。

(四)安装wimboot系统的其他有关问题

1、将指针文件系统中的修改更新保存到custom.wim

⑴命令法
在当前系统下,须右击开始按钮,以“命令提示符(管理员)”方式进行DOS命令行窗口,执行:
DISM /Capture-CustomImage /CaptureDir:c:\

但有时会出现另一程序正在使用该文件无法访问的提示而退出,因此要在win8pe中执行以下命令:
DISM /Capture-CustomImage /CaptureDir:X:\

c:或x:为指针文件系统所在的分区,或vhdx指针文件系统挂载的分区(须先挂载),生成custom.wim保存在wimboot映像文件的相同目录下。custom.wim生成后可改名,如win10_x64_custom.wim。

注1:该命令只是将更新保存到custom.wim中,并不同时优化或清除指针文件系统所占的增量空间,指针文件系统会随着使用时间的增长和安装软件的增加而不断地增加占用空间。

注2:指针文件系统启动时,只是调用wimboot文件,因此指针文件和wimboot文件不能改名或移动。而不调用custom.wim,因而此文件可改名或移动到他处,也可删除。

注3:第二次及以后执行以上命令时,会提示文件存在而退出。此时,应将custom.wim改名或移动到他处后,再执行以上命令即可。

注4:若捕获后,用custom.wim重建了指针文件系统,再次捕获生成custom.wim时会出错,因指针文件系统的更新已于先前写入了custom.wim。

⑵用通用wimboot安装辅助工具
挂载vhdx指针文件系统如为x:盘->点捕获capture功能->捕获自定义映像custom.wim即可。

⑶用chenall的wimboot安装辅助工具2.5
选系统分区为挂载vhdx指针文件系统的盘符如为x:盘,按B按钮选择custom.wim的位置(与wimboot映像同目录),勾选“wimboot”,若同时勾选“仅捕获”,则只把指针文件系统中的更新写入custom.wim。若不勾选“仅捕获”,则会重建并优化指针文件系统,并关联custom.wim。推荐使用。

注意:该操作不能在当前系统中进行。若选原wimboot.wim文件,并选其中的一个映像号,点“应用到所选映像”,是将该映像应用到现行分区中(相当于还原指针文件系统)。

⑷用Wimboot辅助工具GUI v1.8
功能强于chenall的wimboot安装辅助工具2.5,且可自动还原指针文件系统,推荐使用。

⑸用dism++工具
点选系统分区为挂载vhdx指针文件系统的盘符如为x:盘->系统备份,并选wimboot压缩映像,并保存名为custom.wim到wimboot映像的目录下即可。若在pe下,选wimboot文件,则可将增加备份到wimboot文件中成为第2卷。

2、用custom.wim重建指针文件系统

⑴命令法
要用SWMFile参数指定Base wim文件为wimboot文件,即将指针文件与wimboot.wim与custom.wim关联,vhdx指针文件须先挂载且要格式化(否则有雍余文件占用空间将增大),在win8pe中进行:

DISM /Apply-Image /ImageFile:"d:\custom.wim" /SWMFile:"d:\WIMBOOT.wim" /ApplyDir:X: /Index:1 /WIMBOOT

再如:
DISM /Apply-Image /ImageFile:"h:\wimbootos\win10_x64_custom.wim" /SWMFile:"h:\wimbootos\win10_x64_wimboot.wim" /ApplyDir:I: /Index:1 /WIMBOOT

注:指针文件系统重建后,得到了优化,占用空间减少,custom.wim与custom.wim的大小与时间均不变。启动后,两者均被调用,想要重命名或移动custom.wim、wimboot.wim,均被系统拒绝。

⑵用chenall的wimboot安装辅助工具2.5或Wimboot辅助工具GUI v1.8
方法见上。

⑶用dism++工具/通用wimboot安装辅助工具/winntsetup工具
点选系统为挂载的vhdx指针文件系统,用dism++工具的“系统还原”,并选custom.wim,勾选“wimboot”,到VHDX映像挂载的盘符进行还原;或用通用wimboot安装辅助工具,用导出export功能,选映像文件custom.wim,目标分区选VHDX映像挂载的盘符导出;或用用winntsetup工具,选映像文件为custom.wim,目标分区选VHDX映像挂载的盘符,勾选mode并选wimboot或xpress4k进行安装。

本法只用custom.wim重建指针文件系统,因custom.wim是增量备份,不含有系统所需的全部文件,即使在挂载\Windows\System32\config\system修改注册表时,也无system文件,均无法进行。

3、合并custom.wim与wimboot映像

⑴用WimKit+winntsetup或dism++工具法
第一步:用WimKit合并custom.wim与wimboot映像
WimKit->高级->合并或导出->添加custom.wim与wimboot.wim->导出->选导出的wim文件名称及位置->勾选“兼容wimboot”->确定,即可合并导出。
注:用WimKit工具合并,不能分卷,只有1卷,即不是将两个wim文件合并为各存1个卷。

第二步:用winntsetup或dism++工具,用新建的wim文件,参加以上作法,先挂载vhdx文件系统将其格式化后,再重建指针文件系统。若不将其格式化而用覆盖法更新指针文件系统,则该文件系统将存在雍余的文件,占用空间将增大。

注1:若用chenall的wimboot安装辅助工具2.5或Wimboot辅助工具GUI v1.8,以上两步能同时实现,推荐使用。其中chenall的wimboot安装辅助工具2.5保存的增量文件名为x_win6.1-x86-日期时间@wimboot原名。

注2:经测试,两wim文件合一后,其性能略优于同时使用wimboot.wim及custom.wim的性能。

⑵命令法:在win8pe或win8及以上实机系统上以管理员身份执行

第一步:生成合成的wim文件
方法一:合并生成新wim文件
①用两条命令
DISM /Export-Image /WIMBoot /SourceImageFile:E:\wimos\wimboot.wim /SourceIndex:1 /DestinationImageFile:E:\wimos\wimboot_new.wim
DISM /Export-Image /WIMBoot /SourceImageFile:"E:\wimos\custom.wim" /SourceIndex:1 /SWMFile:"E:\wimos\wimboot.wim" /DestinationImageFile:"E:\wimos\wimboot_new.wim"

注1:先要导出wimboot.wim到新文件,因两wim文件原均为wimboot压缩格式,/WIMBoot参数可省略,/WIMBoot参数也可移到命令的最后。
注2:导出custom.wim到新文件时,须加/SWMFile参数指定基本(base)wim为wimboot.wim,否则会提示“指定的映像文件不包含资源区域”而不生成到新的wim文件中。
注3:对超过一行的命令,其文件名两端要加单引号(见第二句命令,但加单引号的文件名必须是含全路径的文件名),若还不能执行,则在DOS窗口中进入wimboot.wim的当前目录后,省略命令中的目录名称,如下句:
DISM /Export-Image /WIMBoot /SourceImageFile:E:custom.wim /SourceIndex:1 /SWMFile:E:wimboot.wim /DestinationImageFile:E:wimboot_new.wim
注4:生成后,为两卷,第一卷为wimboot(含wimboot的卷名信息),第二卷为custom.wim(含custom.wim的卷名信息)。

②用一条命令
DISM /Export-Image /WIMBoot /SourceImageFile:"E:\wimos\custom.wim" /SourceIndex:1 /SWMFile:"E:\wimos\wimboot.wim" /DestinationImageFile:"E:\wimos\wimboot_tmp.wim"

注:此法生成的wim文件只有1卷,占用空间比两卷的wim文件略小,卷名为custom.wim的卷名信息。此命令不识别/Name选项,如/Name:"Windows 10 x64 企业版"。

方法二:将custom.wim合并到wimboot.wim中
DISM /Export-Image /WIMBoot /SourceImageFile:E:\wimos\custom.wim /SourceIndex:1 /SWMFile:E:\wimos\winboot.wim /DestinationImageFile:E:\wimos\wimboot.wim
注1:不加/SWMFile选项时,对custom.wim提示“指定的映像文件不包含资源区域”,未能成功。
注2:加/SWMFile选项时,对custom.wim提示“dism失败,不执行任何操作”,估计是不能追加到所依赖的base wim中,也未能成功。

第二步:用winntsetup或dism++工具,重建指针文件系统。方法见上。

注:经测试,用两条或一条命令合并生成的wim文件,重建指针文件系统后,均能生成启动。用一条命令合并生成的wim文件,启动后有增量安装的软件。用两条命令合并生成的带有两个卷的wim文件,若用第2卷即custom.wim合并的卷重建指针文件系统,启动后有增量安装的软件;若用第1卷即wimboot.wim合并的卷重建指针文件系统,启动后没有增量安装的软件,只有最初安装的软件。因此,重建指针文件系统时,要用custom.wim合并的卷生成。

⑶用dism++或wimtool工具挂载custom.wim到某临时目录后合并到wimboot.wim中
也对custom.wim提示“指定的映像文件不包含资源区域”,未能挂载到目录成功。

4、指针文件系统与wimboot文件失联后的解决办法

若因用DiskGenius重建分区表、wimboot.wim或custom.wim改名或改所在文件夹或移动到其分区等原因,导致指针文件系统与wimboot.wim、custom.wim文件失去关联不能启动后,解决办法之一是:参照上方法,用wimboot.wim重建指针文件系统(无custom.wim时);或用wimboot.wim和custom.wim共同重建指针文件系统。但若是指针文件系统(含其子VHD文件)所在文件夹改名或移动到其他分区,则不需重建指针文件系统。若是wimboot.wim或custom.wim改名,或改了所在目录,可到wim文件所存放分区的System Volume Information目录下,修改*.dat文件中的目录名及wim文件名即可。最快且安全的办法是使用通用wimboot安装辅助工具的新版,其可在选dism内核时使用“其它dism”功能来重建链接。

5、指针文件系统的增量部分如何保存到wim文件(网友答案——用wimlib-imagex实现——未测试):

在PE下操作,假设WIN10.WIM只有1个分卷,VHDX挂载为H盘。

方法1——分离增量备份法

第一步 制作分离增量备份
wimlib-imagex capture H:\ C:\101.DWM --delta-from C:\WIN10.WIM "DELTA101" "BY XXXXX" --wimboot
第1次就101.DWM,第N次就10N.DWM

第二步:(日后)格式化H盘后重新生成指针文件
wimlib-imagex.exe apply C:\101.DWM --delta-from C:\WIN10.WIM 1 H:\ --wimboot
用第1次的备份就选101.DWM,用第N次的备份就选10N.DWM

方法2——内置增量备份法

第一步 制作内置增量备份
wimlib-imagex capture H:\ C:\WIN10.WIM "ADD-ON-1" "BY XXXXX" --wimboot
第1次备份就用ADD-ON-1,第N次备份就用ADD-ON-N ...

第二步 (日后)格式化H盘后重新生成指针文件
wimlib-imagex.exe apply C:\WIN10.WIM 2 H:\ --wimboot
用原始文件就用1,用第1次备份的就用2,用第N次备份的就用N+1 ...

6.保存wim及指针文件系统vhdx的安全措施
假设wim文件保存在wimboots文件夹下,指针文件系统vhdx保存在vhdp文件夹下,且前者在h:盘,后者在g:盘,方法如下:
⑴隐藏文件夹
用命令实现:attrib +h +s +r h:\wimbootos,及attrib +h +s +r g:\vhdp

⑵隐藏分区
用bootice工具隐藏分区h:及g:。若是GPT分区硬盘,虽用ghost12查看硬盘会提示出错信息,但不影响使用。在要用ghost12克隆或备份时再用bootice显现分区,克隆或备份完成后又将分区隐藏。

(五)64位架构电脑以bios+gpt模式启动安装win7_x32、win8_x32、win10_x32的wimboot系统实战
以安装win7_x32旗舰版系统为例:

1.建立wimboot.wim
以虚拟光驱软件加载原版安装文件iso ->打开通用wimboot安装辅助工具(选wimlib内核),选虚拟出的光驱中sources\下的install.wim,压缩方式选xpress4k,输出文件选wimboot即可。注:wimboot安装辅助工具,在输出wimboot文件时已为其添加了wof.sys驱动。

2.建立指针VHD文件
用系统的磁盘管理建立一个10G或15G的VHD文件,其内部格式为动态扩展、MBR、NTFS、主分区激活、bootmgr启动方式 -> dism++工具释放映像,选映像为刚才建立的wimboot,分区为VHD挂载的分区,勾选wimboot和添加引导,引导文件存放位置选U盘(插入USB2.0接口,FAT32/NTFA文件系统) -> 复制引导文件(其BCD是启动VHD文件的)到VHD挂载的分区中备用  -> 修改VHD挂载的分区系统的注册表,以重置盘符和防止VHD扩大到最大(方法见上)。

3.启动安装VHD指针系统

每次均以U盘启动,让其进行系统安装,直至进入系统桌面,用CHEW-WGA_0.9激活,安装驱动,安装应用软件。至此,所有安装更新均保存在vhd指针文件中。

4.保存VHD指针系统的更新至wimboot并更新VHD指针系统

第一步:用chenall的wimboot安装辅助工具2.5或Wimboot辅助工具GUI v1.8,挂载VHD指针系统为x:盘,只保存增量更新至wimboot文件中成为第2映像包,不用其自动更新vhd挂载的x:盘功能,因经测试,该两工具的该自动更新功能,均启动失败。

第二步:用dism++工具,释放刚才生成的wimboot文件的第2映象包至VHD指针系统,并添加引导至x:盘,再重置盘符。

重启,VHD指针系统已减少至几百M。

5.将该更新后的wimboot第2映像包释放到gpt分区,能启动,但启动后进入桌面前,出现无autochk程序而跳过autochk检测的提示而退出,无法正常启动进入系统。
存在的可能原因有以下几种,要分别进行处理:

⑴方法一:
第一步:如果C:\windows\system32\目录下没有autochk.exe这个文件,请从系统安装盘的I386目录下找到这个文件,然后覆盖到C:\windows\system32\目录下。
第二步:在开始 - 运行键入regedit打开注册表编辑器,找到HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager,看看右窗口有没有BootExecute这一项,如果没有就新建此项。然后,再右窗口中点右键选择“新建 - 字符串键”,数值名称为BootExecute,然后在该项上点右键,选择“修改”,在数值数据中填入(autocheck autochk *)【注意:请将括号内容复制,不包括括号在内!】。

⑵方法二:
进入某实机系统中,我的电脑--X盘(要修改的系统盘符)右键--属性---工具---差错----开始检查,这时,系统会提示你“有文件在占用系统文件,您希望下次启动电脑的时候,运行该程序吗?”,选择“是”重起电脑,进入刚才那个实机系统,电脑会出现非法启动的自检画面,让它自检(速度会很慢,耐心等待)。

⑶方法三:
若硬盘分区表出错,则用DiskGenius工具校正一下。

⑷当然可能还有其他原因。

作者: cy-hong    时间: 2016-6-21 08:45
本帖最后由 cy-hong 于 2016-6-21 08:53 编辑

好长,,,

问楼主个问题,

联想的S400超级本,安装win10,安装不上。

UEFI+GPT,用winntSetup向C盘复制完文件,重启,加载设备时就会提示出错,后停止。

是什么问题呢?
作者: qj_tzy    时间: 2016-6-21 09:30
本帖最后由 qj_tzy 于 2016-6-21 09:31 编辑
cy-hong 发表于 2016-6-21 08:45
好长,,,

问楼主个问题,


不知您是用什么菜单启动的,若用grub2或xorboot启动系统,因加载设备时要向bcd回写信息,若找不到bcd,则会出错退出,因此安装系统时,关键是要用Windows Boot Manager启动项启动:

1设置Windows Boot Manager为第一启动项,即其启动文件为\EFI\Microsoft\Boot\bootmgfw.efi
2.把\EFI\Microsoft\Boot\文件夹下的bootmgfw.efi文件更换为该版本微软的标准启动文件
3.修改\EFI\Microsoft\Boot\BCD

只是这不一定是您所需要的答案。
作者: cy-hong    时间: 2016-6-21 11:27
qj_tzy 发表于 2016-6-21 09:30
不知您是用什么菜单启动的,若用grub2或xorboot启动系统,因加载设备时要向bcd回写信息,若找不到bcd, ...

好像是什么EFI(后面是硬盘型号)什么的启动莱单。

另外Win10是不是只能AHCI模式才能启动?

我的win7之前只能兼容摸式启动,今天注入了AHCI驱动,可以AHCI启动了。
作者: qj_tzy    时间: 2016-6-21 12:52
cy-hong 发表于 2016-6-21 11:27
好像是什么EFI(后面是硬盘型号)什么的启动莱单。

另外Win10是不是只能AHCI模式才能启动?

1.用何菜单启动,能否发一图片
2.win10我只用ahci模式安装过,未用ide模式安装过,想必也是支持IDE模式的。
作者: cy-hong    时间: 2016-6-21 13:37
qj_tzy 发表于 2016-6-21 12:52
1.用何菜单启动,能否发一图片
2.win10我只用ahci模式安装过,未用ide模式安装过,想必也是支持IDE模式 ...

图,,,没有,

是EFI之类,,,具体记不住了,
作者: cy-hong    时间: 2016-6-21 13:37
qj_tzy 发表于 2016-6-21 12:52
1.用何菜单启动,能否发一图片
2.win10我只用ahci模式安装过,未用ide模式安装过,想必也是支持IDE模式 ...

图,,,没有,

是EFI之类,,,具体记不住了,
作者: qj_tzy    时间: 2016-6-24 07:25
cy-hong 发表于 2016-6-21 11:27
好像是什么EFI(后面是硬盘型号)什么的启动莱单。

另外Win10是不是只能AHCI模式才能启动?

另外补充一下,若安装有winxp系统,也建议注入ahci驱动,可提高系统性能!
作者: win4096    时间: 2016-8-31 18:30
学习,安装不上不上EFI+GPT 系统 。单独发不了贴,好着急啊
作者: qj_tzy    时间: 2016-9-1 10:15
win4096 发表于 2016-8-31 18:30
学习,安装不上不上EFI+GPT 系统 。单独发不了贴,好着急啊

EFI+GPT 的系统安装相对较简单,bios+gpt安装系统则相对较难
作者: win4096    时间: 2016-9-1 15:45
qj_tzy 发表于 2016-9-1 10:15
EFI+GPT 的系统安装相对较简单,bios+gpt安装系统则相对较难

我的权限不够单独发帖。可以借用楼主主题帖多说一些我的问题吗?
作者: qj_tzy    时间: 2016-9-2 12:27
win4096 发表于 2016-9-1 15:45
我的权限不够单独发帖。可以借用楼主主题帖多说一些我的问题吗?

可以,非常欢迎提出你的问题,我们共同来研究、学习和解决!
作者: win4096    时间: 2016-9-2 16:32
本帖最后由 win4096 于 2016-9-2 16:42 编辑

非常感谢楼主,给我这个机会。
电脑基本配置如下:
主板:华硕 Z87  
CPU:i5 4670K
硬盘:前几日入手的希捷3T硬盘,

从硬件上来说应该没有什么问题,因为突然断电,原来的硬盘划伤了,在运行中有时会卡住,但基本还能对付用,很担心什么时候原硬盘就突然罢工了。新硬盘暂时没有安装上系统,目前挂载着2块硬盘。
买来3T的硬盘,一直装不上系统,网上查询才了解EFI+GPT的概念,多少懂一点电脑常识,但UEFI+GPT方面,仅限于网上刚刚学来的一点皮毛。目前新硬盘在PE下,用PE自带diskgenius 4.01免费版已经做好了GPT分区。









根据网上一些教程指导,到微软官方下载的原版64位win7旗舰版镜像 cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.ISO 开始用的微软自家的Windows 7 USB DVD Download Tool工具把系统装入一16G U盘内,按照要求U盘采用的是fat32格式。按照教程提示把修改过的文件也都拷进U盘里相应的位置了,结果提示不能安装,我开始以为这种方法可能不好,便把U盘重新格式化为fat32格式,把原版系统解压缩后拷进U盘,按照另一篇类似教程重新做了个U盘系统,截图如下:


作者: win4096    时间: 2016-9-2 16:33
本帖最后由 win4096 于 2016-9-2 17:04 编辑

准备安装系统,开机后进入主板设置,在【高级】设置里面点击【退出】,选最后一项,从存储设备开启 EFI Shell


到这里,是不是就不对了,可惜找不到原因,按【F8】键进入启动选项


选择最后一项UEFI U盘,也能进入系统安装,但是只能选择原来的MBR分区硬盘,新GPT格式硬盘就不让安装


作者: win4096    时间: 2016-9-2 17:16
本帖最后由 win4096 于 2016-9-2 17:21 编辑

现在看了楼主的文章,首先我用的免费版diskgenius 可能只是原因之一,另外的原因可能是我的ESP分区处理上也不对,引用楼主的原话:【1.建ESP分区时,默认为100M容量,可选择超过2G,如4G的大小。一定要建为ESP(Efi System Partition首字母)分区,不要用FAT16/FAT32分区代替之。】这里我用软件直接分出来的ESP分区只是小点,我把它调整为2G大小是不是就可以了?

具体都是哪些地方设置的不对,还真是没有头绪。不知道是我做的U盘系统有问题,还是分区问题或者是我的主板设置问题,请楼主具体指导一下,谢谢
作者: qj_tzy    时间: 2016-9-5 09:37
win4096 发表于 2016-9-2 17:16
现在看了楼主的文章,首先我用的免费版diskgenius 可能只是原因之一,另外的原因可能是我的ESP分区处理上也 ...

不好意思,外出好几天未开电脑

1.是否为ESP分区的识别方法是:用bootice的磁盘管理--分区管理来查看,esp分区的ID为0,而FAT32分区的ID为非0.
2.你是用直接安装的方法,建议在WINPE中用WinNTSetup进行辅助安装后,做好uefi+gpt或bios+gpt的启动,即可启动并安装完成系统了
作者: win4096    时间: 2016-9-5 09:43
qj_tzy 发表于 2016-9-5 09:37
不好意思,外出好几天未开电脑

1.是否为ESP分区的识别方法是:用bootice的磁盘管理--分区管理来查看, ...

谢谢指导,晚上我尝试一下。感觉应该是这样了
作者: y7y007    时间: 2016-9-5 12:21
楼主,用wimboot压缩来制作ramos的话,可以把指针、wimboot.wim,同时放到一个单镜像vdf中吗?
作者: qj_tzy    时间: 2016-9-5 14:12
y7y007 发表于 2016-9-5 12:21
楼主,用wimboot压缩来制作ramos的话,可以把指针、wimboot.wim,同时放到一个单镜像vdf中吗?

没这样做过,感觉是不可以的
作者: 飞驰的麒麟    时间: 2016-10-22 18:56
楼主,我制作好VHD文件后,用bcdboot写入引导文件,再用bcdedit复制一个后指向差分VHD,但不知道为什么只有用bcdboot弄的那个才能启动,那个复制的怎么都启动不了,怎么办?
作者: 2011jianfaer    时间: 2016-12-7 19:16
(二)对不支持uefi+gpt启动的电脑
1.在bios+gpt方式下安装winnt6系统,含winvista/win2008/win7/win2008r2/win8.x/win2012r2/win10等的32位和64位分区系统的测试
因bios+gpt方式下,不能直接读取gpt分区硬盘中的bootmgr及boot文件夹下的bcd(会出错退出)。只能采取以下方式之一启动:
⑴用grub4dos读取一个ima软盘映像文件包(其内含bootmgr及\boot\下的bcd等文件)
title win8_x64_gpt_安装_with_setup_winnt6.ima
find --set-root --devices=h %pathimg%setup_winnt6.ima
#须用grub4dos 0.46a版本,以不用--mem参数
#map --mem %pathimg%setup_winnt6.ima (fd0)
map %pathimg%setup_winnt6.ima (fd0)
map --hook
rootnoverify (fd0)
chainloader +1




那个setup_winnt6.ima 文件到那里下载,下载的文件里找不到.
作者: qj_tzy    时间: 2016-12-8 14:56
2011jianfaer 发表于 2016-12-7 19:16
那个setup_winnt6.ima 文件到那里下载,下载的文件里找不到.

这只是提供一种方法,setup_winnt6.ima是我自行制作测试时用的,但不推荐这种方法
作者: sea2moon    时间: 2016-12-9 21:49
好长,收藏了,慢慢看~
作者: 2010DOS622    时间: 2017-3-28 06:01
我现在只能用原版的WIN7 X64 分区安装GPT
作者: 青青草    时间: 2017-3-28 08:35
谢谢分享
作者: yeqiang163    时间: 2021-2-24 18:13
学习了!字多都是干货!
作者: shinykers    时间: 2024-2-14 17:58
这么完整的帖子,感谢大佬~
作者: hehuiying    时间: 2024-4-15 07:55
谢谢分享
作者: 无犹启动    时间: 2024-4-19 16:39
谢谢分享
作者: mindmap138    时间: 2024-10-2 23:03
qj_tzy 发表于 2016-6-20 16:04
(续):

六、安装wimboot系统

good




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3