无忧启动论坛

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

请问下有没有办法用批处理或者命令行小程序确定系统引导分区?

    [复制链接]
151#
 楼主| 发表于 2021-1-9 19:21:17 | 只看该作者
本帖最后由 liuzhaoyzz 于 2021-1-9 19:23 编辑
CodeHz 发表于 2021-1-9 18:49
是的,我懒得写大小写转换了,反正就一个参数)

        大神能否回复下我在楼上的第二个问题,我这边没有普通管理员的测试环境,我这边读写都正常。Nsudo能否搞定mountfirmware挂载ESP分区后的的写入权限问题?以管理员身份运行mountfirmware.exe z:能否搞定ESP分区的写入权限问题?

另外,mountfirmware.exe能否直接规避盘符重复挂载的问题,比如说如果启动分区已经有了一个盘符G:了,用户已经很明确地知道这个G:盘就是启动盘,mountfirmware.exe z:会让用户迷惑,引导分区不是G:盘吗,怎么变成了Z:盘了?这个问题用批处理结合firmware-i386.exe→ FirmwareBootDevice→ [+] mountpoints→[-] mount point: \DosDevices\是否是空白的,可以规避,但我总感觉如果mountfirmware.exe提前判断下,更好。

点评

主要是explorer自身不能提权,nsudo也不行(结束explorer的方法在我这也没法提权,它仍然会自己降低到普通用户的权限) 重复挂载这个我到时候看看,我觉得应该是可以解决的)  详情 回复 发表于 2021-1-9 19:28
回复

使用道具 举报

152#
发表于 2021-1-9 19:28:46 | 只看该作者
liuzhaoyzz 发表于 2021-1-9 19:21
大神能否回复下我在楼上的第二个问题,我这边没有普通管理员的测试环境,我这边读写都正常。Nsud ...

主要是explorer自身不能提权,nsudo也不行(结束explorer的方法在我这也没法提权,它仍然会自己降低到普通用户的权限)

重复挂载这个我到时候看看,我觉得应该是可以解决的)

点评

explorer自身不能提权挺麻烦的,论坛里面有采用第三方的文件管理器解决问题的,有点绕弯,但是也是没有办法的办法。 其实我的需求很简单,就是需要返回启动分区的盘符,无论这个启动分区是MBR/GPT,无  详情 回复 发表于 2021-1-9 19:54
回复

使用道具 举报

153#
 楼主| 发表于 2021-1-9 19:54:54 来自手机 | 只看该作者
本帖最后由 liuzhaoyzz 于 2021-1-9 19:56 编辑
CodeHz 发表于 2021-1-9 19:28
主要是explorer自身不能提权,nsudo也不行(结束explorer的方法在我这也没法提权,它仍然会自己降低到普 ...


        
explorer自身不能提权挺麻烦的,论坛里面有采用第三方的文件管理器解决问题的,有点绕弯,但是也是没有办法的办法。

其实我的需求很简单,就是需要返回启动分区的盘符,无论这个启动分区是MBR/GPT,无论分区格式是FAT32/NTFS/ESP,程序只需要告诉我这个启动分区的盘符倒底是什么就行了,如果原来有盘符就直接告诉我,如果没有盘符就分配个盘符告诉我,并且提供个参数卸载程序分配的盘符,用于恢复现场,原来没有分配盘符的删除盘符之后恢复用户原来的原状。当然你的两个程序里面输出的结果很多很详细,这是非常好的!用于定位问题很方便。

点评

所以我觉定加一个程序检测启动磁盘( 用法见图,批处理可以通过判断errorlevel确定有没有找到,(我不确定能不能在各种不同情况下工作,请测试一遍,不行的话大概就检测不了了,这里面情况比较复杂,我选择了一个理  详情 回复 发表于 2021-1-9 20:20
回复

使用道具 举报

154#
发表于 2021-1-9 20:20:28 | 只看该作者
liuzhaoyzz 发表于 2021-1-9 19:54
explorer自身不能提权挺麻烦的,论坛里面有采用第三方的文件管理器解决问题的,有点绕弯,但 ...

所以我觉定加一个程序检测启动磁盘(特殊字符的驱动器不会被检测到)
用法见图,批处理可以通过判断errorlevel确定有没有找到,(我不确定能不能在各种不同情况下工作,请测试一遍,不行的话大概就检测不了了,这里面情况比较复杂,我选择了一个理论上能用的方法)


boot.zip (42.24 KB, 下载次数: 12)

点评

恳请大神把程序搞成三合一的。否则批处理就需要做大量的工作:1、执行detectfirmware-i386→ devicename: \Device\HarddiskVolume1, devicename: \Device\HarddiskVolume1→看到后面 devicename: \Device\HarddiskV  详情 回复 发表于 2021-1-9 21:29
明白了,还要将ntdll.h复制过去  详情 回复 发表于 2021-1-9 20:59
请教一下这个编译环境的用法: 我是先执行了install.bat,再把detectfirmware.tjs拷到同目录, 这时无论是将install.bat改成下图所示 还是直接双击detectfirmware.tjs,都没见生成文件,不知道该怎么使用呢  详情 回复 发表于 2021-1-9 20:56
大神,是不是把问题搞得太复杂了。你把大部分的工作都交给了批处理了。 能不能把这三个程序合成一个程序findbootdevice? 1、看下firmware-i386.exe→ FirmwareBootDevice→ [+] mountpoints→[-] mount point: \D  详情 回复 发表于 2021-1-9 20:55
回复

使用道具 举报

155#
 楼主| 发表于 2021-1-9 20:55:43 | 只看该作者
本帖最后由 liuzhaoyzz 于 2021-1-9 21:04 编辑
CodeHz 发表于 2021-1-9 20:20
所以我觉定加一个程序检测启动磁盘(特殊字符的驱动器不会被检测到)
用法见图,批处理可以通过判断erro ...

大神,是不是把问题搞得太复杂了。你把大部分的工作都交给了批处理了。
能不能把这三个程序合成一个程序findbootdevice?
1、看下firmware-i386.exe→ FirmwareBootDevice→ [+] mountpoints→[-] mount point: \DosDevices\是否是空白的,如果\DosDevices\不是空白,比如G:,直接作为findbootdevice的返回值G:告知用户即可,任务完成。
2、如果\DosDevices\是空白,在26个字母中查找空白盘符,以z:为例,用mountfirmware z:挂载启动分区,并用Z:作为findbootdevice的返回值告知用户即可。26个字母盘符已经足够用了啊,谁能有26个分区盘符?
3、用户侧可以用findbootdevice z: /D这样子的命令删除启动盘符,恢复现场,当然用户侧不删除启动盘符也行,看他自己的需求。
上面的1 2 3您的程序里面都已经实现了啊,为啥要把大量的工作交给批处理?
我想要的是执行
1、findbootdevice,返回g:或者z:
2、findbootdevice z: /D恢复原状



点评

因为分开好修改啊( 比如需求变了,不又得重写一个了吗( 然后现在不是测试能不能用吗,如果都写在一起,其中几个步骤出错了,又得重新写一个对吧*  详情 回复 发表于 2021-1-9 21:04
回复

使用道具 举报

156#
发表于 2021-1-9 21:01:31 | 只看该作者
527104427 发表于 2021-1-9 20:56
请教一下这个编译环境的用法:
我是先执行了install.bat,再把detectfirmware.tjs拷到同目录,
这时无 ...

其实不用安装,只需要复制tjs.exe的路径(全部文件解压后的),然后在那几个tjs文件的目录下(cd进去)执行 <tjs的路径> xxx.tjs 即可编译运行。。
(因为install的方法只能同时用一个架构的,双击运行的时候工作目录是不对的,我这里刚好引用到了当前目录的文件,所以就出错了)
回复

使用道具 举报

157#
发表于 2021-1-9 21:04:02 | 只看该作者
liuzhaoyzz 发表于 2021-1-9 20:55
大神,是不是把问题搞得太复杂了。你把大部分的工作都交给了批处理了。
能不能把这三个程序合成一个程序 ...

因为分开好修改啊(
比如需求变了,不又得重写一个了吗(
然后现在不是测试能不能用吗,如果都写在一起,其中几个步骤出错了,又得重新写一个对吧*
回复

使用道具 举报

158#
 楼主| 发表于 2021-1-9 21:29:32 | 只看该作者
本帖最后由 liuzhaoyzz 于 2021-1-9 21:32 编辑
CodeHz 发表于 2021-1-9 20:20
所以我觉定加一个程序检测启动磁盘(特殊字符的驱动器不会被检测到)
用法见图,批处理可以通过判断erro ...

恳请大神把程序搞成三合一的。否则批处理就需要做大量的工作:
1、执行detectfirmware-i386→ devicename: \Device\HarddiskVolume1, devicename: \Device\HarddiskVolume1→看到后面 devicename: \Device\HarddiskVolume1没有盘符。
2、遍历26个字母查找空盘,以Z:为例。
3、执行mountfirmware-i386.exe Z:把启动分区盘符赋值为Z:。
4、执行mountfirmware-i386.exe Z: /D恢复现场。
第1步里面,批处理不容易判断\Device\HarddiskVolume1在后面有没有盘符,这个是变量。detectfirmware-i386也没有给个关键字让批处理便于搜索\Device\HarddiskVolume1倒底有没有盘符
第1步~第3步完全可以在程序内部搞定,然后一个命令就足够了。但是如果让批处理搞定,都是一片片的代码,太复杂了!友情大神看下nttwqz和5大的程序返回值,只是需要一个盘符,非常简单啊。当然您的程序里面中间返回值非常好,建议保留。







点评

detectfirmware-i386 2>nul 就只返回盘符,没有就为空  详情 回复 发表于 2021-1-9 21:36
回复

使用道具 举报

159#
 楼主| 发表于 2021-1-9 21:50:29 | 只看该作者
527104427 发表于 2021-1-9 21:36
detectfirmware-i386 2>nul  就只返回盘符,没有就为空

不是这个意思。。。mountfirmware-i386.exe 2>nul没有返回有用的信息。
[?] usage: mountfirmware-i386.exe ?: [/D]

点评

是 detectfirmware-i386 2>nul 这个( 用 for in 就能提取了  发表于 2021-1-9 21:53
回复

使用道具 举报

160#
发表于 2021-1-9 21:54:12 | 只看该作者
我记得64位还是要保留一下的,因为有的pe只有64位,没有WoW支持,这样32位的直接就运行不了了(
所以最起码还得加个批处理

点评

32位64位如果都有最好了。一般情况下,还是32位的通用性更好。  详情 回复 发表于 2021-1-9 22:07
回复

使用道具 举报

161#
 楼主| 发表于 2021-1-9 21:58:49 | 只看该作者
detectfirmware-i386 2>nul 这个( 用 for in 就能提取了
如果提取不到呢?批处理再找空盘,然后再调用mountfirmware-i386.exe Z:?
就不能简单点吗?找空盘、调用mountfirmware-i386.exe Z:都可以放在程序内部一起搞定即可。
我只是要个盘符啊!就只要一个字母而已,难道就这么难吗?

回复

使用道具 举报

162#
 楼主| 发表于 2021-1-9 22:07:59 | 只看该作者
CodeHz 发表于 2021-1-9 21:54
我记得64位还是要保留一下的,因为有的pe只有64位,没有WoW支持,这样32位的直接就运行不了了(
所以最起 ...

        32位64位如果都有最好了。一般情况下,还是32位的通用性更好。
回复

使用道具 举报

163#
发表于 2021-1-9 23:21:31 | 只看该作者
本帖最后由 CodeHz 于 2021-1-9 23:24 编辑

smart.zip (9.26 KB, 下载次数: 17)
那么大概就是这个了,有问题明天修(
附上32位/64位兼容batch(主要提供给仅64位支持的pe用)
  1. @echo off
  2. setlocal enableextensions enabledelayedexpansion
  3. 2>nul call :set_arch_%PROCESSOR_ARCHITECTURE%
  4. if errorlevel 1 (goto :unsupported_arch) else (goto :start)
  5. exit /b
  6. :set_arch_AMD64
  7. set ARCH=x86_64
  8. exit /b
  9. :set_arch_x86
  10. set ARCH=i386
  11. exit /b
  12. :unsupported_arch
  13. echo Unsupported architecture: %PROCESSOR_ARCHITECTURE%
  14. exit /b
  15. :start
  16. smartmountfirmware-%ARCH% %*
  17. endlocal
复制代码

用法:smartmountfirmware mount即可获得一个盘符smartmountfirmware unmount即可取消挂载
smartmountfirmware dump用于调试目的

不想要调试输出可以用 2<nul smartmountfirmware mount 的方式去掉
也可以在批处理里拿到输出
for /f usebackq %%i in (`2^<nul smartmountfirmware mount`) do set DRIVE=%%i

点评

感谢大神,大神辛苦了! 早上起来测试了几个环境,应该没问题,晚点详细测试下,现在有事要出去。 您的批处理判断操作系统位数有问题,某些环境下会出错。  详情 回复 发表于 2021-1-10 10:01
回复

使用道具 举报

164#
 楼主| 发表于 2021-1-10 10:01:56 | 只看该作者
本帖最后由 liuzhaoyzz 于 2021-1-10 15:25 编辑
CodeHz 发表于 2021-1-9 23:21
那么大概就是这个了,有问题明天修(
附上32位/64位兼容batch(主要提供给仅64位支持的pe用)

感谢大神,大神辛苦了!
早上起来测试了几个环境,应该没问题,晚点详细测试下,现在有事要出去。
您的批处理判断操作系统位数有问题,某些环境下会出错。

smart.rar

570 Bytes, 下载次数: 13, 下载积分: 无忧币 -2

回复

使用道具 举报

165#
 楼主| 发表于 2021-1-10 14:03:42 | 只看该作者
本帖最后由 liuzhaoyzz 于 2021-1-11 09:37 编辑

smartmountfirmware测试结果
一、UEFI下从MBR-激活FAT32启动:没有重复盘符现象,卸载启动分区盘符正常。
1、WIN10.VHD,启动分区有盘符,OK!√
2、WIN10.VHD,启动分区无盘符,自动分配了盘符,OK!√
3、WIN8.1.VHD,启动分区有盘符,OK!√
4、WIN8.1.VHD,启动分区无盘符,自动分配了盘符,OK!√
5、WIN7.VHD,启动分区有盘符,OK!√
6、WIN7.VHD,启动分区无盘符,自动分配了盘符,OK!√
7、bootmgfw.efi→WIN10PE.WIM,启动分区有盘符,OK!√
7、bootmgfw.efi→WIN10PE.WIM,启动分区无盘符,自动分配了盘符,OK!√
8、grub2x64.efi→WIN10PE.ISO,结果是空值,这是正确的结果!OK!√


二、UEFI下从GPT硬盘ESP启动:没有重复盘符现象,卸载启动分区盘符正常。ESP分区读写正常(我是在内置超级管理员用户下测试的)。
1、WIN10.VHD,启动分区提前用bootice或者guyue2011的findESP程序分配盘符,smartmountfirmware准确找到,并且能够精准卸载,OK!√
2、WIN10.VHD,启动分区无盘符,自动分配了盘符,OK!√
3、WIN8.1.VHD,启动分区提前用bootice或者guyue2011的findESP程序分配盘符,smartmountfirmware准确找到,并且能够精准卸载,OK!√
4、WIN8.1.VHD,启动分区无盘符,自动分配了盘符,OK!√
5、WIN7.VHD,启动分区提前用bootice或者guyue2011的findESP程序分配盘符,smartmountfirmware准确找到,并且能够精准卸载,OK!√
6、WIN7.VHD,启动分区无盘符,自动分配了盘符,OK!√
7、bootmgfw.efi→WIN10PE.WIM,启动分区提前用bootice或者guyue2011的findESP程序分配盘符,smartmountfirmware准确找到,并且能够精准卸载,OK!√
7、bootmgfw.efi→WIN10PE.WIM,启动分区无盘符,自动分配了盘符,OK!√
8、grub2x64.efi→WIN10PE.ISO,结果是空值,这是正确的结果!OK!√

三、BIOS下从MBR-激活FAT32启动:
1、WIN10.VHD,启动分区有盘符,OK!√
2、WIN10.VHD,启动分区无盘符,自动分配了盘符,OK!√
3、WIN8.1.VHD,启动分区有盘符,OK!√
4、WIN8.1.VHD,启动分区无盘符,自动分配了盘符,OK!√
5、WIN7.VHD,启动分区有盘符,OK!√
6、WIN7.VHD,启动分区无盘符,自动分配了盘符,OK!√
7、bootmgr→WIN10PE.WIM,启动分区有盘符,OK!√
7、bootmgr→WIN10PE.WIM,启动分区无盘符,自动分配了盘符,OK!√
8、bootmgr→grldr中转→WIN10PE.ISO,结果是空值,这是正确的结果!OK!√
9、ntldr→32位的xp系统,结果是空值,弹出错误,“无法定位程序输入点RegCloseKey于动态链接库kerne132.dl1上”,卸载盘符也出错。看样子不支持XP???


360安全卫士扫描:通过扫描,没有被杀!但是突然报了个病毒。(大家都知道没有病毒,我只是看程序能否在360的恶劣环境中生存!78楼我已向360流氓卫士发起误报反馈!360软件开放平台误报反馈 https://open.soft.360.cn/report.php



衷心感谢大神CodeHz!



点评

xp的dll发来给我研究一下,有如下几个 kernel32.dll kernelbase.dll user32.dll advapi32.dll  详情 回复 发表于 2021-1-10 14:13
回复

使用道具 举报

166#
发表于 2021-1-10 14:13:55 | 只看该作者
liuzhaoyzz 发表于 2021-1-10 14:03
smartmountfirmware测试结果
一、UEFI下从MBR-激活FAT32启动:没有重复盘符现象,卸载启动分区盘符正常。
...

xp的dll发来给我研究一下,有如下几个
kernel32.dll
kernelbase.dll
user32.dll
advapi32.dll

点评

大神,感觉应该是编译模式选项的问题吧?VC2015下面,编译模式选择支持xp就可以了。 你说的几个dll我上传上来,kernelbase.dll-xp下面没有。  详情 回复 发表于 2021-1-10 14:24
回复

使用道具 举报

167#
 楼主| 发表于 2021-1-10 14:24:37 | 只看该作者
本帖最后由 liuzhaoyzz 于 2021-1-13 07:28 编辑
CodeHz 发表于 2021-1-10 14:13
xp的dll发来给我研究一下,有如下几个
kernel32.dll
kernelbase.dll

大神,感觉应该是编译模式选项的问题吧?VC2015下面,编译模式选择支持xp就可以了。项目菜单->项目属性->配置属性->常规->平台工具集,选择“Visual Studio 2015 - Windows XP (v140_xp)”。
你说的几个dll我上传上来,kernelbase.dll-xp下面没有。

xp的几个dll.rar

2.07 MB, 下载次数: 2, 下载积分: 无忧币 -2

点评

准确说,是我发现它符号选择到了kernel32上去了,应该链接到advapi32的就能支持xp了。。。  详情 回复 发表于 2021-1-10 14:28
回复

使用道具 举报

168#
发表于 2021-1-10 14:28:10 | 只看该作者
liuzhaoyzz 发表于 2021-1-10 14:24
大神,感觉应该是编译模式选项的问题吧?VC2015下面,编译模式选择支持xp就可以了。
你说的几个dll我上 ...

准确说,是我发现它符号选择到了kernel32上去了,应该链接到advapi32的就能支持xp了。。。
回复

使用道具 举报

169#
发表于 2021-1-10 14:45:22 | 只看该作者
smartmountfirmware-i386.exe (8.67 KB, 下载次数: 7)
理论上兼容xp(就解决那一个弹框,其他的弹框就无能为力了)的版本,能用正常的版本就别用这个(

点评

还是不行啊,大神。  详情 回复 发表于 2021-1-10 15:17
回复

使用道具 举报

170#
 楼主| 发表于 2021-1-10 15:17:54 | 只看该作者
本帖最后由 liuzhaoyzz 于 2021-1-10 15:19 编辑
CodeHz 发表于 2021-1-10 14:45
理论上兼容xp(就解决那一个弹框,其他的弹框就无能为力了)的版本,能用正常的版本就别用这个(

还是不行啊,大神。我感觉用VC做静态编译,肯定能够兼容XP。

Windows XP Professional-2021-01-10-15-17-17.png (25.98 KB, 下载次数: 218)

Windows XP Professional-2021-01-10-15-17-17.png

点评

这个版本应该可以了,我用tcc的功能重新生成了导入表,之前居然忘记了tcc有这个功能23333 用xp的dll生成导入表就可以生成兼容xp的版本了 (大概吧,也不是很确定,下个版本直接在tjs镜像里加入tcc好了  详情 回复 发表于 2021-1-10 15:26
回复

使用道具 举报

171#
发表于 2021-1-10 15:26:56 | 只看该作者
liuzhaoyzz 发表于 2021-1-10 15:17
还是不行啊,大神。我感觉用VC做静态编译,肯定能够兼容XP。

smartmountfirmware-i386.exe (8.5 KB, 下载次数: 3)
这个版本应该可以了,我用tcc的功能重新生成了导入表,之前居然忘记了tcc有这个功能23333
用xp的dll生成导入表就可以生成兼容xp的版本了
(大概吧,也不是很确定,下个版本直接在tjs镜像里加入tcc好了

点评

结果显示不出来啊。好像出错了。  详情 回复 发表于 2021-1-10 15:31
回复

使用道具 举报

172#
 楼主| 发表于 2021-1-10 15:31:01 | 只看该作者
CodeHz 发表于 2021-1-10 15:26
这个版本应该可以了,我用tcc的功能重新生成了导入表,之前居然忘记了tcc有这个功能23333
用xp的dll生 ...

结果显示不出来啊。好像出错了。

Windows XP Professional-2021-01-10-15-30-10.png (24.32 KB, 下载次数: 243)

Windows XP Professional-2021-01-10-15-30-10.png

点评

你去注册表看看有没有这个先。。我觉得怕是根本没有)  详情 回复 发表于 2021-1-10 15:32
回复

使用道具 举报

173#
发表于 2021-1-10 15:32:16 | 只看该作者
liuzhaoyzz 发表于 2021-1-10 15:31
结果显示不出来啊。好像出错了。

你去注册表看看有没有这个先。。我觉得怕是根本没有)顺便把xp内核也发个来看看
ntoskrnl.exe

点评

你说的注册表是哪里? ntoskrnl.dll我上传上来。  详情 回复 发表于 2021-1-10 15:39
回复

使用道具 举报

174#
发表于 2021-1-10 15:32:32 | 只看该作者
我是来泼冷水的,我认为多硬盘多种结构的环境来“自动”确认,是不太可靠的,
我个人对这种工具也是相当不屑的

点评

不需要泼冷水,只要微软的bootmgr/bootmgfw.efi启动的情况,我在楼上测试了,没问题。  详情 回复 发表于 2021-1-10 15:40
我这个不是基于文件结构来确定的,而是按照windows自己确定引导分区的方法反推注册表位置的方法来找的( 所以实际上我这个完全没有去检查硬盘的结构,插入一百个硬盘也没有关系( (那个解析路径实际上是在nt内核对  详情 回复 发表于 2021-1-10 15:37
回复

使用道具 举报

175#
发表于 2021-1-10 15:37:35 | 只看该作者
江南一根葱 发表于 2021-1-10 15:32
我是来泼冷水的,我认为多硬盘多种结构的环境来“自动”确认,是不太可靠的,
我个人对这种工具也是相当不 ...

我这个不是基于文件结构来确定的,而是按照windows自己确定引导分区的方法反推注册表位置的方法来找的(
所以实际上我这个完全没有去检查硬盘的结构,插入一百个硬盘也没有关系(
(那个解析路径实际上是在nt内核对象里做符号链接解析,不会涉及实际文件的关系
回复

使用道具 举报

176#
 楼主| 发表于 2021-1-10 15:39:13 | 只看该作者
CodeHz 发表于 2021-1-10 15:32
你去注册表看看有没有这个先。。我觉得怕是根本没有)顺便把xp内核也发个来看看
ntoskrnl.exe

你说的注册表是哪里?
ntoskrnl.dll我上传上来。

ntoskrnl.rar

1.01 MB, 下载次数: 1, 下载积分: 无忧币 -2

点评

就是HKLM\SYSTEM\CurrentControlSet\Control\FirmwareBootDevice  发表于 2021-1-10 15:41
回复

使用道具 举报

177#
 楼主| 发表于 2021-1-10 15:40:12 | 只看该作者
本帖最后由 liuzhaoyzz 于 2021-1-10 15:41 编辑
江南一根葱 发表于 2021-1-10 15:32
我是来泼冷水的,我认为多硬盘多种结构的环境来“自动”确认,是不太可靠的,
我个人对这种工具也是相当不 ...

不需要泼冷水,只要微软的bootmgr/bootmgfw.efi启动的情况,我在167楼上测试了,没问题。大不了再让用户确认下罢了。

点评

那有些机是oem激活,比如小马激活的情况,有些版本就不是直接bootmgr启动的  详情 回复 发表于 2021-1-10 19:01
回复

使用道具 举报

178#
 楼主| 发表于 2021-1-10 15:43:52 | 只看该作者
本帖最后由 liuzhaoyzz 于 2021-1-10 15:51 编辑

HKLM\SYSTEM\CurrentControlSet\Control\FirmwareBootDevice
xp下面没有这个主键。我用"FirmwareBootDevice"作为关键字搜索了下,整个注册表都没有这个关键字。但我用“bootdevice”作为关键字,搜索到了这个:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control]
"CurrentUser"="USERNAME"
"WaitToKillServiceTimeout"="5000"
"SystemStartOptions"="NOEXECUTE=OPTIN  FASTDETECT"
"SystemBootDevice"="multi(0)disk(0)rdisk(0)partition(1)"


"SystemBootDevice"="multi(0)disk(0)rdisk(0)partition(1)"这个好像是对的。

Windows XP Professional-2021-01-10-15-42-57.png (29.97 KB, 下载次数: 206)

Windows XP Professional-2021-01-10-15-42-57.png

点评

看下 MACHINE\SYSTEM\CurrentControlSet\Control 下有那些,我这里大概猜测SystemBootDevice既是系统盘也是引导盘)  详情 回复 发表于 2021-1-10 15:51
回复

使用道具 举报

179#
发表于 2021-1-10 15:50:21 | 只看该作者
思考了一下,XP是不是启动分区和引导分区必须在同一个分区的啊(指正常引导的情况)

点评

不一定啊,很久以前xp原安装光盘好像就会创建个小的100MB的分区,并激活,把启动文件NTLDR ntdetect.com,boot.ini等等这些文件放在活动分区上面。 但我没有用过原版ISO安装,我都是用ghost版本安装,都是把那个启  详情 回复 发表于 2021-1-10 15:53
回复

使用道具 举报

180#
发表于 2021-1-10 15:51:49 | 只看该作者
liuzhaoyzz 发表于 2021-1-10 15:43
HKLM\SYSTEM\CurrentControlSet\Control\FirmwareBootDevice
xp下面没有这个主键。我用"FirmwareBootDevic ...

看下 MACHINE\SYSTEM\CurrentControlSet\Control  下有那些,我这里大概猜测SystemBootDevice既是系统盘也是引导盘)

点评

你看下。[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control]  详情 回复 发表于 2021-1-10 15:54
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-26 09:11

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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