无忧启动论坛

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

求个清除保留扇区的命令行工具

  [复制链接]
跳转到指定楼层
#
发表于 2020-5-16 17:48:44 来自手机 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 liuzhaoyzz 于 2020-5-19 21:39 编辑

       diskgenius有个清除保留扇区,即1-62扇区的功能,但没有命令行。求高手写个清除保留扇区的命令行工具,要求只处理MBR硬盘,不要处理GPT硬盘(会出错),另外对于硬盘保留扇区要能自动计算,比如有的保留扇区是31/62/1023/2047等。
1、以前cndos论坛有个dsptw工具可以读写任意一个扇区,但是没有判断起始扇区的功能(有命令参数可以输出,要自己处理),似乎dsptw有时间限制(二十年?)。
http://wuyou.net/forum.php?mod=viewthread&tid=109935
2、似乎dd for windows也可以实现?这个命令很危险不会用。

求高手用c/c++写个,或者推荐个命令行工具,想要实现的结果,ClearReserve C:这样的命令,如果C盘是MBR分区,就把C盘所在的硬盘的保留扇区清零。谢谢了!





https://liuzhaoyzz.lanzous.com/b00nlqm6j
感谢plusv,haiou327,19951001,5大,杏大等诸位大神的分享!
44#
发表于 2023-10-11 10:55:36 | 只看该作者
最基础的还是命令
回复

使用道具 举报

43#
发表于 2023-10-10 20:59:36 | 只看该作者
高手如云
回复

使用道具 举报

42#
发表于 2023-10-10 20:58:38 | 只看该作者
窄口牛 发表于 2020-5-16 20:38
Linux下是把磁盘当文件来对待的,win下就难了。建议还是用dd,cywin的。

高!!!!!!
回复

使用道具 举报

41#
发表于 2023-10-10 19:01:13 | 只看该作者
share!!!
回复

使用道具 举报

40#
发表于 2023-9-27 10:31:56 | 只看该作者
plusv 发表于 2020-5-17 07:15
dsptw2008.11.29
-> 修改

非常感谢大佬
回复

使用道具 举报

39#
 楼主| 发表于 2020-5-25 16:24:26 来自手机 | 只看该作者
江南一根葱 发表于 2020-5-25 15:34
这个保留扇区有时候会出莫名奇妙的故障,开机到启动画面断电。。
所以我装系统前都是清除一下它

我也是这样子干的。
回复

使用道具 举报

38#
发表于 2020-5-25 15:34:09 | 只看该作者
这个保留扇区有时候会出莫名奇妙的故障,开机到启动画面断电。。
所以我装系统前都是清除一下它

点评

我也是这样子干的。  详情 回复 发表于 2020-5-25 16:24
回复

使用道具 举报

37#
 楼主| 发表于 2020-5-25 12:54:45 来自手机 | 只看该作者
江南一根葱 发表于 2020-5-25 10:54
清除保留扇区还是挺安全的。。不影响系统正常启动。


       如果MBR是grub4dos占用16扇区,wee占用62扇区,就会有影响,但是清除保留扇区之后,下一步我肯定会重建引导咯。
回复

使用道具 举报

36#
发表于 2020-5-25 10:54:17 | 只看该作者
窄口牛 发表于 2020-5-17 09:47
尽量避免这个操作,太危险了。

清除保留扇区还是挺安全的。。不影响系统正常启动。

点评

如果MBR是grub4dos,占用16扇区,就会有影响,但是清楚保留扇区之后,下一步我肯定会重建引导咯。  详情 回复 发表于 2020-5-25 12:54
回复

使用道具 举报

35#
 楼主| 发表于 2020-5-23 19:20:21 | 只看该作者
sinoxer 发表于 2020-5-23 18:46
这个就是IQIX,后期同步更新参见原贴:
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=420266

iqix功能挺强大的!
回复

使用道具 举报

34#
发表于 2020-5-23 18:46:21 | 只看该作者
liuzhaoyzz 发表于 2020-5-19 19:54
试了下,成功了,杏大,这个小软件为啥这么大?是不是里面还有其他的功能,能否只保留清除保留扇区的功能 ...

这个就是IQIX,后期同步更新参见原贴:
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=420266

点评

iqix功能挺强大的!  详情 回复 发表于 2020-5-23 19:20
回复

使用道具 举报

33#
发表于 2020-5-22 06:37:57 | 只看该作者
感谢大神分享!
回复

使用道具 举报

32#
 楼主| 发表于 2020-5-20 12:11:46 来自手机 | 只看该作者
2012qnmd 发表于 2020-5-20 08:35
清多少扇区,就写多少, 不限于62

5大的程序我试了可以
回复

使用道具 举报

31#
发表于 2020-5-20 08:35:04 | 只看该作者
清多少扇区,就写多少, 不限于62

点评

5大的程序我试了可以  详情 回复 发表于 2020-5-20 12:11
回复

使用道具 举报

30#
 楼主| 发表于 2020-5-19 21:34:54 | 只看该作者
527104427 发表于 2020-5-19 21:27
按你这个分区表来测试过,是成功的啊。实测4096扇区也没问题。
再增强一下,可以处理各分区顺序错乱的情 ...

试了下,果然可以,刚才可能我的命令输入有错误。感谢5大!
  1. @echo off
  2. set /p disk=请输入要清除保留扇区的盘符(例如C:):
  3. if defined disk ChkMbrPbr_x86  -ClsRevSec  %disk%
  4. echo %disk%盘所在的硬盘的保留扇区已被清零,按任意键退出。
  5. @pause 1>NUL 2>NUL
复制代码


回复

使用道具 举报

29#
 楼主| 发表于 2020-5-19 20:17:32 | 只看该作者
本帖最后由 liuzhaoyzz 于 2020-5-19 21:02 编辑
527104427 发表于 2020-5-19 20:15
这是通过分区表算出第一个分区的位置,不行的话把你的分区表传上来看看是啥。

MBR0-2048
是不是这个啊。

diskgenius分区的时候,选择对齐到2048扇区,保留扇区就是1-2047的样子。

mbr2048.rar

6.85 KB, 下载次数: 15, 下载积分: 无忧币 -2

回复

使用道具 举报

28#
 楼主| 发表于 2020-5-19 20:01:34 | 只看该作者
本帖最后由 liuzhaoyzz 于 2020-5-19 20:09 编辑
527104427 发表于 2020-5-19 15:42
还是用PECMD吧,方便快捷。
将原来的ChkMbrPbr改了一下,两个功能只占一份体积。其实只要你愿意,你引用 ...

5大的代码,对于保留扇区1-62的这种可以清除,对于保留扇区1-2047这种似乎不行啊。
回复

使用道具 举报

27#
 楼主| 发表于 2020-5-19 19:54:04 | 只看该作者
sinoxer 发表于 2020-5-19 10:49
磁盘可选用以下三种描述方式之一:

磁盘号(0、1、2……,以Windows定义的序号为准)

试了下,成功了,杏大,这个小软件为啥这么大?是不是里面还有其他的功能,能否只保留清除保留扇区的功能?
回复

使用道具 举报

26#
发表于 2020-5-19 10:49:38 | 只看该作者
liuzhaoyzz 发表于 2020-5-19 07:04
请问下set disk_num=9999,这个怎么确定呢?能否用盘符来确定disk_num=xxxx?
比如C: D: E: F:盘对应的硬 ...


磁盘可选用以下三种描述方式之一:

磁盘号(0、1、2……,以Windows定义的序号为准)
如8号物理磁盘
disk_num=8

盘符(C:、D:、E:……,以Windows定义的盘符为准)
如X:盘所在的物理磁盘
disk_num=X:

枚举所有MBR磁盘(/ALL_MBR_DISK)
disk_num=/ALL_MBR_DISK


密码:六个九

Clear_Reserved_Sectors_0519.7z (2.58 MB, 下载次数: 26)


回复

使用道具 举报

25#
 楼主| 发表于 2020-5-19 07:04:58 | 只看该作者
请问下set disk_num=9999,这个怎么确定呢?能否用盘符来确定disk_num=xxxx?
比如C: D: E: F:盘对应的硬盘disk_num都是x这样子。
回复

使用道具 举报

24#
 楼主| 发表于 2020-5-18 14:20:42 | 只看该作者
不行啊,x86 x64都出错,x86的为什么不能在64位系统下运行?x64的也出错啊。

QQ截图20200518141935.jpg (15.75 KB, 下载次数: 291)

QQ截图20200518141935.jpg
回复

使用道具 举报

23#
 楼主| 发表于 2020-5-18 12:45:40 来自手机 | 只看该作者
sinoxer 发表于 2020-5-18 11:13
IQIX有此功能,只是早先未开放
密码:六个九


谢谢杏大分享!现在手机回复,晚点下载试试。为什么这么大?是不是还有其他功能,这个功能能否独立出来?
回复

使用道具 举报

22#
发表于 2020-5-18 11:13:32 | 只看该作者
IQIX有此功能,只是早先未开放
密码:六个九

Clear_Reserved_Sectors.7z (2.54 MB, 下载次数: 27)




回复

使用道具 举报

21#
 楼主| 发表于 2020-5-18 07:13:43 来自手机 | 只看该作者
本帖最后由 liuzhaoyzz 于 2020-11-17 11:07 编辑
窄口牛 发表于 2020-5-17 09:47
尽量避免这个操作,太危险了。

        也没有那么可怕,只要设置好边界条件,不会有问题的。bootice也是直接写扇区,weesetup也是直接写扇区的,diskgenius清除保留扇区也是直接写扇区的,没那么可怕,而且diskgenius只能清除1-62扇区这些保留扇区,对于保留扇区2047这样子的就不行,比如分区的时候对齐到2048扇区这种,保留扇区就有2047。
回复

使用道具 举报

20#
 楼主| 发表于 2020-5-17 18:53:02 来自手机 | 只看该作者
本帖最后由 liuzhaoyzz 于 2020-5-18 07:24 编辑
527104427 发表于 2020-5-17 11:41
现在还有4k扇区的情况,不知道mbr还是不是写到前512字节。


        论坛搜了下,似乎4KB扇区不支持BIOS下启动,必须要搞成GPT分区,UEFI启动才行。而我所讨论的保留扇区是基于MBR分区的,GPT下讨论保留扇区没什么意义,因为GPT分区是直接从文件启动的,扇区数据不怎么影响启动,MBR分区才是从扇区启动的。

清除保留扇区的主要作用是防止残留的扇区数据影响引导,能够解决BIOS引导时一些诡异的引导问题。


http://wuyou.net/forum.php?mod=v ... C8%C7%F8&page=1
回复

使用道具 举报

19#
 楼主| 发表于 2020-5-17 11:56:02 | 只看该作者
527104427 发表于 2020-5-17 11:41
现在还有4k扇区的情况,不知道mbr还是不是写到前512字节。

不知道呢。估计dsptw没有考虑,那时候是2008年。
回复

使用道具 举报

18#
发表于 2020-5-17 09:47:48 来自手机 | 只看该作者
尽量避免这个操作,太危险了。
回复

使用道具 举报

17#
 楼主| 发表于 2020-5-17 09:22:55 | 只看该作者
本帖最后由 liuzhaoyzz 于 2020-5-19 21:50 编辑

我分享个基于dsptw编写的清除保留扇区,避免残留代码干扰的范例,bootdisk=C:,可以自行修改,比如改成set /p bootdisk=请输入盘符:适用于磁盘MBR保留扇区可能是31/62/1023/2047等情况。


dsptw清除保留扇区.rar

148.36 KB, 下载次数: 25, 下载积分: 无忧币 -2

回复

使用道具 举报

16#
 楼主| 发表于 2020-5-17 09:20:16 | 只看该作者
2012qnmd 发表于 2020-5-17 08:55
pecmd 可以
当时,跟作者提过,加入了此功能,也测试过了,没有问题

感谢分享!我估计pecmd能搞定这个。

你上面的代码,似乎是清除1-62扇区的数据?有的磁盘MBR保留扇区可能是31/62/1023/2047,pecmd能否自动判断?
能给个完整的样板吗?

回复

使用道具 举报

15#
发表于 2020-5-17 08:55:40 | 只看该作者
pecmd 可以
当时,跟作者提过,加入了此功能,也测试过了,没有问题

后来pecmd不断升级, 并且发了X64版本,不知道此功能是否保留了下来
下面是当时写的一个工具里面关于这部分的内容

_SUB F3
      FIND  $=%PHYDRV%,!!  TEAM  MESS 没有指定磁盘   @#参数错误OK *5000| EXIT _SUB
      MESS   要清除磁盘保留扇区...吗?        @#YN    $N
      FIND  $YES=%YESNO%,!  EXIT _SUB
      PUTF \\.\PhysicalDrive%PHYDRV%,1S,*62S 0x00
      MESS 完成    @#OK *5000
_END

回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-27 01:59

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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