无忧启动论坛

标题: 求个清除保留扇区的命令行工具 [打印本页]

作者: liuzhaoyzz    时间: 2020-5-16 17:48
标题: 求个清除保留扇区的命令行工具
本帖最后由 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大,杏大等诸位大神的分享!
作者: 窄口牛    时间: 2020-5-16 20:38
Linux下是把磁盘当文件来对待的,win下就难了。建议还是用dd,cywin的。
作者: plusv    时间: 2020-5-16 21:11
http://bbs.wuyou.net/forum.php?m ... p;extra=&page=1
磁盘扇区读写、分区信息管理工具dsptw

>似乎dsptw有时间限制(十年?)。

我改到 2040 年也能运行.
作者: liuzhaoyzz    时间: 2020-5-16 22:30
本帖最后由 liuzhaoyzz 于 2020-5-16 22:36 编辑
窄口牛 发表于 2020-5-16 20:38
Linux下是把磁盘当文件来对待的,win下就难了。建议还是用dd,cywin的。

dd for windows我不会用,不会用的根本原因是害怕,对软件不熟悉,对数据结构不熟悉。
作者: liuzhaoyzz    时间: 2020-5-16 22:34
本帖最后由 liuzhaoyzz 于 2020-5-16 22:37 编辑
plusv 发表于 2020-5-16 21:11
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=109935&extra=&page=1
磁盘扇区读写、分区信息管理工 ...

日期改到2040年之后,软件只能出帮助提示,所有的参数都无效。
不相信的话,你运行dsptw.exe /a /pdr
你看下能不能正确地显示所有的磁盘?


你能破解吗?
这样的软件还设置个时间限制,哎~~~
他的源代码已经全部丢了。
Dust to dust,ash to ash~~~

作者: 窄口牛    时间: 2020-5-16 23:45
biotsect.exe研究下,做这些非常危险,一定要小心。
作者: plusv    时间: 2020-5-17 00:42
本帖最后由 plusv 于 2020-5-17 01:07 编辑
liuzhaoyzz 发表于 2020-5-16 22:34
日期改到2040年之后,软件只能出帮助提示,所有的参数都无效。
不相信的话,你运行dsptw.exe /a /pdr
...

追了程序码

1. 程序 DISKRW.exe 和 DSPTW.exe 脱壳.
2. 去除 禁止更名.
3. 去除 禁止修改.
4. 去除 时间限制(2027 年正常,2028 年后,参数无效)






Src_Crk.rar

101.76 KB, 下载次数: 22, 下载积分: 无忧币 -2


作者: liuzhaoyzz    时间: 2020-5-17 05:28
窄口牛 发表于 2020-5-16 23:45
biotsect.exe研究下,做这些非常危险,一定要小心。

biotsect搜了下没找到啊?能分享下吗?有用法吗?
作者: liuzhaoyzz    时间: 2020-5-17 05:28
plusv 发表于 2020-5-17 00:42
追了程序码

1. 程序 DISKRW.exe 和 DSPTW.exe 脱壳.


感谢大神分享!等下试试看。
作者: liuzhaoyzz    时间: 2020-5-17 06:58
本帖最后由 liuzhaoyzz 于 2020-5-17 06:59 编辑
plusv 发表于 2020-5-17 00:42
追了程序码

1. 程序 DISKRW.exe 和 DSPTW.exe 脱壳.

下载试了下,没有时间限制了,不过你修改的不是最终版本的啊。
最终版是:
dsptw2008.11.29
DISKRW2008.11.11
最终版本修复了较多bug。http://wuyou.net/forum.php?mod=r ... &fromuid=298214
恳请plusv大神再次修改下,谢谢了!

dsptw_diskrw最终版.rar

67.44 KB, 下载次数: 14, 下载积分: 无忧币 -2


作者: 窄口牛    时间: 2020-5-17 07:00
win7系统包里boot文件夹下面。
作者: plusv    时间: 2020-5-17 07:15
本帖最后由 plusv 于 2020-5-17 07:21 编辑
liuzhaoyzz 发表于 2020-5-17 06:58
下载试了下,没有时间限制了,不过你修改的不是最终版本的啊。
最终版是:
dsptw2008.11.29

dsptw2008.11.29
-> 修改

DISKRW2008.11.11
-> 有 Bug,修改后 WinXP 崩溃,Win7 正常,所以不发
-> 文件差 10 天,应该没改什么.



Crk.rar

43.45 KB, 下载次数: 42, 下载积分: 无忧币 -2


作者: liuzhaoyzz    时间: 2020-5-17 08:23
plusv 发表于 2020-5-17 07:15
dsptw2008.11.29
-> 修改

我把时间改成2099年,程序可用,感谢plusv大神出手!
作者: liuzhaoyzz    时间: 2020-5-17 08:24
窄口牛 发表于 2020-5-17 07:00
win7系统包里boot文件夹下面。

莫非你说的是微软的bootsect?这个不行,这个只能修改1个扇区的MBR,还有修改PBR,无法清除保留扇区那些残留的引导代码。
作者: 窄口牛    时间: 2020-5-17 08:29
哦。我也是搜到有人说的。
作者: 2012qnmd    时间: 2020-5-17 08:55
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


作者: liuzhaoyzz    时间: 2020-5-17 09:20
2012qnmd 发表于 2020-5-17 08:55
pecmd 可以
当时,跟作者提过,加入了此功能,也测试过了,没有问题

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

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


作者: liuzhaoyzz    时间: 2020-5-17 09:22
本帖最后由 liuzhaoyzz 于 2020-5-19 21:50 编辑

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


dsptw清除保留扇区.rar

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


作者: 窄口牛    时间: 2020-5-17 09:47
尽量避免这个操作,太危险了。
作者: liuzhaoyzz    时间: 2020-5-17 11:56
527104427 发表于 2020-5-17 11:41
现在还有4k扇区的情况,不知道mbr还是不是写到前512字节。

不知道呢。估计dsptw没有考虑,那时候是2008年。
作者: liuzhaoyzz    时间: 2020-5-17 18:53
本帖最后由 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
作者: liuzhaoyzz    时间: 2020-5-18 07:13
本帖最后由 liuzhaoyzz 于 2020-11-17 11:07 编辑
窄口牛 发表于 2020-5-17 09:47
尽量避免这个操作,太危险了。

        也没有那么可怕,只要设置好边界条件,不会有问题的。bootice也是直接写扇区,weesetup也是直接写扇区的,diskgenius清除保留扇区也是直接写扇区的,没那么可怕,而且diskgenius只能清除1-62扇区这些保留扇区,对于保留扇区2047这样子的就不行,比如分区的时候对齐到2048扇区这种,保留扇区就有2047。
作者: sinoxer    时间: 2020-5-18 11:13
IQIX有此功能,只是早先未开放
密码:六个九

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





作者: liuzhaoyzz    时间: 2020-5-18 12:45
sinoxer 发表于 2020-5-18 11:13
IQIX有此功能,只是早先未开放
密码:六个九


谢谢杏大分享!现在手机回复,晚点下载试试。为什么这么大?是不是还有其他功能,这个功能能否独立出来?
作者: liuzhaoyzz    时间: 2020-5-18 14:20
不行啊,x86 x64都出错,x86的为什么不能在64位系统下运行?x64的也出错啊。

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

QQ截图20200518141935.jpg

作者: liuzhaoyzz    时间: 2020-5-19 07:04
请问下set disk_num=9999,这个怎么确定呢?能否用盘符来确定disk_num=xxxx?
比如C: D: E: F:盘对应的硬盘disk_num都是x这样子。
作者: sinoxer    时间: 2020-5-19 10:49
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)



作者: liuzhaoyzz    时间: 2020-5-19 19:54
sinoxer 发表于 2020-5-19 10:49
磁盘可选用以下三种描述方式之一:

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

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

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

5大的代码,对于保留扇区1-62的这种可以清除,对于保留扇区1-2047这种似乎不行啊。
作者: liuzhaoyzz    时间: 2020-5-19 20:17
本帖最后由 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


作者: liuzhaoyzz    时间: 2020-5-19 21:34
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
复制代码



作者: 2012qnmd    时间: 2020-5-20 08:35
清多少扇区,就写多少, 不限于62


作者: liuzhaoyzz    时间: 2020-5-20 12:11
2012qnmd 发表于 2020-5-20 08:35
清多少扇区,就写多少, 不限于62

5大的程序我试了可以
作者: yzw92    时间: 2020-5-22 06:37
感谢大神分享!
作者: sinoxer    时间: 2020-5-23 18:46
liuzhaoyzz 发表于 2020-5-19 19:54
试了下,成功了,杏大,这个小软件为啥这么大?是不是里面还有其他的功能,能否只保留清除保留扇区的功能 ...

这个就是IQIX,后期同步更新参见原贴:
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=420266
作者: liuzhaoyzz    时间: 2020-5-23 19:20
sinoxer 发表于 2020-5-23 18:46
这个就是IQIX,后期同步更新参见原贴:
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=420266

iqix功能挺强大的!
作者: 江南一根葱    时间: 2020-5-25 10:54
窄口牛 发表于 2020-5-17 09:47
尽量避免这个操作,太危险了。

清除保留扇区还是挺安全的。。不影响系统正常启动。
作者: liuzhaoyzz    时间: 2020-5-25 12:54
江南一根葱 发表于 2020-5-25 10:54
清除保留扇区还是挺安全的。。不影响系统正常启动。


       如果MBR是grub4dos占用16扇区,wee占用62扇区,就会有影响,但是清除保留扇区之后,下一步我肯定会重建引导咯。
作者: 江南一根葱    时间: 2020-5-25 15:34
这个保留扇区有时候会出莫名奇妙的故障,开机到启动画面断电。。
所以我装系统前都是清除一下它
作者: liuzhaoyzz    时间: 2020-5-25 16:24
江南一根葱 发表于 2020-5-25 15:34
这个保留扇区有时候会出莫名奇妙的故障,开机到启动画面断电。。
所以我装系统前都是清除一下它

我也是这样子干的。
作者: kala2018    时间: 2023-9-27 10:31
plusv 发表于 2020-5-17 07:15
dsptw2008.11.29
-> 修改

非常感谢大佬
作者: rbwrbw    时间: 2023-10-10 19:01
share!!!
作者: rbwrbw    时间: 2023-10-10 20:58
窄口牛 发表于 2020-5-16 20:38
Linux下是把磁盘当文件来对待的,win下就难了。建议还是用dd,cywin的。

高!!!!!!
作者: rbwrbw    时间: 2023-10-10 20:59
高手如云
作者: rbwrbw    时间: 2023-10-11 10:55
最基础的还是命令




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3