无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 22936|回复: 56
打印 上一主题 下一主题

[原创] 也来一个 修复安装 win10 bcd 引导 的脚本(测试2018.03.16)

    [复制链接]
跳转到指定楼层
#
发表于 2018-3-15 10:23:24 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
本帖最后由 dos时代菜鸟 于 2018-3-20 11:54 编辑



核心脚本更新: ms_BCD_fix-2.17.cmd.zip (5.21 KB, 下载次数: 150) 没有功能增加,只是发现个变量错误,改正了一下。
压缩包分卷3个,将每个卷包的 7z扩展名去掉,用7z 解压缩。三个附件压缩包必须都下载。
MS_boot_fix-2.16.7z.001.7z (3 MB, 下载次数: 152) 下载后改名为: MS_boot_fix-2.16.7z.001
MS_boot_fix-2.16.7z.002.7z (3 MB, 下载次数: 128) 下载后改名为: MS_boot_fix-2.16.7z.002
MS_boot_fix-2.16.7z.003.7z (760.03 KB, 下载次数: 124) 下载后改名为: MS_boot_fix-2.16.7z.003

freesoft00 提议,改进,界面显示 卷对应的硬盘序号,用以区分不同硬盘。可以显示 硬盘 Bcd 是 legacy还是uefi 可以显示 硬盘上 win的版本和位数。
测试版整体包在此,分三个卷 用7z 解压缩。注意下载以后 改名再解压缩。把名字最后面那个 .7z去掉


以管理员身份运行脚本
设置好参数以后 回车开始 创建/修复 bcd 引导体系。


与以往 脚本 不同的是,建立了 设置菜单,把设置都弄好了,一下回车进行操作。
不像以前的脚本是链式 设置,最后想反悔,重新设置之前的 参数,就必须重新启动脚本。


脚本另需要 本系统自带 diskpart / bcdedit  等 作为外部命令调用。

评分

参与人数 2无忧币 +10 收起 理由
有阴也有阳 + 5 改进得给力!!!
freesoft00 + 5

查看全部评分

56#
发表于 2023-11-13 11:48:10 | 只看该作者
谢谢楼主分享
回复

使用道具 举报

55#
发表于 2023-11-11 23:52:00 | 只看该作者
谢谢分享
回复

使用道具 举报

54#
发表于 2020-3-13 11:45:10 | 只看该作者
感谢分享~~~~~~~~~~~~~~~
回复

使用道具 举报

53#
 楼主| 发表于 2018-3-20 11:54:23 | 只看该作者
核心脚本更新: ms_BCD_fix-2.17.cmd.zip (5.21 KB, 下载次数: 0) 没有功能增加,只是发现个变量错误,改正了一下。
在一楼
回复

使用道具 举报

52#
 楼主| 发表于 2018-3-18 22:27:31 | 只看该作者
更新 增加 bcd 初步检测功能。
基本 完善了。
回复

使用道具 举报

51#
 楼主| 发表于 2018-3-17 09:11:25 来自手机 | 只看该作者
本帖最后由 dos时代菜鸟 于 2018-3-17 09:16 编辑
freesoft00 发表于 2018-3-17 00:45
2.12没有进程无法访问的提示了。

相对来说NTBOOTautofix修复还是比较智能的。它的自动修复,成功修复了 ...


自动修复先不考虑,要先做个单独的预脚本,要先做足预脚本测试。如何判断,一个选项的好坏是什么,如何修复,是否要查注测表。
版本探测可以改一下,filever 做备用。

回复

使用道具 举报

50#
发表于 2018-3-17 00:45:15 | 只看该作者
本帖最后由 freesoft00 于 2018-3-17 00:52 编辑

2.12没有进程无法访问的提示了。

相对来说NTBOOTautofix修复还是比较智能的。它的自动修复,成功修复了测试的实体磁盘+vhd双系统。它好像是从后向前添加引导菜单的,先添加后面的磁盘再添加前面的磁盘,然后再设置默认值,这样最前面的系统就设置为了启动菜单的默认值。(具体代码实现方式没有看只是猜测)

点评

自动修复先不考虑,要先做个单独的预脚本,要先做足预脚本测试。 版本探测可以改一下,filever 做备用。  详情 回复 发表于 2018-3-17 09:11
回复

使用道具 举报

49#
发表于 2018-3-17 00:42:59 | 只看该作者
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion]
"BuildLabEx"="7601.24024.amd64fre.win7sp1_ldr.180112-0600"
看来这个键值判断并不准确,测试了网上的一个win10系统,没有这个键值。
那么就判断是否有X:\Windows\SysWOW64目录下面的特点文件定系统体系吧。比如如果有C:\Windows\SysWOW64\cmd.exe,那么C盘的系统就是64位,如果没有就是32位。

回复

使用道具 举报

48#
发表于 2018-3-17 00:38:41 | 只看该作者
dos时代菜鸟 发表于 2018-3-17 00:29
bootice 界面 按 ESC 就退出了。
默认的 ,是最后一个 被操作的项目 是 默认。

好的
回复

使用道具 举报

47#
 楼主| 发表于 2018-3-17 00:29:08 | 只看该作者
本帖最后由 dos时代菜鸟 于 2018-3-17 00:32 编辑
freesoft00 发表于 2018-3-17 00:22
创建好以后查看,也可以使用bcdedit查看,bcdedit>test.txt,然后调用记事本打开导出的菜单文件。

也 ...


bootice 界面 按 ESC 就退出了。
默认的 ,是最后一个 被操作的项目 是 默认。


估计是  taskkill 把 bootice 强行关闭闹的,
bcdboot 可以成批刷新启动文件,可以规避很多问题。比如 少字体啊啥的。

你用 2.12 在测试吧,我要休息

点评

好的  详情 回复 发表于 2018-3-17 00:38
回复

使用道具 举报

46#
发表于 2018-3-17 00:22:13 | 只看该作者
dos时代菜鸟 发表于 2018-3-17 00:11
另一个程序正在使用此文件,进程无法访问 ,可能是 bootice程序强行通过 taskkill 关闭了,但 内存中  ...

创建好以后查看,也可以使用bcdedit查看,bcdedit>test.txt,然后调用记事本打开导出的菜单文件。

也可能是bcdboot的原因吧。当前有bcd肯定是不行的。那么一开始就不应该使用bcdboot创建,除非你把原有的bcd删除了然后使用bcdboot创建。

我再测试测试多系统的情况看是否有问题。
多系统创建引导。按照默认习惯,前面的系统是默认系统,比如C盘是默认系统,D盘需要通过菜单选择进入。批处理顺序执行后设置菜单默认值,应该就把D盘的系统设为默认值了。是否可以做一个判断,第一个系统设置为默认值。(这部分还没有测试。只是对流程猜测有可能出现这个结果)

点评

bootice 界面 按 ESC 就退出了。 默认的 ,是最后一个 被操作的菜单 是 默认。  详情 回复 发表于 2018-3-17 00:29
回复

使用道具 举报

45#
 楼主| 发表于 2018-3-17 00:11:03 | 只看该作者
本帖最后由 dos时代菜鸟 于 2018-3-17 00:20 编辑
freesoft00 发表于 2018-3-16 23:57
ok

================================================================================
ms_BCD_fix-2.12.cmd.zip (4.1 KB, 下载次数: 6)

另一个程序正在使用此文件,进程无法访问 ,可能是 bootice程序强行通过 taskkill 关闭了,但 内存中 还有,bcd 被独占打开着呢。
可能 是 bootice 导致的。
bootice 这一步,还是有必要的,可以看一下结果。目前看,还没想到啥好办法。

bcdboot 创建引导,正好把 当前 系统的 bcd 操作了,可能 也是原因。需要在 pe 下进行当前系统bcd的操作。

把脚本中 所有的 taskkill 开头的行都删掉,应该可以解决。

点评

创建好以后查看,也可以使用bcdedit查看,bcdedit>test.txt,然后调用记事本打开导出的菜单文件。 也可能是bcdboot的原因吧。当前有bcd肯定是不行的。那么一开始就不应该使用bcdboot创建,除非你把原有的bcd删除  详情 回复 发表于 2018-3-17 00:22
回复

使用道具 举报

44#
发表于 2018-3-16 23:57:09 | 只看该作者

ok

================================================================================
确定按照上述设置创建系统引导么(Y/N),默认Y?
检测参数.....
Windows 7 Ultimate X64


正在创建引导......
另一个程序正在使用此文件,进程无法访问。
已成功创建启动文件。
请按任意键继续. . .

运行过程中会有提示进程无法访问,上个版也有这个问题的。
还有就是会打开bootice的界面,需要手动关闭。
测试都是默认值直接回车。



点评

另一个程序正在使用此文件,进程无法访问 ,可能是 bootice程序强行通过 taskkill 关闭了,但 内存中 还有,bcd 被独占打开着呢。 可能 是 bootice 导致的。 bootice 这一步,还是有必要的,可以看一下结果。目前  详情 回复 发表于 2018-3-17 00:11
回复

使用道具 举报

43#
 楼主| 发表于 2018-3-16 23:33:38 | 只看该作者
gy0715 发表于 2018-3-16 22:51
首页有2.02 2.07 2.08三个版本,究竟用哪个版本测试呢?


2.10 是测试版本
2.02 是基础版
回复

使用道具 举报

42#
 楼主| 发表于 2018-3-16 23:31:48 | 只看该作者
freesoft00 发表于 2018-3-16 23:10
当前使用filever.exe判断体系后添加的名称这样
Windows 7 Ultimate WAMD64-6.1
不如上面注册表判断的好。 ...

ms_BCD_fix-2.10.cmd.zip (4.06 KB, 下载次数: 10)
再测

点评

ok ================================================================================ 确定按照上述设置创建系统引导么(Y/N),默认Y? 检测参数..... Windows 7 Ultimate X64 正在创建引导...... 另一  详情 回复 发表于 2018-3-16 23:57
回复

使用道具 举报

41#
发表于 2018-3-16 23:10:30 | 只看该作者
当前使用filever.exe判断体系后添加的名称这样
Windows 7 Ultimate WAMD64-6.1
不如上面注册表判断的好。或者自在批处理中字符替换一下也行,改成x86和x64

点评

再测  详情 回复 发表于 2018-3-16 23:31
回复

使用道具 举报

40#
发表于 2018-3-16 23:07:36 | 只看该作者


哦,看到了。
系统体系不需要使用那个filever.exe判断,也从注册表直接判断就行。
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion]
"BuildLabEx"="7601.24024.amd64fre.win7sp1_ldr.180112-0600"
上面是win7 64位系统的。

win7 和win10系统的这个键值的关键字
7601.17514.x86fre.win7sp1_rtm.101119-1850
7601.24024.amd64fre.win7sp1_ldr.180112-0600

16299.15.x86fre.rs3_release.170928-1534
16299.15.amd64fre.rs3_release.170928-1534

通过x86或者amd64就可以判断体系。只是直接用adm64有些不习惯。在批处理中替换成x64就可以了。


另外,bcdedit添加的菜单中前后有都都一个*号。这个看着好别扭,最好去掉。
回复

使用道具 举报

39#
发表于 2018-3-16 22:51:06 | 只看该作者
首页有2.02 2.07 2.08三个版本,究竟用哪个版本测试呢?

点评

2.10 是测试版本  详情 回复 发表于 2018-3-16 23:33
回复

使用道具 举报

38#
 楼主| 发表于 2018-3-16 22:23:22 | 只看该作者
freesoft00 发表于 2018-3-16 22:13
一楼没有新脚本。还没有上传呢?


http://bbs.wuyou.net/forum.php?mod=attachment&aid=MzY4NDM2fDMwYjNjODI0fDE1MjEyMTAwNDl8MTE5OHw0MDQ5OTM%3D


还是那个地方,文件替换成 2.08 了,以前那个是 2.06

未命名截图.png (7.81 KB, 下载次数: 165)

未命名截图.png

点评

哦,看到了。 系统体系不需要使用那个filever.exe判断,也从注册表直接判断就行。 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion] "BuildLabEx"="7601.24024.amd64fre.win7sp1_ldr.180112-0  详情 回复 发表于 2018-3-16 23:07
回复

使用道具 举报

37#
发表于 2018-3-16 22:13:49 | 只看该作者
dos时代菜鸟 发表于 2018-3-16 22:03
继续折腾,更新脚本 2.08 已经放入 一楼测试
关于 路径有空格没办法运行,是因为 自带的 bcdboot 的特性所 ...

一楼没有新脚本。还没有上传呢?

点评

http://bbs.wuyou.net/forum.php?mod=attachment&aid=MzY4NDM2fDMwYjNjODI0fDE1MjEyMTAwNDl8MTE5OHw0MDQ5OTM%3D  详情 回复 发表于 2018-3-16 22:23
回复

使用道具 举报

36#
 楼主| 发表于 2018-3-16 22:03:19 | 只看该作者
继续折腾,更新脚本 2.08 已经放入 一楼测试
关于 路径有空格没办法运行,是因为 自带的 bcdboot 的特性所致,脚本中已经加入 判断 路径空格 的代码,防止在 有空格的路径下运行
脚本增加 判断系统是否 有 diskpart bcdedit mode reg 等程序
增加 通过 注册表判断 win名称 的功能
将 最后添加进菜单的项目设置为 默认打开
保留 原有菜单,不对原有菜单进行检查校验。检查 菜单 各个项目的 可用性,还是实践检验吧,需要删除的 手动删除,包中已经另行包含删除 bcd 指定项目的脚本。

点评

一楼没有新脚本。还没有上传呢?  详情 回复 发表于 2018-3-16 22:13
回复

使用道具 举报

35#
 楼主| 发表于 2018-3-16 17:38:52 | 只看该作者
本帖最后由 dos时代菜鸟 于 2018-3-16 18:09 编辑
freesoft00 发表于 2018-3-16 17:02
filever.exe在我的win7 64位中能显示,但是用这个名字添加到bcd的描述中并不好。系统版本不如从下面的注册 ...


1、菜单名 需要 用reg 加载卸载 注册表,读取指定位置 键值,
2、确实用到 bcdboot 将自带的 文件 添加安装 到指定位置,如果脚本放在有空格的位置,bcdboot 会出错的。或许 加个双引号 能解决。
如果选择 其他设置 选择 2  ,设置 不用 脚本自带的文件 ,应该不会用这问题。
3、不对原有 菜单进行修改,因为 主要是 作添加 ,要是分析已有菜单 的正确性,脚本就复杂了。可以考虑 将原有 bcd 备份 删除。
回复

使用道具 举报

34#
发表于 2018-3-16 17:02:41 | 只看该作者
本帖最后由 freesoft00 于 2018-3-16 17:15 编辑

filever.exe在我的win7 64位中能显示,但是用这个名字添加到bcd的描述中并不好。系统版本不如从下面的注册表中取
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion]
"ProductName"="Windows 7 Ultimate"

判断是x86或者x64后,加上上面的版本名称
Windows 7 Ultimate x86
Windows 7 Ultimate x64

非当前系统的可以加载这个分区中系统的注册表software文件,分析并取出名称后然后卸载注册表。


批处理可能对带有空格的路径和文件没有做处理,运行中会出错。
论坛好像无法传图片。出现图片传到百度网盘了。
https://pan.baidu.com/s/11FW_-PVr0wi9_j3r_5t1JQ

看图片信息,批处理命令显示的信息好像有一个bcdboot执行后的帮助信息。不知道是哪里的问题。我搜索了一下bcdboot,没有看到你单独运行它。


运行修复批处理之前使用bcdedit 和bcdedit /enum all分别到处信息,运行完成后再次到处。你可以比对一下。
https://pan.baidu.com/s/1HOIBzXuuRnwHGog31YJvhQ

修复后,原有的启动菜单还在,只是新添加了一个现有系统的启动菜单,并且不是默认启动项。
win7 64位测试,使用新菜单启动没有问题,双主分区、bios环境。

没有看批处理代码,这个创建之前可以先导出bcd,对用户的bcd菜单做一下备份,然后再操作应该更好。

点评

1、菜单名 需要 用reg 加载卸载 注册表,读取指定位置 键值, 2、确实用到 bcdboot 将自带的 文件 添加安装 到指定位置,如果脚本放在有空格的位置,bcdboot 会出错的。或许 加个双引号 能解决。 3、不对原有 菜单  详情 回复 发表于 2018-3-16 17:38
回复

使用道具 举报

33#
发表于 2018-3-16 16:14:57 | 只看该作者
rrscsm2000 发表于 2018-3-16 15:54
下来一看,名也改了,还是不能用,唉,还是自己手不高啊。

文件后缀名是.001,.002,.003等,论坛上传不能传这个格式,所以往后面添加了.7z 你把所有.7z去掉后,在001文件上右键就可以解压缩
回复

使用道具 举报

32#
 楼主| 发表于 2018-3-16 16:12:55 来自手机 | 只看该作者
rrscsm2000 发表于 2018-3-16 15:54
下来一看,名也改了,还是不能用,唉,还是自己手不高啊。

资源管理器设置显示扩展名
回复

使用道具 举报

31#
 楼主| 发表于 2018-3-16 16:11:21 来自手机 | 只看该作者
freesoft00 发表于 2018-3-16 15:44
在综合区帮兄弟发了一个测试贴。那里人稍微多点。
http://bbs.wuyou.net/forum.php?mod=viewthread&tid= ...

好的
回复

使用道具 举报

30#
发表于 2018-3-16 15:54:25 | 只看该作者
下来一看,名也改了,还是不能用,唉,还是自己手不高啊。

点评

文件后缀名是.001,.002,.003等,论坛上传不能传这个格式,所以往后面添加了.7z 你把所有.7z去掉后,在001文件上右键就可以解压缩  详情 回复 发表于 2018-3-16 16:14
资源管理器设置显示扩展名  详情 回复 发表于 2018-3-16 16:12
回复

使用道具 举报

29#
发表于 2018-3-16 15:46:18 | 只看该作者
谢谢!下来看看
回复

使用道具 举报

28#
发表于 2018-3-16 15:44:34 | 只看该作者
dos时代菜鸟 发表于 2018-3-16 14:19
发现一处 笔误  soft 错误写成  sfot 导致 uefi 的 bcd 不能探测到。
另增加  默认 卷 赋值功能,就是 将  ...

在综合区帮兄弟发了一个测试贴。那里人稍微多点。
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=405028

回复

使用道具 举报

27#
发表于 2018-3-16 15:29:46 | 只看该作者
dos时代菜鸟 发表于 2018-3-16 09:35
继续折腾测试吧
核心脚本:

看着挺好的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-15 12:24

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表