liuzhaoyzz
发表于 2021-1-7 12:43:05
本帖最后由 liuzhaoyzz 于 2021-1-7 12:47 编辑
CodeHz 发表于 2021-1-7 12:12
你先试试用winobj (sys internals 套件里的那个) 管理员权限打开后能不能在我截图的位置看到正确的结果 ...不知道是哪个,盘符怎么对应的
CodeHz
发表于 2021-1-7 13:17:57
liuzhaoyzz 发表于 2021-1-7 12:43
不知道是哪个,盘符怎么对应的
又深入研究了一下这几个路径,发现它实际上是系统盘所在路径,而非引导分区。。。
CodeHz
发表于 2021-1-7 13:33:38
继续研究了一下,似乎就是\Device\SystemPartition这个路径对应引导分区,至少在我这里是这样的。。。(关于如何定位分区,你可以可以这样手动找
plusv
发表于 2021-1-7 13:44:45
CodeHz 发表于 2021-1-7 13:33
继续研究了一下,似乎就是\Device\SystemPartition这个路径对应引导分区,至少在我这里是这样的。。。(关 ...
Windows 7 X64 完整版,
没有这些符号链接.
CodeHz
发表于 2021-1-7 13:46:55
plusv 发表于 2021-1-7 13:44
Windows 7 X64 完整版,
没有这些符号链接.
在GLOBAL??下找找看有没有对应的(直接按符号链接排序,找找有没有对应引导分区且有显著标志的
plusv
发表于 2021-1-7 13:47:37
WuYou 从昨晚到现在都很卡,
网速只有 0.000-0.030 Mbps,
传个 78 KB 小图都很久,
快晕了.
CodeHz
发表于 2021-1-7 13:48:11
plusv 发表于 2021-1-7 13:47
WuYou 从昨晚到现在都很卡,
网速只有 0.000-0.030 Mbps,
传个 78 KB 小图都很久,
我这每次发东西都得刷新才能发出来(也不知道哪里的问题)
plusv
发表于 2021-1-7 13:50:50
CodeHz 发表于 2021-1-7 13:46
在GLOBAL??下找找看有没有对应的(直接按符号链接排序,找找有没有对应引导分区且有显著标志的
也是没有.
WuYou 从昨晚到现在都很卡,
网速只有 0.000-0.030 Mbps,
不传图了
CodeHz
发表于 2021-1-7 13:51:08
我这边GLOBAL??里磁盘相关的有这些项目
plusv
发表于 2021-1-7 14:00:33
CodeHz 发表于 2021-1-7 13:51
我这边GLOBAL??里磁盘相关的有这些项目
也是没有.
liuzhaoyzz
发表于 2021-1-7 19:17:34
CodeHz 发表于 2021-1-7 13:33
继续研究了一下,似乎就是\Device\SystemPartition这个路径对应引导分区,至少在我这里是这样的。。。(关 ...
WIN10里面,\Device\SystemPartition这个路径我都没有找到。
GLOBAL??下也没看到啊?
CodeHz
发表于 2021-1-7 19:36:36
liuzhaoyzz 发表于 2021-1-7 19:17
WIN10里面,\Device\SystemPartition这个路径我都没有找到。
GLOBAL??下也没看到啊?
难道是新版本特性吗,,我这构建号是21286(
要不你试试按符号链接排序(就是第三列顶部点一下那个),然后找你的引导分区,看看有没有什么特殊的名字指向它
liuzhaoyzz
发表于 2021-1-7 20:14:48
我看了,好像没找到有价值的线索
CodeHz
发表于 2021-1-7 20:28:43
liuzhaoyzz 发表于 2021-1-7 08:41
那台电脑在家里。我截图之后出来了,晚点看看。
这么一看似乎就是
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FirmwareBootDevice
和
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SystemBootDevice
风别为引导盘和启动盘了(
nttwqz
发表于 2021-1-7 21:21:14
重写,不再基于dpinfo,UAC开启时需要重启explorer.exe资源管理器中才会显示,管理员命令行操作请忽略。
CodeHz
发表于 2021-1-7 23:24:36
不管有用没用,先整一个上来试试(源码比较乱,确认有用再修改一下)
(需要先过UAC,我没做检查,没权限会崩溃)
liuzhaoyzz
发表于 2021-1-8 08:25:21
nttwqz 发表于 2021-1-7 21:21
重写,不再基于dpinfo,UAC开启时需要重启explorer.exe资源管理器中才会显示,管理员命令行操作请忽略。
等下我测试下,谢谢!
nttwqz
发表于 2021-1-8 11:32:34
liuzhaoyzz 发表于 2021-1-8 08:25
等下我测试下,谢谢!
又完善了一下,加入列表显示,无选中功能,找到时背景绿色,否则红色
https://cowtransfer.com/s/afbf13a2b42541
liuzhaoyzz
发表于 2021-1-8 11:53:36
nttwqz 发表于 2021-1-8 11:32
又完善了一下,加入列表显示,无选中功能,找到时背景绿色,否则红色
https://cowtransfer.com/s/afbf13 ...
好的,晚点试试。
liuzhaoyzz
发表于 2021-1-8 12:57:17
本帖最后由 liuzhaoyzz 于 2021-1-8 16:04 编辑
CodeHz 发表于 2021-1-7 23:24
不管有用没用,先整一个上来试试(源码比较乱,确认有用再修改一下)
测试环境都是WIN8 WIN10,因为WIN7不支持MBR+GPT混合分区启动,未测试。
76楼图1环境: 从ESP分区UEFI启动vhd
firmware 32位的运行出错。
64位的结果好像是对的。
好像是对的。
测试环境76楼图2:从MBR-激活的FAT32分区UEFI启动
firmware 32位的运行出错。
64位的结果好像是对的。
[+] key: FirmwareBootDevice
[-] arcname: multi(0)disk(0)rdisk(0)partition(1)
[-] path1: \Device\Harddisk2\Partition1
[-] path2: \Device\HarddiskVolume1
[+] mountpoints
[-] mount point: \??\Volume{ffcb0ea0-0000-0000-0000-200000000000}
BIOS-激活的FAT32分区启动,64位结果应该也是对的。
J:\bak\2下载的文件\判断引导分区\codeHZ>firmware64.exe
[+] key: FirmwareBootDevice
[-] arcname: multi(0)disk(0)rdisk(0)partition(1)
[-] path1: \Device\Harddisk2\Partition1
[-] path2: \Device\HarddiskVolume1
[+] mountpoints
[-] mount point: \??\Volume{ffcb0ea0-0000-0000-0000-200000000000}
[-] path1: \Device\Harddisk2\Partition1,磁盘管理里面有"系统"两个字,是启动分区。
liuzhaoyzz
发表于 2021-1-8 13:03:10
本帖最后由 liuzhaoyzz 于 2021-1-8 13:10 编辑
nttwqz 发表于 2021-1-8 11:32
又完善了一下,加入列表显示,无选中功能,找到时背景绿色,否则红色
https://cowtransfer.com/s/afbf13 ...
76楼图1环境,从ESP分区UEFI启动vhd,测试结果正确。ESP挂载正常。
76楼图2环境,从MBR-激活的FAT32分区UEFI启动,测试结果正确,但是第一次运行有个出错提示。
再次运行正常。
有时候有这个错误。比如从浏览器的下载窗口直接打开bat:
nttwqz
发表于 2021-1-8 14:37:12
liuzhaoyzz 发表于 2021-1-8 13:03
76楼图1环境,从ESP分区UEFI启动vhd,测试结果正确。ESP挂载正常。
错误提示不知道什么意思,看起来结果正常显示,我可以将错误屏蔽bcdedit错误不得而知,手动试试能不能显示菜单。
CodeHz
发表于 2021-1-8 15:25:56
liuzhaoyzz 发表于 2021-1-8 12:57
测试环境都是WIN8 WIN10,因为WIN7不支持MBR+GPT混合分区启动,未测试。
76楼图1环境: 从ESP分区UEFI启动 ...
32位没做过测试就发出来了,看起来是写炸了,一会修一下吧(
CodeHz
发表于 2021-1-8 15:35:19
liuzhaoyzz 发表于 2021-1-8 12:57
测试环境都是WIN8 WIN10,因为WIN7不支持MBR+GPT混合分区启动,未测试。
76楼图1环境: 从ESP分区UEFI启动 ...
另外是不是需要直接挂载出来呢,这样的话我这里可以省很多计算挂载点的操作,研究了一下,引导分区多半是没默认挂载的)
CodeHz
发表于 2021-1-8 15:57:15
本帖最后由 CodeHz 于 2021-1-8 16:04 编辑
(然后一顿研究之后我发现一个最最最简单的方法。。。
直接 mountvol X: /S
然后在管理员会话里X盘就是当前的EFI系统分区了。。。(非PE下的话,只有经过UAC的进程能看到那个分区,而explorer是自动弃权的,所以explorer是看不到那个分区的)
PS:经过一顿研究,普通用户即使通过一些手段打开了目录,也没法访问,权限不够而且没法修改(((
liuzhaoyzz
发表于 2021-1-8 16:07:17
CodeHz 发表于 2021-1-8 15:35
另外是不是需要直接挂载出来呢,这样的话我这里可以省很多计算挂载点的操作,研究了一下,引导分区多半是 ...
如果能够挂载出来分配个盘符最好,最好还提供个卸载盘符的参数,如果没有提供卸载盘符的参数,也没有什么。
liuzhaoyzz
发表于 2021-1-8 16:11:44
本帖最后由 liuzhaoyzz 于 2021-1-8 16:15 编辑
CodeHz 发表于 2021-1-8 15:57
(然后一顿研究之后我发现一个最最最简单的方法。。。
直接 mountvol X: /S
然后在管理员会话里X盘就是当 ...
mountvol X: /S这个操作肯定是不行的,似乎只能适用于一个硬盘一个ESP分区的情况。不具有适用性。这个命令真的很渣!
guyue2011写的工具挺好用的:挂载GPT硬盘的ESP分区工具--FindESP2.0 - PE讨论区 - 无忧启动论坛 - Powered by Discuz! http://bbs.wuyou.net/forum.php?mod=viewthread&tid=374167
findESP -mount
findESP -unmount
可以挂载所有本地硬盘的ESP分区,也可以卸载本地硬盘所有的ESP分区。(不支持优盘移动硬盘,这个我没有需求)
另外,盘符写入权限的问题,感觉比较麻烦。如果以内置的超级管理员身份登陆好像ESP写入没问题,如果以administrators组的成员访问,或者更低权限的用户访问可能就有问题。这个似乎不在讨论之列,能够实现找到并挂载这个引导分区就行了,剩下的事情让用户自己搞定吧。
liuzhaoyzz
发表于 2021-1-8 16:13:48
nttwqz 发表于 2021-1-8 14:37
错误提示不知道什么意思,看起来结果正常显示,我可以将错误屏蔽bcdedit错误不得而知,手动试试能不能显 ...
从浏览器的下载窗口直接打开bat,可能是因为32位浏览器或者文件管理器,调用了bcdedit是32位的,无法调用64位的导致出错。
liuzhaoyzz
发表于 2021-1-8 16:20:27
本帖最后由 liuzhaoyzz 于 2021-1-9 09:30 编辑
你看看上面mountvol的方法win7是否有效(这个是最方便的方法了)
mountvol的方法,适用于XP WIN7 8 10好像。问题是mountvol X: /S这样的肯定不适合的。
mountvol z: \\?\Volume{5a006011-0000-0000-0000-100000000000}\
这样子的命令是具有较好的通用性的,但是需要知道分区的UUID,这样子的命令不但可以挂载ESP盘符,FAT32/NTFS盘符挂载都没问题的。如果你能用windows API在程序内部实现更好,如果不能实现或实现起来费事,就用windows的mountvol实现也行。
mountvol X: /S这个命令比较渣,建议放弃。
liuzhaoyzz
发表于 2021-1-8 16:24:45
CodeHz 发表于 2021-1-8 15:25
32位没做过测试就发出来了,看起来是写炸了,一会修一下吧(
32位的程序具有更好的通用性,希望能够在xp下面运行,通杀xp WIN7 8 10,不然的话,批处理调用,还要判断系统版本,稍嫌麻烦。
页:
1
2
3
[4]
5
6
7
8
9
10
11
12
13