无忧启动论坛

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

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

    [复制链接]
391#
发表于 2022-4-26 09:49:14 | 只看该作者
dos时代菜鸟 发表于 2022-4-26 08:22
抱歉 autoit 不是很熟。

能否给出你在调用 NtQuerySystemInformation 函数获取启动分区时所使用的参数及其类型? 谢谢!

点评

本帖 ,369楼 就是。  详情 回复 发表于 2022-4-26 10:32
回复

使用道具 举报

392#
发表于 2022-4-26 10:32:39 | 只看该作者
本帖最后由 dos时代菜鸟 于 2022-4-26 10:41 编辑
Bluebells 发表于 2022-4-26 09:49
能否给出你在调用 NtQuerySystemInformation 函数获取启动分区时所使用的参数及其类型? 谢谢!

本帖 ,369楼 就是。
把 cmd 中 的  reg 改为 api ,批处理就会 调用 api 来确定 启动分区,
如果 是reg ,批处理会 通过读取 注册表指定位置,获取 启动分区 ,然后还是要用 api 转化一下格式。

注册表 得到的是bcd 位置分区,api 得到的是 bios 调用的分区。

表达 分区的格式 ,需要用  另外的 api 转一下。不然 ,用不了。

本帖  362楼 是 单独 用 api 方式的 pecmd 脚本。

点评

由于 PECMD 只会简单的一些语句, 所以看不懂 其实我只要获取得到启动分区的磁盘分区编号或卷编号就可以了(如 \Device\HarddiskX\PartitionX 或 \Device\HarddiskVolumeX) 我之前是使用注册表项 HKEY_LOCAL_MACHINE  详情 回复 发表于 2022-4-26 14:39
回复

使用道具 举报

393#
发表于 2022-4-26 14:39:31 | 只看该作者
dos时代菜鸟 发表于 2022-4-26 10:32
本帖 ,369楼 就是。
把 cmd 中 的  reg 改为 api ,批处理就会 调用 api 来确定 启动分区,
如果 是re ...

由于 PECMD 只会简单的一些语句, 所以看不懂
其实我只要获取得到启动分区的磁盘分区编号或卷编号就可以了(如 \Device\HarddiskX\PartitionX 或 \Device\HarddiskVolumeX)
我之前是使用注册表项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control 的值 FirmwareBootDevice 的数据去获取启动分区的磁盘分区编号, 但据说在某些情况下, 这种判断方式会不正确, 因此想通过 WinAPI 去获取

点评

不用知道 原理,只要 拿到结果 就行了。 批处理 调用 pecmd 脚本结果,再拿结果用。  详情 回复 发表于 2022-4-27 12:05
回复

使用道具 举报

394#
发表于 2022-4-27 12:05:21 | 只看该作者
Bluebells 发表于 2022-4-26 14:39
由于 PECMD 只会简单的一些语句, 所以看不懂
其实我只要获取得到启动分区的磁盘分区编号或卷编号就可以 ...

不用知道 原理,只要 拿到结果 就行了。
批处理 调用  pecmd 脚本结果,再拿结果用。
回复

使用道具 举报

395#
发表于 2022-11-20 11:18:56 | 只看该作者
学习了,厉害!
回复

使用道具 举报

396#
发表于 2022-11-21 17:51:14 | 只看该作者
斑竹请教一个问题,用楼上CodeHz大神开发的小程序,虽然挂载引导分区盘符都正常。复制文件进去也正常。   但是如果使用bcdedit /store命令修改ESP分区下的efi\microsoft\boot\bcd启动菜单,提示找不到路径。这个怎么解决?

点评

抱歉没注意到你的回帖。 bcdedit必须要以管理员身份运行,否则就有问题,对于MBR硬盘需要/boot/microsoft/bcd所在的分区是活动分区才行。  详情 回复 发表于 2022-11-28 12:37
回复

使用道具 举报

397#
发表于 2022-11-25 17:16:54 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

398#
发表于 2022-11-25 17:17:09 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

399#
 楼主| 发表于 2022-11-28 12:37:44 来自手机 | 只看该作者
2000lg 发表于 2022-11-21 17:51
斑竹请教一个问题,用楼上CodeHz大神开发的小程序,虽然挂载引导分区盘符都正常。复制文件进去也正常。    ...


抱歉没注意到你的回帖。
bcdedit必须要以管理员身份运行,否则就有问题,对于UEFI+MBR硬盘需要/efi/microsoft/bcd所在的分区是活动分区才行。
回复

使用道具 举报

400#
发表于 2022-12-1 16:54:07 | 只看该作者
liuzhaoyzz 发表于 2022-11-28 12:37
抱歉没注意到你的回帖。
bcdedit必须要以管理员身份运行,否则就有问题,对于UEFI+MBR硬盘需要/efi/mi ...

不行的。您可以试试,使用CodeHz大神开发的小程序挂载的盘符,bcdedit识别不到。使用diskpart加载出来的盘符是可以的。
回复

使用道具 举报

401#
发表于 2023-4-10 22:31:06 | 只看该作者
本帖最后由 wintoflash 于 2023-4-10 22:32 编辑
liuzhaoyzz 发表于 2021-6-28 09:52
你说的这个注册表项,帖子里面讨论过了,不靠谱。

挖坟。我看 49# CodeHz 的程序里面就是直接读的注册表啊?(http://bbs.wuyou.net/forum.php?m ... 4287&fromuid=487838)
firmware.tjs
  1. int getctrl(wchar_t *entry) {
  2.         HKEY scoped(pcloseKey) control;
  3.         CheckReg(RegOpenKey(HKEY_LOCAL_MACHINE, L"SYSTEM\\CurrentControlSet\\Control", &control));
  4.         LocalBuffer(wchar_t, device, 4096);
  5.         DWORD xtype = REG_SZ;
  6.         CheckReg(RegQueryValueEx(control, entry, 0, &xtype, (LPBYTE) device, &device_len));
  7.         ...
  8. }

  9. #define ReportCtrl(name) ({ wprintf(L" [+] key: %s\n", name); int code = getctrl(name); if (code != 0) wprintf(L"failed to read %s: %08X\n", name, code); })
  10. #define ReportStatus(msg, action) ({ wprintf(L" [+] %s\n", msg); int code = action; if (code != 0) wprintf(L"failed to %s: %08X\n", msg, code); })

  11. int main() {
  12.         ReportCtrl(L"FirmwareBootDevice");
  13.         ReportCtrl(L"SystemBootDevice");
  14. }
复制代码

点评

我实在是记不清这些了,我也没细看CodeHz的代码  详情 回复 发表于 2023-4-11 22:43
回复

使用道具 举报

402#
 楼主| 发表于 2023-4-11 22:43:55 | 只看该作者
wintoflash 发表于 2023-4-10 22:31
挖坟。我看 49# CodeHz 的程序里面就是直接读的注册表啊?(http://bbs.wuyou.net/forum.php?m ... 4287&f ...

我实在是记不清这些了,我也没细看CodeHz的代码
前面的帖子好像是测试过。
回复

使用道具 举报

403#
发表于 2023-4-12 18:56:54 | 只看该作者
你这个就有点像开了多个DHCP,  该从哪个dhcp启动的问题
回复

使用道具 举报

404#
发表于 2023-4-21 15:33:02 | 只看该作者
感谢分享
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-27 10:29

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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