无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: liuzhaoyzz
打印 上一主题 下一主题

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

    [复制链接]
61#
 楼主| 发表于 2021-1-9 11:35:47 来自手机 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2021-1-9 11:37 编辑
CodeHz 发表于 2021-1-9 11:30
只是不能用explorer复制文件而已,反正提权以后的批处理是可以访问的)


        你那边mountvol z: /s之后,对于ESP分区,firmware.exe→FirmwareBootDevice→mountpoints下面有盘符了吗?

点评

没有,看了一眼,mountvol挂载esp分区用到的是另一个方法,不走mountmgr的流程。。。  详情 回复 发表于 2021-1-9 13:24
回复

使用道具 举报

62#
 楼主| 发表于 2021-1-9 17:12:46 | 显示全部楼层
CodeHz 发表于 2021-1-9 15:39
于是我也试图使用mountvol的方法挂载esp分区,确实可以挂载成功

我也同时尝试了非特权挂载,发现挂载是 ...

mountfirmware-i386 z:确实可行,这个程序很不错,如果能够判断下盘符是否存在更好。
想请问下,mountfirmware-i386 z:之后,为什么firmware-i386.exe→ FirmwareBootDevice→ [+] mountpoints还是空白的?

点评

不用判断啊,你用一些正常方式弄不出的盘符就好了,反正就是复制文件,copy什么的都支持直接复制到!:这样的分区 显示不出是因为这个方法创建的不是持久挂载,重启就没了的(和subst一样  详情 回复 发表于 2021-1-9 17:33
回复

使用道具 举报

63#
 楼主| 发表于 2021-1-9 18:27:24 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2021-1-9 18:33 编辑
CodeHz 发表于 2021-1-9 17:33
不用判断啊,你用一些正常方式弄不出的盘符就好了,反正就是复制文件,copy什么的都支持直接复制到!:这样 ...

1、我还是更喜欢用普通A-Z:字母作为盘符,因为这样子的话,可以在资源管理器中看到盘符,检查文件是否拷贝进去,也可以用bootice打开其中的BCD看下文件是否正常,如果你不愿意判断,批处理判断盘符是否存在,也是很简单的事情。
2、现在的用法,是不是直接用mountfirmware z:分配个未占用的盘符,然后这个盘符就是启动盘盘符?这个mountfirmware z:能否提供个卸载盘符的参数?
(1)如果是UEFI从某个ESP分区启动的,需要先用mountfirmware z:分配个盘符,这个返回值就是Z:盘,如果ESP分区之前用bootice或者findesp分配了盘符G:,Z:盘和G:盘是重复的,会造成迷惑,而且findesp -unmount没法卸载mountfirmware z:分配的这个Z:盘的盘符。如果提供了卸载mountfirmware 分配盘符就不会有困扰了。
(2)如果是BIOS/UEFI从某个FAT32分区启动的,返回值可能是系统提前分配好的G:盘;也可能根本就没有盘符,用mountfirmware z:分配个盘符,拷贝文件没问题,问题是Z:盘和G:盘是重复的,内容是完全一样的,会造成迷惑,如果提供了卸载mountfirmware 分配盘符就不会有困扰了。为什么不用!:这样子的特殊符号作为盘符,上面一条说过了,需要在我的电脑里面查看文件。




点评

mountfirmware z: /d 就是卸载了 而且你可以通过%errorlevel% 判断执行结果,0就是挂载(或者卸载)成功,1就是失败,其他数字就是别的奇怪的错误 我建议是在脚本里用!:这种,确保不会冲突( 然后手动挂载的时候  详情 回复 发表于 2021-1-9 18:36
回复

使用道具 举报

64#
 楼主| 发表于 2021-1-9 18:45:15 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2021-1-9 18:52 编辑
CodeHz 发表于 2021-1-9 18:36
mountfirmware z: /D 就是卸载了 (注意大小写
而且你可以通过%errorlevel% 判断执行结果,0就是挂载(或 ...

mountfirmware z: /D原来必须用大写的字母D才行啊?小写的号不行。

[+] open Registry
[+] query FirmwareBootDevice
[-] arcname: multi(0)disk(0)rdisk(0)partition(1)
[+] resolve arcname
[-] devicename: \Device\Harddisk2\Partition1
[-] invalid argument: /d



手动查看这个问题,正常系统是没法没法看到的(理论上应该是可以找到已经挂载的盘符的,但是我这边研究了下好像不同挂载方式的造成的结果都不太一样,适配起来挺麻烦的。。。
我这边的电脑都是以内置超级管理员身份登陆的,用mountfirmware z:命令分配的盘符,读写没有任何问题,根本不需要重启explorer.exe(其他人可能存在读写权限的问题),内置超级管理员身份和administrators组的管理员还是有很大的区别的。这个是微软explorer自动降权的限制,要想突破这个限制,估计只有提权了吧,我不知道Nsudo能否搞定这个,这个似乎不是mountfirmware应该考虑的,如果能够搞定当然最好;如果比较难搞,或者吃力不讨好,不如交给用户,让用于右击以管理员身份运行mountfirmware.exe应该就可以解决问题吧?还是必须要重启下explorer?

点评

是的,我懒得写大小写转换了,反正就一个参数)  详情 回复 发表于 2021-1-9 18:49
回复

使用道具 举报

65#
 楼主| 发表于 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
回复

使用道具 举报

66#
 楼主| 发表于 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
回复

使用道具 举报

67#
 楼主| 发表于 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
回复

使用道具 举报

68#
 楼主| 发表于 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
回复

使用道具 举报

69#
 楼主| 发表于 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
回复

使用道具 举报

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

回复

使用道具 举报

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

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

使用道具 举报

72#
 楼主| 发表于 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

回复

使用道具 举报

73#
 楼主| 发表于 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
回复

使用道具 举报

74#
 楼主| 发表于 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
回复

使用道具 举报

75#
 楼主| 发表于 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, 下载次数: 158)

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

点评

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

使用道具 举报

76#
 楼主| 发表于 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, 下载次数: 164)

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

点评

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

使用道具 举报

77#
 楼主| 发表于 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
回复

使用道具 举报

78#
 楼主| 发表于 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
回复

使用道具 举报

79#
 楼主| 发表于 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, 下载次数: 137)

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

点评

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

使用道具 举报

80#
 楼主| 发表于 2021-1-10 15:53:23 | 显示全部楼层
CodeHz 发表于 2021-1-10 15:50
思考了一下,XP是不是启动分区和引导分区必须在同一个分区的啊(指正常引导的情况)

不一定啊,很久以前xp原安装光盘好像就会创建个小的100MB的分区,并激活,把启动文件NTLDR ntdetect.com,boot.ini等等这些文件放在活动分区上面。
但我没有用过原版ISO安装,我都是用ghost版本安装,都是把那个启动用的激活小分区合并到C盘了。
我有事出去下。
回复

使用道具 举报

81#
 楼主| 发表于 2021-1-10 15:54:47 | 显示全部楼层
CodeHz 发表于 2021-1-10 15:51
看下 MACHINE\SYSTEM\CurrentControlSet\Control  下有那些,我这里大概猜测SystemBootDevice既是系统盘 ...

你看下。[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control]



CurrentControlSet.rar

53.18 KB, 下载次数: 5, 下载积分: 无忧币 -2

回复

使用道具 举报

82#
 楼主| 发表于 2021-1-10 16:10:17 来自手机 | 显示全部楼层
CodeHz 发表于 2021-1-10 16:01
改了下参数,现在会在FirmwareBootDevice找不到的情况下fallback到SystemBootDevice上,大概符合需求了( ...

我有事出来了,手机回复,晚上回去看下,大神辛苦了,谢谢了!
回复

使用道具 举报

83#
 楼主| 发表于 2021-1-10 18:40:38 | 显示全部楼层
CodeHz 发表于 2021-1-10 16:01
改了下参数,现在会在FirmwareBootDevice找不到的情况下fallback到SystemBootDevice上,大概符合需求了( ...

在虚拟机里面的xp上面试了下,可以了!大神就是大神!

友情大神把全套源代码再分享下,我收藏起来。谢谢!

Windows XP Professional-2021-01-10-18-38-58.png (30.98 KB, 下载次数: 123)

Windows XP Professional-2021-01-10-18-38-58.png
回复

使用道具 举报

84#
 楼主| 发表于 2021-1-10 19:03:50 | 显示全部楼层
CodeHz 发表于 2021-1-10 18:57
(刚无忧崩了一下,不知道有没有上传成功)
附带一个简单的文档(

可以下载。感谢大神分享!已收藏!
回复

使用道具 举报

85#
 楼主| 发表于 2021-1-10 19:05:53 | 显示全部楼层
江南一根葱 发表于 2021-1-10 19:01
那有些机是oem激活,比如小马激活的情况,有些版本就不是直接bootmgr启动的

一般情况下都是bootmgr/bootmgfw.efi为第一引导启动的。大不了加个提示罢了。足够用了。只能考虑大众的情况,其余情况不用考虑了。CodeHz大神的程序完美地解决了我的问题!

点评

也是,不过反正各地区的大众不一样的  详情 回复 发表于 2021-1-10 20:27
回复

使用道具 举报

86#
 楼主| 发表于 2021-1-11 08:18:01 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2021-1-11 08:23 编辑

我提交的误报反馈,360直接拒绝了,无语啊!搞不过他们!这些强盗公司什么时候倒闭!

亲爱的软件开发者
您好!
经360软件开放平台检测,您于2021-01-10 19:13:29提交的软件ID:3762225的smartmountfirmware-i386-xp.rar审核未通过。
您提交的备注信息:smartmountfirmware mount
显示启动分区。

拒绝原因:软件存在风险未通过检测,如有需要请添加本地信任使用

请参考360软件开放平台软件检测标准: http://open.soft.360.cn/guide/guide_2.html?i=4
感谢您对360软件开放平台的支持,如果您在使用过程中遇到问题,请及时与我们联系。
申诉邮箱:opensoft@360.cn 本邮件为系统自动发送,请勿直接回复!360软件开放平台
2021年01月10日

点评

感觉都是给没掏钱的没权没势的组织用的,一般很多小白下软件装一个附送一大堆的都装着360卫士和杀毒,但是都装进去了,明显不符合这个标准。  详情 回复 发表于 2021-1-11 10:58
回复

使用道具 举报

87#
 楼主| 发表于 2021-1-11 08:59:37 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2021-1-11 09:06 编辑
CodeHz 发表于 2021-1-11 08:46
其实是没代码签名就会报毒,代码签名还挺贵的)

       我觉得不是代码签名的问题吧,bootice也没有做签名,有时候就报毒,有时候不报,大部分时候是不报的。360的报毒逻辑根本就没有逻辑,只要是他不认识的,他就认为是病毒,并以此收取保护费,这是典型的强盗逻辑,360哪里有什么查毒杀毒技术,360安全卫士是傅盛做出来的东西,后来因为三观不合,直接被周鸿祎踢出了管理层。

       smartmountfirmware已被我应用于RAMOS一键制作工具之中,如果这个被杀掉比较麻烦,但我已做了容错处理。


       我觉得如果用VC编译下smartmountfirmware,应该不会报毒吧。
回复

使用道具 举报

88#
 楼主| 发表于 2021-1-11 09:32:05 来自手机 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2021-1-11 09:40 编辑
窄口牛 发表于 2021-1-11 09:20
试一下,修改了bootmgfw位置行不行,不要用第三方,直接efishell下运行它启动bug10,win7不能改变默认路径 ...


       我只能按照大众环境测试,改bootmgfw.efi位置的情况没有测试,你可以试试看,我估计只要是用bootmgfw.efi启动的windows都可以,包括放在/EFI/BOOT/bootx64.efi(bootmgfw.efi)应该都可以。我在开会呢。另外没兴趣尝试uefi-shell,你尝试下,把结果发上来看看。uefi-shell相对于微软的bootmgfw.efi,一样是相当于第三方,和g4e/grub2一样都是第三方引导器。

点评

意料之中,失败了。有的笔记本可以直接选择文件启动,我手里没有这种的了。  详情 回复 发表于 2021-1-11 19:35
回复

使用道具 举报

89#
 楼主| 发表于 2021-1-11 15:52:18 | 显示全部楼层
dos时代菜鸟 发表于 2021-1-11 15:39
diskpart 似乎有这功能呀

diskpart似乎不能确定这个吧。

点评

[attachimg]472664[/attachimg]  详情 回复 发表于 2021-1-11 19:30
回复

使用道具 举报

90#
 楼主| 发表于 2021-1-11 22:31:26 | 显示全部楼层
dos时代菜鸟 发表于 2021-1-11 20:45
咋还 重复回复了呢?

改了下 代码页判断。也不知道行不行。

我测试了下UEFI下从ESP分区启动WIN10.VHD是正确的,/d参数卸载没问题。
UEFI下从FAT32分区启动WIN7.VHD是正确的,/d参数卸载没问题。
我一个帖子引来众多高手啊!你的代码很简洁,谢谢分享。

点评

如果卷的数量 超过9 个,可能会出问题,需要研究下。  详情 回复 发表于 2021-1-12 08:54
互相学习 有提高。 不完善,还需要研究研究。  详情 回复 发表于 2021-1-12 08:28
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-21 20:05

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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