无忧启动论坛

标题: 用 pecmd2012 做个wimlib-imagex 安装系统的外壳 1.15.7 [打印本页]

作者: dos时代菜鸟    时间: 2019-6-21 23:45
标题: 用 pecmd2012 做个wimlib-imagex 安装系统的外壳 1.15.7
本帖最后由 dos时代菜鸟 于 2022-4-20 12:37 编辑

主要用于 win10 的安装 x86/x64

用这个 脚本 向 已有系统的 电脑上安装一个  vhd_wimboot 模式的 win10 也是不错的选择,比如,办公电脑,可以把引导 做到u盘上,而 vhd+wimboot放在硬盘某个隐蔽的地方。

安装系统 简言之,就是 如下六个步骤。
0.准备好系统安装源,
1.硬盘分区格式化,
2.系统解压缩到分区,
3.安装系统引导体系,
4.重启,重启,再重启........安装各种驱动程序,
5.安装各种软件,对系统进行各种偏好设置。

这个脚本,就是在pe 或者 win 下,实现 第2 、3 步 用的,第1步可以通过压缩包中的 diskpart_shell.cmd 完成。第0步要用户自己把握,第4步依赖于系统的支持和用户手头的驱动程序集。第5步用户喜好不同。


1.15.7 核心脚本,内涵中英文 版本。核心脚本,不能单独运行 ,只是 pecmd脚本。
system_setup-1.15.7-Script_x.7z (12.15 KB, 下载次数: 145)

1.15.7 完整版在此(内涵 diskpart 外壳脚本):四个附件都要下载,把扩展名 .7z 去掉,再对 001 解压缩。
System_Setup-1.15.7.7z.001.7z (3 MB, 下载次数: 557)
System_Setup-1.15.7.7z.002.7z (3 MB, 下载次数: 474)
System_Setup-1.15.7.7z.003.7z (3 MB, 下载次数: 527)
System_Setup-1.15.7.7z.004.7z (2.4 MB, 下载次数: 374)

引入 pecmd 2012  - 2021.05.26 ,不再依赖 diskpart 创建 vhd及其差分。


1.13.5




选定要安装的win10的压缩包(wim或者esd)对应的卷 ,设定系统安装分区和用于引导系统的分区,设定系统启动方式(UEFI 或者 bios,设定系统安装运转方式(wimboot 或者 不是wimboot ,传统解压缩 还是 VHDx
逻辑实现:
一、启动方面
根据用户选择,判断用于引导系统的分区指定位置是否具备启动系统所需的 BCD 引导,
如果   没有,将在系统安装时 自动 创建
           否则,向已存在的BCD 中增加一条启动项。
二、wim解压缩方面
判断用户选择,是否以 wimboot 方式安装,
如果     在目标分区创建 wimboot 标记特点的 Wim文件指针,解压出用于创建引导用的bcdboot.exe相关文件,以wimboot方式解压wim中的文件
                  如果 所选择的wim源 就存在于 目标分区,且已经具有 wimboot 特性,其扩展名是 Wim,就用该wim源左wimboot启动指针,而不单独创建  wimboot 特性的wim.
           否则,直接将wim源的内容解压到目标分区
三、系统安装方面
判断用户选择,是 传统方式 ,还是vhd 方式
如果 传统方式,
1、 直接解压
2、 安装启动引导
如果 VHDx方式,
1、 创建 vhdx 文件,并将其挂载,分配临时盘符,
2、 以wimboot 方式把具有 wimboot特性的wim解压到vhd
3、 关闭vhdx ,创建该vhdx 的child_vhd
4、 创建启动引导,将Child_vhd 最为启动指针创建到 BCD


需要对分区和盘符进行操作的,可以通过 脚本关联的 bootice 完成。如果有 efi 分区隐藏,而 boot_drv 需要指向之,就可以通过 bootice 为其分配个盘符,在指向它。

因为 编写的匆忙,环境有限,仅对 bios +vhd_wimboot 模式进行了简单测试,其他的 还需要进一步测试。

用于 安装 win10 install.wim  的 脚本,一个界面包含了几乎全部设置,这样设计一定程度上方便了操作
但是 因为没有向导模式那样的傻瓜,很多 小白 会在设置的时候 丢三落四,导致安装出现问题,
这个其实是需要 对系统安装有一定 了解的人才能用的。比如对系统引导模式,硬件系统位数,系统分区结构类型,wimboot方式安装,vhd 方式安装 等等 都需要哪些必要条件。

比如:
wimboot 方式安装,需要 把 install.wim 转化为 wimboot类型存入 ntfs 分区才能设置 启动指针到 某个分区或者 vhd ,这一步脚本可以自动完成
vhd 方式安装的 系统 没有休眠功能,
wimboot方式安装,用于关联指针的 wimboot 类的 wim 是不能被删除的。如果关联指针是 vhd ,这个 vhd 自然也不能删除。

uefi 分 x64 和 x86 两种,通常 除少数平板类设备,都是 x64的,如果 你的硬件 是 uefi .x64 启动的,就没办法  uefi.x86 方式启动。因为 x64 的硬件大部分兼容 x86 程序但 uefi 方面不兼容,如果你的硬件能够设置legacy 方式启动,倒是可以在 x64 下安装 x86 系统,但,也只能是  安装 Legacy 的启动模式的 x64/x86 位 win10(MBR).


通常情况下 legacy bios模式 启动的,要用 MBR 结构的分区,硬盘上用于引导系统的分区 应该是 fat32/ntfs 类型的激活的主分区,而系统可以释放到任何地方,包括 vhd 里。当然 系统也释放到 这个主分区也是可以的。
uefi 模式启动的,要用 gpt 结构的分区,硬盘上的引导系统的分区应该是 fat32 格式的 esp 分区,而系统可以释放到 任何地方,包括 vhd 里,但是最好不要尝试释放到 esp 分区里。




特别说明:要想实现 win7 的 vhd+wimboot 启动,需要有 注入 wimboot 驱动的 win7 的 wim ,这个脚本 没有 向win7的Wim注入 wimboot 驱动的能力。


Wim_installer2.PNG (130.41 KB, 下载次数: 355)

Wim_installer2.PNG

作者: magicgenius    时间: 2019-6-22 08:10
厉害!下载测试……
作者: 2012jiashanni    时间: 2019-6-22 10:39
链接:https://pan.baidu.com/s/1ChsA4uqJAdsmnRqJxYFz-w
提取码:cwyr
复制这段内容后打开百度网盘手机App,操作更方便哦


作者: ge    时间: 2019-6-22 19:52
有像winntsetup那样的!可以添加优化和注册表文件
作者: dos时代菜鸟    时间: 2019-6-23 11:44
ge 发表于 2019-6-22 19:52
有像winntsetup那样的!可以添加优化和注册表文件

暂时不考虑这些,因为 wimboot 方式 安装的话,可能 一些释放出来的 注册表文件 只是一个 wim中的链接,无法在系统外修改。
作者: dos时代菜鸟    时间: 2019-6-23 11:59
更新了一小下。
在一楼
作者: dos时代菜鸟    时间: 2019-6-23 22:32
改进 win10.bcd 安装功能,感觉把 win10.bcd体系放入 vhd 不妥,因为如果整个软件包在 非 ntfs 分区上,vhd 就不能被装载了。所以还是放在文件夹吧,短名 调用,就可以避免 文件夹空格问题了。

更新了 1.07 放到一楼 地址文件。
作者: dos时代菜鸟    时间: 2019-6-24 22:29
本帖最后由 dos时代菜鸟 于 2019-6-25 08:23 编辑

考虑增加 一个判断
当 源 wim 所选安装卷 具备 wimboot 特性,且 扩展名是 wim ,且 其恰好在 要安装系统的分区上,就直接使用 该wim 作为系统 wim ,而不另行生成 具备 wimboot 特性的 wim .这样 一来可以节省安装时间,二来 可以实现 一个 wim 制作多个 vhd 系统。


1.08 已经更新。
作者: dos时代菜鸟    时间: 2019-6-25 20:40
更新 1.09.l
发现 pecmd 的 fdir 指令附带 --short 并不能获取短名文件路径,所以修正了一下。
另外,win7的 bootmgr 也可以引导 vhd,但是可能不能引导 vhdx,所以去掉手动安装 win10.bcd功能,节省了几十M的空间,改为 选项式,如果 引导分区 没有 bcd 体系,会自动勾选之。

就是需要注意,如果 用win7的bootmgr.bcd去引导 win10的 vhdx 可能会失败,此时如果引导分区有 win7 的 bootmgr.bcd ,就需要 安装时更新为 win10的。相反,如果已经有 win10的 bootmgr.bcd 而强行选择更新至 win7 的 bootmgr.bcd 可能导致硬盘上已有的 win10不能被成功调用。
作者: ge    时间: 2019-6-27 08:06
dos时代菜鸟 发表于 2019-6-23 11:44
暂时不考虑这些,因为 wimboot 方式 安装的话,可能 一些释放出来的 注册表文件 只是一个 wim中的链接, ...

那WINNTSETUP不是就可以在系统安装完成未重启时修改的注册表吗?
作者: ge    时间: 2019-6-27 08:07
dos时代菜鸟 发表于 2019-6-23 11:44
暂时不考虑这些,因为 wimboot 方式 安装的话,可能 一些释放出来的 注册表文件 只是一个 wim中的链接, ...

那WINNTSETUP不是就可以在系统安装完成未重启时修改的注册表吗?
作者: dos时代菜鸟    时间: 2019-6-27 09:28
本帖最后由 dos时代菜鸟 于 2019-6-27 09:30 编辑
ge 发表于 2019-6-27 08:07
那WINNTSETUP不是就可以在系统安装完成未重启时修改的注册表吗?


winntsetup真没怎么用过,估计他是挂载了 wim 或者把 注册表文件真实解压释放了出来。

讲真,那些注册表 设置,很可能 随着 系统的变化而有所改变,轻的可能失效,严重的不知道会弄到啥机关上。没有点儿功力真不敢弄呀。

我都是 用 nlit 和 dism++ 做精简和封装的,有时候 把注册激活啥的也放进去,弄成个成型的 wim 用于安装。

给那些 注册表设置 做个界面倒也不难,
那些 现成的注册表 设置文件,弄个多选的列表 对应上,然后选确定,就执行reg  export / import 啥的就行了。
关键是那些注册表设置文件的安全性和搜集都需要时间去弄。随着系统的变化,还要相应调整,有的win7 不能用,就是win10 的,不同版本有的也不好使。太费力气了。上了岁数,就变懒了,不能像以前几个通宵弄出个东西。
作者: 527104427    时间: 2019-6-27 09:45
dos时代菜鸟 发表于 2019-6-27 09:28
winntsetup真没怎么用过,估计他是挂载了 wim 或者把 注册表文件真实解压释放了出来。

讲真,那些注 ...

最近挺多产的,感觉还是精力充沛的样子,不像上了年纪嘛
作者: dos时代菜鸟    时间: 2019-6-27 09:47
527104427 发表于 2019-6-27 09:45
最近挺多产的,感觉还是精力充沛的样子,不像上了年纪嘛

是 pecmd 2012 的功劳,我只是代码的搬运工。
作者: 527104427    时间: 2019-6-27 09:53
dos时代菜鸟 发表于 2019-6-27 09:47
是 pecmd 2012 的功劳,我只是代码的搬运工。

太低调了,纵使pecmd再强大,也需要能驾驭它的人,菜鸟兄的实力不是一般人能比的。
作者: dos时代菜鸟    时间: 2019-6-27 21:29
本帖最后由 dos时代菜鸟 于 2019-6-27 21:32 编辑

更新一小下。
涉及的改进主要考虑如下方面。

bcdboot 这个命令 要求 source 必须是不带空格的路径,或者用 短名路径格式表示,但是 偏偏我这个 笔记本 就是无法把长文件名和带空格的文件路径转换成短的。这个不是 pecmd 的问题,也不是系统的问题,可能是 ntfs 分区的时候出的问题。
针对这样的罕见问题, win10.bcd 的手动安装 还是需要调整一下,把 事先准备好的 x64/x86 的win10.bcd 用7z压缩了,用的时候释放到 目标分区根下,再用 bcdboot 进行bootmgr+bcd的安装,然后再删了那些 解压出来的东西。

这个跟在安装过程中自动 安装 bcd 体系没关系。 所以 不带 win10bcd手动安装 按钮的 精简版不涉及这个问题。

精简版和 有 bcd 手动安装功能的 版本合一了,如果 把 win10.bcd.7z 和 7z.exe \7z.dll 删除, “BCd手安装” 的按钮就自动不可见了。
作者: vrboxing    时间: 2019-7-1 08:30
老兄的作品总是这么给力!
能提供一个有 注入 wimboot 驱动的 win7 (x64)的 wim吗?推荐一个也行,这几天在一台Macbook Pro2015上折腾装Win7 64,快累死,真是岁月不饶人啊
作者: dos时代菜鸟    时间: 2019-7-1 08:40
vrboxing 发表于 2019-7-1 08:30
老兄的作品总是这么给力!
能提供一个有 注入 wimboot 驱动的 win7 (x64)的 wim吗?推荐一个也行,这几天 ...

论坛找 chenal 的辅助工具,可以向 win7 中注入 wimboot 驱动。
WIMBoot-win7_8_10_chenall辅助2.5_2015-09-07.7z (1.35 MB, 下载次数: 41)

作者: vrboxing    时间: 2019-7-1 09:29
dos时代菜鸟 发表于 2019-7-1 08:40
论坛找 chenal 的辅助工具,可以向 win7 中注入 wimboot 驱动。

多谢多谢!
作者: dos时代菜鸟    时间: 2019-7-3 10:20
刚刚增加了几个 按钮和文本框
用于 显示刷新 硬盘分区序列的简要信息,提供了一个简要的帮助文档,可以探测 wim 中被选卷 的 win版本和 位数用于判断 vhd 还是 vhdx 以及 让用户根据 系统位数判断 用什么方式启动系统。
作者: singel    时间: 2019-7-6 01:00
感谢大哥分享!试用一下
作者: gnuxwy    时间: 2019-7-6 21:09
呃,一个实用脚本工具,或许以后用得着,标记备用之。。。楼主辛苦了。

作者: dos时代菜鸟    时间: 2019-7-10 09:58
本帖最后由 dos时代菜鸟 于 2019-7-10 10:48 编辑

做了一些小的调整更新, 1.10j 版
改进硬盘分区序列的 获取算法,增加 可以自动 为 没有盘符的卷  装卸盘符。

自动分配盘符功能,基于 pecmd 的 part 和 disk 两个指令,找出 可以分配盘符而又没有盘符的分区,也就是 具有 volume 特性的分区,win 可以识别的可分配盘符的分区,对其进行分配盘符。并记录 下来。如果 linux 分区,当前系统没有相关驱动,就不能获取 volume 的特性信息,也就不必考虑为其分配盘符,也不显示在分区序列中。

卸载自动分配的盘符,就是 根据 记录 将自动分配的盘符卸载掉。

可以 探测各分区上 windows\explorer.exe 的版本来获取 是否存在windows 以及windows的版本。


作者: Anson4    时间: 2019-7-10 10:44
居然是开源的,有利于我等菜鸟学下,感谢分享!
作者: dos时代菜鸟    时间: 2019-7-10 10:46
Anson4 发表于 2019-7-10 10:44
居然是开源的,有利于我等菜鸟学下,感谢分享!

没有盈利,为啥不开源?
互相学习才有提高呀。
作者: dos时代菜鸟    时间: 2019-7-10 22:25
改进了一下,1.10k 版,脚本启动自动给没有盘符的分区分配盘符,退出时再卸载哪些盘符。这样是不是更方便些呢?
作者: nttwqz    时间: 2019-7-10 22:36
楼主的版本号,貌似以我这智商理解不了啊。。。
作者: dos时代菜鸟    时间: 2019-7-11 11:38
本帖最后由 dos时代菜鸟 于 2019-7-11 11:39 编辑
nttwqz 发表于 2019-7-10 22:36
楼主的版本号,貌似以我这智商理解不了啊。。。


1.10 是主干版本。
后面跟 ABCDEF..... 是表示小的改进,如果还有更小的改进,就只修改 压缩包 名字  添加一个 -1 -2 -3 -4 啥的,其实就是 为了与之前版本做个区分。
再后面跟个 .L 表示是 精简版的。

作者: nttwqz    时间: 2019-7-11 13:29
本帖最后由 nttwqz 于 2019-7-11 13:30 编辑
dos时代菜鸟 发表于 2019-7-11 11:38
1.10 是主干版本。
后面跟 ABCDEF..... 是表示小的改进,如果还有更小的改进,就只修改 压缩包 名字   ...


个人感觉还是用主流的版本号x.x.x.x表示比较容易理解

https://jingyan.baidu.com/article/8cdccae9659f5c315413cde6.html
作者: dos时代菜鸟    时间: 2019-7-11 14:56
nttwqz 发表于 2019-7-11 13:29
个人感觉还是用主流的版本号x.x.x.x表示比较容易理解

https://jingyan.baidu.com/article/8cdccae96 ...

呵呵呵,好吧,好吧
作者: liujun2000    时间: 2019-7-21 19:09
vhd大小自定义
作者: liujun2000    时间: 2019-7-21 19:12
需要vhd盘符 和 安装分区盘符分开 设置
作者: dos时代菜鸟    时间: 2019-7-22 07:54
liujun2000 发表于 2019-7-21 19:12
需要vhd盘符 和 安装分区盘符分开 设置

何意?
作者: liujun2000    时间: 2019-7-22 09:40
dos时代菜鸟 发表于 2019-7-22 07:54
何意?

vhd安装好后是c盘  wim放f盘
你的好像做不出来
作者: dos时代菜鸟    时间: 2019-7-22 22:43
liujun2000 发表于 2019-7-22 09:40
vhd安装好后是c盘  wim放f盘
你的好像做不出来

是的 ,这个 官方不提倡的,甚至说不可以,但实际上是可以的。
考虑到 微软 在 ntfs 分区上可能做了 标记和关联。所以我并没有 设置可以 把 vhd 和 wim 分开分区放置。
当然 你说的那种 是为了 对 vhd或者系统 所在盘进行清理 格式化更方便吧。
作者: liujun2000    时间: 2019-7-23 01:43
dos时代菜鸟 发表于 2019-7-22 22:43
是的 ,这个 官方不提倡的,甚至说不可以,但实际上是可以的。
考虑到 微软 在 ntfs 分区上可能做了 标 ...

可能我没有说清楚
vhd启动后是c盘
vhd和wim都放在f盘
作者: dos时代菜鸟    时间: 2019-7-23 11:21
本帖最后由 dos时代菜鸟 于 2019-7-23 12:19 编辑
liujun2000 发表于 2019-7-23 01:43
可能我没有说清楚
vhd启动后是c盘
vhd和wim都放在f盘


这个是可以的,脚本就是这样设计的,具体看说明帮助吧


你可以把 vhd 放到任何一个分区,因为负责引导系统的 可以 另行设置,设置你可以把 vhd 放到 F盘的某个很深很深的文件夹中,而把引导 做到 u盘上。这样说,你明白了吧?
作者: liujun2000    时间: 2019-9-4 03:29
vhd 大小 能不能有3g
作者: dos时代菜鸟    时间: 2019-9-4 16:18
liujun2000 发表于 2019-9-4 03:29
vhd 大小 能不能有3g

3G能干啥?
作者: liujun2000    时间: 2019-9-4 18:44
dos时代菜鸟 发表于 2019-9-4 16:18
3G能干啥?

wimboot 就几百兆 大了 没有用 能把3g占用完 都恢复了几次了
作者: dos时代菜鸟    时间: 2019-9-5 12:34
liujun2000 发表于 2019-9-4 18:44
wimboot 就几百兆 大了 没有用 能把3g占用完 都恢复了几次了

那如果不选择 wimboot 呢,要是选择了 小体积vhd ,很可能无法安装完成系统。

这可能还需要 加个判断才行。


作者: liujun2000    时间: 2019-9-5 12:40
本帖最后由 liujun2000 于 2019-9-5 12:42 编辑

这是必须的 如果是u盘 哪里有那么多空间来放大体积vhd
如果再 安全一点 还要检查存储介质 空间够不 不够 就提醒一下
作者: dos时代菜鸟    时间: 2020-2-23 20:57
发现 efi vhd 方面的 bug ,已经修复。

刚弄了个 x64 uefi  的平板, 重新刷系统时 发现 uefi 模式下的 wimboot+vhd方式安装时,  winloader.efi 没有被 真实的释放出来,导致引导失败。  已经修正了。
更新 脚本 放在1楼。 因为上传体积限制,没有 把 bcd.7z 放进去。
作者: dos时代菜鸟    时间: 2020-6-12 08:45
本帖最后由 dos时代菜鸟 于 2020-6-12 08:52 编辑
2010hook 发表于 2020-6-11 23:49
反馈:
1、不勾选也会强行添加BCD;
2、To_drv 应该排除ESP分区;

多谢测试

就是 第 4 条,不知啥意思呀。
你是说 想在格式化的时候 仍然设置 成 磁盘原有 标签(卷标)呗。 这个也不难,可以先 运行一下自定义脚本 按钮,就可以截取他的卷标了。
感谢 1-5 条这些细致的测试 建议。

关于 bcd 的问题,是这样的,既然是安装系统,总要 有bcd 引导的,如果boot_drv 盘中没有bcd ,会强行安装一个,如果有,就会添加一个菜单选项。不然,你的 系统怎么引导启动?



作者: 2010hook    时间: 2020-6-12 09:55
本帖最后由 2010hook 于 2020-6-12 11:25 编辑
dos时代菜鸟 发表于 2020-6-12 08:45
多谢测试
就是 第 4 条,不知啥意思呀。

BCD菜单,我选直接解压安装,原本已经有了启动菜单,只是名称不一样。我不勾选时,希望不要强行添加。
“安装BCD”只是添加启动菜单?有没有的判断依据是什么?
作者: 2010hook    时间: 2020-6-12 11:22
我有个HDD,删除了卷(原来的系统分区),Diskpart_shell 就显示不出,我还离不开磁盘管理器。
作者: dos时代菜鸟    时间: 2020-6-12 11:33
2010hook 发表于 2020-6-12 09:55
BCD菜单,我选直接解压安装,原本已经有了启动菜单,只是名称不一样。我不勾选时,希望不要强行添加。
...

界面有 bootice ,可以通过 那个 自己删除。
作者: dos时代菜鸟    时间: 2020-6-12 11:33
2010hook 发表于 2020-6-12 10:04
To_drv,如果目标分区不为空,则提示是否为数据分区或未格式化,会不会好点?

还是自己判断,自己格式化吧。
作者: dos时代菜鸟    时间: 2020-6-12 11:35
2010hook 发表于 2020-6-12 09:55
BCD菜单,我选直接解压安装,原本已经有了启动菜单,只是名称不一样。我不勾选时,希望不要强行添加。
...

你是说 ,你没安装系统,先手动做出个菜单选项么?

判断是否需要安装 bcd 主要看 是否有 bcd 文件。
作者: dos时代菜鸟    时间: 2020-6-12 11:36
2010hook 发表于 2020-6-12 11:22
我有个HDD,删除了卷(原来的系统分区),Diskpart_shell 就显示不出,我还离不开磁盘管理器。

是看不到 硬盘,还是看不到卷?
卷删除了,不就是 没了么?需要新建分区的吧。

diskpart 分区脚本,看另一个贴。别弄混乱了。


作者: 2010hook    时间: 2020-6-12 12:01
本帖最后由 2010hook 于 2020-6-12 12:04 编辑
dos时代菜鸟 发表于 2020-6-12 11:36
是看不到 硬盘,还是看不到卷?
卷删除了,不就是 没了么?需要新建分区的吧。

看不到已删除的那部分空间。其余分区正常。
看不见,我怎么给它重新分区呢?
作者: dos时代菜鸟    时间: 2020-6-12 14:36
本帖最后由 dos时代菜鸟 于 2020-6-12 14:59 编辑
2010hook 发表于 2020-6-12 12:01
看不到已删除的那部分空间。其余分区正常。
看不见,我怎么给它重新分区呢?

直接分就是了,填写 offset 和 大小,这是 diskppart 的逻辑。需要你自己计算的,不然怎么叫专业呢?

其实你就大胆的 建立分区就行了,不输入偏移量和大小也可以,diskpart 会自动把你的那个没使用的空间分区的。


作者: 2010hook    时间: 2020-6-12 15:03
dos时代菜鸟 发表于 2020-6-12 14:36...

原来如此,我还没试过呢。谢谢~
作者: dos时代菜鸟    时间: 2020-6-12 15:42
2010hook 发表于 2020-6-12 15:03
原来如此,我还没试过呢。谢谢~








3.PNG (35.04 KB, 下载次数: 262)

3.PNG

作者: dos时代菜鸟    时间: 2020-6-12 15:45
2010hook 发表于 2020-6-12 11:59
如果只是判断bcd文件,这就存在BUG了吧。
不存在bcd的话,你怎能添加到原有启动菜单的末尾?
我明明已 ...

具体问题,需要具体分析,具体解决吧,靠一个简单的脚本都解决的,还要专业人员干啥?
作者: 2010hook    时间: 2020-6-12 17:28
dos时代菜鸟 发表于 2020-6-12 15:45
具体问题,需要具体分析,具体解决吧,靠一个简单的脚本都解决的,还要专业人员干啥?

问题很简单:既然我不勾选,那就不要做任何判断处理。
作者: dos时代菜鸟    时间: 2020-6-12 21:15
2010hook 发表于 2020-6-12 17:28
问题很简单:既然我不勾选,那就不要做任何判断处理。

安系统缺不要启动引导?这个口子我不开,情况太少见,自己解决吧。你可以把bootdrv设置到u盘。
作者: dos时代菜鸟    时间: 2020-6-12 21:16
2010hook 发表于 2020-6-12 17:42
非常感谢截图详细指导!
我这是不是该填:110*1024*1024

不该,
你填的是e盘的起始位置,
作者: 2010hook    时间: 2020-6-12 21:16
本帖最后由 2010hook 于 2020-6-14 00:48 编辑
dos时代菜鸟 发表于 2020-6-12 21:15
安系统缺不要启动引导?这个口子我不开,情况太少见,自己解决吧。你可以把bootdrv设置到u盘。

启动引导早已设置好了,无需每装一次系统就新建一个。
算了,我还是继续用WinNTSetup靠谱。
作者: dos时代菜鸟    时间: 2020-6-12 21:17
这个脚本会自动为 esp分区划分盘符,
作者: dos时代菜鸟    时间: 2020-6-12 21:25
那个 bcd 的勾勾 是用来强行安装bcd体系用的,
作者: dos时代菜鸟    时间: 2020-6-12 21:26
在 已经有 bcd 体系的情况下,通常脚本只是写入一条引导选项,但是如果这个已有的bcd体系有问题,就需要这个勾勾,强行覆盖安装一个win10的bcd体系。d
作者: dos时代菜鸟    时间: 2020-6-12 21:28
脚本还自配了 bootice 工具,可以自己按需求修改调整启动相关的设置。
作者: dos时代菜鸟    时间: 2020-6-13 22:47
2010hook 发表于 2020-6-12 21:16
启动引导早已设置好了,无需每装一次系统就新建一个。
算了,我把两行 call boot0 注释掉了。

还不如 直接 把 引导分区 也格式化了来的省心。
作者: dos时代菜鸟    时间: 2020-6-14 17:47
不好意思,我不经常做系统 ,没你这么爱折腾。
这是个技术贴,只为 交流下  pecmd 的某些 界面功能,不然 我也好好弄一个,然后把代码加个密啥的,可好?
要用,就自己 研究研究吧,要是不想研究,就直接那个 现成的 更好的,没人逼着你用这个 去装系统。
作者: macowen    时间: 2020-8-20 11:39
谢谢楼主分享!!!
作者: dos时代菜鸟    时间: 2021-2-1 22:47
更新了下,在一楼

作者: singel    时间: 2021-2-18 01:29
测试环境:WIN10 1803 UEFI GPT
安装方式:勾选WimBoot(Win10),直接解压安装(传统型)
安装完成后想删除,文件夹Windows_VHD&WIM里的WIM文件无法删除,提示System正在使用,但是WIM又没有挂载,这是啥原因?

快安装完成的时候消息栏显示有错误,不知道有没有影响。如下图:


作者: dos时代菜鸟    时间: 2021-2-18 10:30
本帖最后由 dos时代菜鸟 于 2021-2-18 10:33 编辑
singel 发表于 2021-2-18 01:29
测试环境:WIN10 1803 UEFI GPT
安装方式:勾选WimBoot(Win10),直接解压安装(传统型)
安装完成后想删除, ...

1.更换新版 pecmd 完整 exe 版
2.wimboot 模式安装,是不能删除 wimboot 指针文件的,wimboot 模式安装,是把 一个 wimboot   特性的wim 系统文件包作为指针来用的,系统启动,会调用这个包中的文件。

3.安装系统 最后是要根据所选 向 引导分区安装启动信息的,需要了解分区结构,要把引导安装到 efi 分区,


作者: singel    时间: 2021-2-19 13:23
dos时代菜鸟 发表于 2021-2-18 10:30
1.更换新版 pecmd 完整 exe 版
2.wimboot 模式安装,是不能删除 wimboot 指针文件的,wimboot 模式安装 ...

明白了,多谢
作者: oym2016    时间: 2021-2-23 23:20
本帖最后由 oym2016 于 2021-2-23 23:35 编辑

在虚拟机中 用diskpart_shell.cmd 分区gpt   创建了ESP分区并显示act
然后用 Wim_setup.cmd 安装  发现不认ESP分区  挂接ESP分配盘符也不认,只显示 [非/Act/ESP分区,无Uefi BCD]
efi目录中文件是备份恢复过去的.




作者: dos时代菜鸟    时间: 2021-2-24 10:08
本帖最后由 dos时代菜鸟 于 2021-2-24 10:36 编辑
oym2016 发表于 2021-2-23 23:20
在虚拟机中 用diskpart_shell.cmd 分区gpt   创建了ESP分区并显示act
然后用 Wim_setup.cmd 安装  发现不 ...

你确定 虚拟机 支持 uefi 启动?gpt 分区结构,必须在 uefi 启动模式才可以支持。需要确定启动模式 ,根据启动模式对硬盘分区。

启动文件,不用从别处复制,安装过程会生成完整 bcd 启动体系。


esp 分区是uefi 下指定 引导分区,不需要激活,diskpart_shell 显示 act只是 一个 * 号,用来表示这个分区 具有引导系统的能力。等同于 mbr 结构分区中的被激活的引导分区。

安装系统,需要对硬盘分区结构有所了解。
按 帮助按钮,好好看看应该能明白。
目前的系统安装,不再像以前mbr那样 ,把引导程序和操作系统都放到一个分区,所以我在脚本界面才设计出两个分区列表共选择,一个用来明确系统安装目标的,一个用来明确引导程序安装目标的。两个不能混淆。



还是上图吧。看看到底咋回事儿。


作者: oym2016    时间: 2021-2-24 11:11
本帖最后由 oym2016 于 2021-2-24 11:19 编辑
dos时代菜鸟 发表于 2021-2-24 10:08
你确定 虚拟机 支持 uefi 启动?gpt 分区结构,必须在 uefi 启动模式才可以支持。需要确定启动模式 ,根 ...

因为Boot Drv项 没法选取ESP分区  安装时只会在C盘根目录创建EFI目录,把启动文件全安装在C盘上.ESP分区为空.

为何不能上传图片?



作者: dos时代菜鸟    时间: 2021-2-24 11:50
oym2016 发表于 2021-2-24 11:11
因为Boot Drv项 没法选取ESP分区  安装时只会在C盘根目录创建EFI目录,把启动文件全安装在C盘上.ESP分区为 ...

to_drv 能选么?

分区序列 复制过来看看。


作者: oym2016    时间: 2021-2-24 12:16
dos时代菜鸟 发表于 2021-2-24 11:50
to_drv 能选么?

分区序列 复制过来看看。

to_drv 也不能选[取
作者: dos时代菜鸟    时间: 2021-2-24 14:22
本帖最后由 dos时代菜鸟 于 2021-2-24 14:24 编辑
oym2016 发表于 2021-2-24 12:16
to_drv 也不能选[取

如果确定 有多个分区,而列表框不能列出的情况下,可以尝试用 上下 键 选取,
另外,可否把硬盘分区序列 列表 文本复制出来,看看。

再有就是 更换下 pecmd.exe 再试试。
在正常 环境下 运行一下,看看啥情况。

可以尝试 在正常系统里,创建一个 vhd 并分区,释放系统以后,挂到虚拟机里 尝试在虚拟机里完成最后的系统安装。




作者: dos时代菜鸟    时间: 2021-3-9 08:29
本帖最后由 dos时代菜鸟 于 2021-3-9 10:08 编辑

更新测试 1.11 版 x64.L,支持 wimboot.wim 与 vhd 不在一个分区。
System_Setup-1.11.x64.L.7z (2.67 MB, 下载次数: 7)
另附上详细图解说明。


经测试 光盘上的 wimboot.wim 是不能 用于制作 系统指针的,那么 ntfs 格式的u盘上可以么?
还有 隐藏的ntfs 格式分区上 的 wimboot.wim 可以么?
有点儿意思了。




作者: dos时代菜鸟    时间: 2021-3-9 10:15
1.11 版测试 可以把 wimboot.wim 放入 u盘的 ntfs 分区上,

考虑 能否 放入 img内存虚拟盘中,如果可以的话,系统速度将会有质的飞跃。

可以考虑 向系统中植入 内存盘驱动,在启动系统前通过 grub4dos 之类的引导器 加载含有 wimboot.wim 的 img内存虚拟盘,再调用 bootmgr 启动硬盘上的 存有系统的vhd .
作者: dos时代菜鸟    时间: 2021-3-9 14:28

System_Setup-1.11.1.x86.L.7z (1.58 MB, 下载次数: 5)

System_Setup-1.11.1.x64.L.7z (1.78 MB, 下载次数: 6)


作者: dos时代菜鸟    时间: 2021-3-9 15:24
本帖最后由 dos时代菜鸟 于 2021-3-9 16:04 编辑

用于 安装 win10 install.wim  的 脚本,一个界面包含了几乎全部设置,这样设计一定程度上方便了操作
但是 因为没有向导模式那样的傻瓜,很多 小白 会在设置的时候 丢三落四,导致安装出现问题,
这个其实是需要 对系统安装有一定 了解的人才能用的。比如对系统引导模式,硬件系统位数,系统分区结构类型,wimboot方式安装,vhd 方式安装 等等 都需要哪些必要条件。

比如:
wimboot 方式安装,需要 把 install.wim 转化为 wimboot类型存入 ntfs 分区才能设置 启动指针到 某个分区或者 vhd ,这一步脚本可以自动完成
vhd 方式安装的 系统 没有休眠功能,
wimboot方式安装,用于关联指针的 wimboot 类的 wim 是不能被删除的。如果关联指针是 vhd ,这个 vhd 自然也不能删除。

uefi 分 x64 和 x86 两种,通常 除少数平板类设备,都是 x64的,如果 你的硬件 是 uefi .x64 启动的,就没办法  uefi.x86 方式启动。因为 x64 的硬件大部分兼容 x86 程序但 uefi 方面不兼容,如果你的硬件能够设置legacy 方式启动,倒是可以在 x64 下安装 x86 系统,但,也只能是  安装 Legacy 的启动模式的 x64/x86 位 win10(MBR).

通常情况下 legacy bios模式 启动的,要用 MBR 结构的分区,硬盘上用于引导系统的分区 应该是 fat32/ntfs 类型的激活的主分区,而系统可以释放到任何地方,包括 vhd 里。当然 系统也释放到 这个主分区也是可以的。
uefi 模式启动的,要用 gpt 结构的分区,硬盘上的引导系统的分区应该是 fat32 格式的 esp 分区,而系统可以释放到 任何地方,包括 vhd 里,但是最好不要尝试释放到 esp 分区里。

作者: dos时代菜鸟    时间: 2021-3-10 06:54
本帖最后由 dos时代菜鸟 于 2021-3-10 07:00 编辑

wimboot. wim 与启动指针分区或vhd跨分区放置,更方便系统的维护,系统分区占用空间更小,重装系统时,可以直接格式化系统分区,而不必再次生成wimboot. wim文件比如,是mbr结构的,可以单独分区NTFS格式的主分区激活用于系统引导和存放wimboot. wim文件。而系统所在分区可以用任何一个NTFS分区或VHD作为系统指针,系统所在分区最初占用空间也就300-500M的样子。系统启动后,存放wimboot. wim的启动分区会被隐藏。

作者: nttwqz    时间: 2021-3-10 07:52
wimboot感觉已经被compactos取代,后者不需要独立的wim文件。两者都存在兼容性问题,会遇到有些软件莫名其妙的问题,都试过,放弃了
作者: dos时代菜鸟    时间: 2021-3-10 08:48
nttwqz 发表于 2021-3-10 07:52
wimboot感觉已经被compactos取代,后者不需要独立的wim文件。两者都存在兼容性问题,会遇到有些软件莫名其 ...

compactos 是分散压缩,而 wimboot 是 整体独立压缩,就是用 wimboot 的这个特性方便系统维护,把 pe 和 wimboot.wim 放到同一个 ntfs 分区中,启动菜单设置引导,就可以随时进入 pe 根据本地的 wimboot.wim 快速部署系统,系统体积非常小,部署系统用时短。

至于兼容性问题,我用 WIMboot 的系统 还没发现啥兼容为题。
作者: nttwqz    时间: 2021-3-10 11:38
dos时代菜鸟 发表于 2021-3-10 08:48
compactos 是分散压缩,而 wimboot 是 整体独立压缩,就是用 wimboot 的这个特性方便系统维护,把 pe 和  ...

用着用着你就知道了
作者: dos时代菜鸟    时间: 2021-3-10 13:43
nttwqz 发表于 2021-3-10 11:38
用着用着你就知道了

可能是 win10 bug 太多,需要经常更新,如此一来,原始的 wimboot.wim 也就失去原有效果反而成了累赘,有的更新可能还涉及到wimboot的事情。
我一直都是 关闭 win10更新在用。也没啥问题呀。
作者: nttwqz    时间: 2021-3-10 14:39
dos时代菜鸟 发表于 2021-3-10 13:43
可能是 win10 bug 太多,需要经常更新,如此一来,原始的 wimboot.wim 也就失去原有效果反而成了累赘,有 ...

以前用的是8.1,我不用bug10
作者: dos时代菜鸟    时间: 2021-3-10 16:22
本帖最后由 dos时代菜鸟 于 2021-3-10 16:24 编辑
nttwqz 发表于 2021-3-10 14:39
以前用的是8.1,我不用bug10

我没正经用过 win 8 系列的,因为 当时win7 还可以,后来 给 win7 植入 wof 驱动,也可以 wimboot 。

我用 wimboot 其实就是 想多弄个系统备用,或者安装到 平板上用。


作者: diyici    时间: 2021-3-12 23:42
看着我就不想动了
作者: 511788836    时间: 2021-3-13 20:28
多谢分享
作者: dos时代菜鸟    时间: 2021-3-14 23:28
本帖最后由 dos时代菜鸟 于 2021-3-15 08:17 编辑

升级了一下,支持创建 fixed 类vhd ,可以设置不生成 子vhd ,vhd大小 可以手动输入。
作者: 1967906656    时间: 2021-3-16 21:16
谢谢分享
作者: dos时代菜鸟    时间: 2021-3-17 00:09
再更新下 ,
很久没有 在 win7 下了,不知道  win7 下的 pecmd 2012 不能 通过 part list volume 的方式 获取 esp 分区信息,导致 脚本 不能为 esp 分区分配盘符。
特意针对性的 补了几句代码。解决了这个问题。

作者: oym2016    时间: 2021-3-17 10:51
dos时代菜鸟 发表于 2021-3-17 00:09
再更新下 ,
很久没有 在 win7 下了,不知道  win7 下的 pecmd 2012 不能 通过 part list volume 的方式  ...

牛!  此版 能自动挂接ESP分区并分配盘号了
作者: dos时代菜鸟    时间: 2021-3-17 15:51
oym2016 发表于 2021-3-17 10:51
牛!  此版 能自动挂接ESP分区并分配盘号了

在 win10 下 是可以自动挂载的,只是 针对 win7 等一些系统,改进的。
挂载盘符 的这个 算法是: 找出全部硬盘分区,探测能够 获取 卷路径 也就是 volume ,有盘符的记录下来,而 没有盘符的 就 自动挂载,挂在后把分区信息记录下来,脚本退出时,在 把这些自动挂载的分区 盘符 卸掉。
但是  win7 下就是 不能 获取 esp 分区的 卷路径,所以就 等同于认为这个分区 当前win系统不认识,不能挂载,也就没挂载,也不显示。现在单独判断一下 分区 id 如果是  esp 的 ,就 另识别一下,挂载之。
作者: oym2016    时间: 2021-3-18 08:17
建议 增加 Compact 安装项
作者: 1967906656    时间: 2021-3-18 13:51
谢谢分享
作者: dos时代菜鸟    时间: 2021-3-18 15:31
本帖最后由 dos时代菜鸟 于 2021-3-18 21:58 编辑
oym2016 发表于 2021-3-18 08:17
建议 增加 Compact 安装项

以为 wimlib-imagex 不支持这个 刚看了下 apply 还真有个 参数 --compact=Format 但是这个到底咋用呢?


\fB--compact\fR=\fIFORMAT\fR
Windows-only: compress the extracted files using System Compression, when
possible.  This only works on either Windows 10 or later, or on an older Windows
to which Microsoft's wofadk.sys driver has been added.  Several different
compression formats may be used with System Compression, and one must be
specified as \fIFORMAT\fR.  The choices are: xpress4k, xpress8k, xpress16k, and
lzx.


作者: oym2016    时间: 2021-3-18 23:23
本帖最后由 oym2016 于 2021-3-19 06:48 编辑

wimlib-imagex.exe apply WIMFILE [IMAGE] DIRECTORY
                    [--check] [--ref="GLOB"] [--no-acls] [--strict-acls]
                    [--no-attributes] [--rpfix] [--norpfix]
                    [--include-invalid-names] [--wimboot] [--unix-data]
                    [--compact=FORMAT]



作者: dos时代菜鸟    时间: 2021-3-19 13:14
本帖最后由 dos时代菜鸟 于 2021-3-19 15:40 编辑

已经更新,具备 compact 功能。

wimlib-imagex 的参数 必须小写


作者: dos时代菜鸟    时间: 2021-3-19 17:24
oym2016 发表于 2021-3-18 08:17
建议 增加 Compact 安装项

已经添加




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