![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-06 07:07 |
共 47,812 主题排行 / 349,914 发帖 / 今日 0 篇 / 48,268 会员排行 |
| DOS开发编程 & 发展交流 (开发室) » 磁盘扇区读写、分区信息管理工具 Dsptw (2008.11.29 更新) |
| 可打印版本 119,969 / 565 |
| 第1楼 19951001 | 发表于 2006-11-02 01:17 |
| 高级用户 发帖 272 积分 570 来自 北京 | |
|
磁盘扇区读写、分区信息管理工具 Dsptw (2008.11.29 更新) 磁盘扇区读写、分区信息管理工具使用说明
=============== Diskrw.com 是磁盘扇区读写程序 Dpit.com 是分区信息管理工具 Dspt.com 是上述两者合成版本 =============== Syntax: DSPT Disk: 0-First Hard Disk, 1-Second Hard Disk, ...(0为第一硬盘,1为第二硬盘) A:, B, C:, D: ....: Start: Disk Absolute Sector Number (扇区号,应为大于等于0的整数,磁盘扇区从0开始编号) :n Partition Number (:n n为分区号,可以通过命令:dspt 0 /l 得到) Sectors: Total Sectors to be Processed (要处理的扇区数量,取值范围 1-4194303 即0x0-0x3FFFFF) /S: Save Disk Sector Info to File (保存磁盘扇区到文件) /R: Restore Disk Sector Info from File (把文件信息恢复到磁盘,要求文件大小应该等于要恢复的扇区数量乘512) /C: Compare Disk Sector Info with File (把文件信息与磁盘扇区信息进行比较,要求文件大小应该等于要比较的扇区数量乘512) FileName: Disk Sector Info File (文件名字) /Y: Assume Yes on all Queries (对要求确认的请求默认为 Y ,并且不显示版权信息) 例子: dspt 0 0 1 /s mbr0.bin 将第一硬盘的从0号扇区开始共一个扇区的信息保存到文件 mbr0.bin ,该位置为磁盘的主引导记录。 dspt 1 100 1000 /s sectors.bin 将第二硬盘从第100个扇区开始共1000个扇区的信息保存到 sectors.bin ,保存后文件大小应该为512000字节。 dspt 0 0 1 /c mbr0.bin 将文件信息与第一硬盘从0号扇区开始共一个扇区的信息进行比较,要求文件大小为512字节。 dspt 0 0 1 /r mbr0.bin 将文件信息恢复到第一硬盘从0号扇区开始共一个扇区,要求文件大小为512字节。 DSPT /L: List Disk Sector Info on Screen (将磁盘信息在屏幕上显示) /P: Pause echo Screen (满屏暂停) /A: Show ASC Value (显示 ASC 码) DSPT /E: Clear Disk Sector Info (清空扇区信息) 例子: dspt 0 0 100 /L /p /a 将第一硬盘的从0号扇区开始共100个扇区的信息显示在屏幕上,满屏暂停并显示 ASC 码。 dspt 1 100 1000 /e 将第二硬盘从第100个扇区开始共1000个扇区的信息清空。 DSPT SrcDisk/DstDisk: 0-First Hard Disk, 1-Second Hard Disk, ... A:, B:, C:, D: .... Start: Disk Absolute Sector Number Sectors: Total Sectors to be Processed /D: Copy Disk Sector Info from SrcDisk to DstDisk (磁盘信息复制) Offset: Disk Absolute Sector Number (扇区号,应为大于等于0的整数,磁盘扇区从0开始编号) /Y: Assume Yes on all Queries 例子: dspt 0 0 1000 /d 0 100 将第一硬盘的从0号扇区开始共1000个扇区的信息复制到第一硬盘第100扇区开始的共1000个扇区。 DSPT Disk: 0-First Hard disk, 1-Second Hard Disk, ... /S: Save Disk Partition Info to File (保存磁盘分区信息) /R: Restore Disk Partiton Info from File (从文件恢复磁盘分区信息) /C: Compare Disk Partiton Info with File (将磁盘分区信息与文件信息进行比较) FileName: Disk Partition Info File /Y: Assume Yes on all Queries 例子: dspt 1 /s dsk1part.bin 将第二硬盘的分区信息保存到文件 dsk1part.bin DSPT Save Partition Boot Record to File 例子: dspt 0 /s dbr0.bin /dbr 将第一硬盘的每个分区的引导信息保存到文件 dbr0.bin 关于文件大小的说明:保存的分区信息文件和 DBR 信息文件的大小应该为 (516×保存的扇区数量 + 1) DSPT /L: List Disk Partition Info on Screen (在屏幕上显示磁盘分区信息) /NOEXT: Don't Display Big Extended Partition (不显示总的扩展分区信息) 例子: dspt 0 /l 将第一硬盘的分区信息保显示在屏幕上。 DSPT Active Disk Partition n 例子: dspt 0 /ACT:2 将第一硬盘的第二分区激活,只有主分区才能被激活。 DSPT Find Disk Partition 查找分区 type: Can be FAT16/FAT32/FAT/NTFS/LINUX/ALL 例子: dspt 0 /Find:all 查找第一硬盘的所有分区,显示格式0:1 0:2 ....。 DSPT ReBuild Disk Main Boot Record /NOBACK: Don't Backup old MBR 例子: dspt 0 /mbr 重建第一硬盘的主引导记录,默认将原主引导记录备份到 dsk?mbr.bin ,与 Fdisk/mbr 功能相同。 DSPT Hide/Unhide Disk Partition n (隐藏/显示分区n, n可通过 dspt 0 /l 得到) 例子: dspt 0 /hide:3 隐藏第一硬盘的第三个分区。 dspt 0 /unhide:3 显示第一硬盘的第三个分区。 DSPT Disk: 0-First Hard disk, 1-Second Hard Disk, ... /DPS: Save Disk Partition Info to Last Cluster (将分区信息保存到硬盘最后一个簇) /DPR: Restore Disk Partiton Info from Last Cluster (从硬盘最后一个簇,恢复磁盘的分区信息,前提是应该保存分区信息) /DPC: Compare Disk Partiton Info with Last Cluster (将分区信息与硬盘最后一个簇信息比较) /Y: Assume Yes on all Queries 说明:该命令慎用,如果你的 BIOS 不支持大硬盘,通过 BIOS 得到的磁盘最后一个簇可能不是真正的最后簇,这时对该簇的读写可能造成数据丢失。 2007.1.15 dpit 1.15 测试版本,加入了对FAT32、NTFS卷标的支持,并能够显示FAT32分区的 DOS 盘符。 FAT16我这里没有测试环境,请大家帮忙测试一下卷标和盘符是否正确。 2007.2.15 发 diskrw 2007.1.31 DOS 正式版本。 支持 DOS 原生盘符,目前不支持IFS 和 NTFS4DOS生成的盘符。 2007.2.26 发 dspt 和 dpit DOS正式版本 2007.5.29 增加一个小工具 在262楼有一个修正的 DSPT DOS 版本 2007.7.12 1 增加磁盘比较功能 DISKRW Disk: 0-First Hard Disk, 1-Second Hard Disk, ... A:, B:, C:, D: ... Start: Disk Absolute Sector Number Sectors: Total Sectors to be Processed /O: Compare Disk Sector Info with DstDisk DstDisk: 0-First Hard Disk, 1-Second Hard Disk, ... A:, B:, C:, D: ... Offset: Disk Absolute Sector Number 例子: diskrw c: 20 10 /O d: 5 将C:盘的第20号扇区开始的10个扇区和D:盘第5号扇区开始的10个扇区比较 diskrw 0 10 10 /O c: 0 将第一物理磁盘的第10号扇区开始的10个扇区和C:盘第0号扇区开始的10个扇区比较 2 增加直接修改磁盘扇区的功能 DISKRW /M /Hex:Value Disk: 0-First Hard Disk, 1-Second Hard Disk, ... A:, B:, C:, D: ... SectorNo: Disk Absolute Secotor Number Offset: Offset in Specified Sector (0..511) /M: Modify Disk Sector Info /Hex: Hexadecimal Stytle Value: Hexadecimal Digital String (No more than 32 characters) 例子: diskrw c: 20 0 /M /Hex:ABCDEF 将C:盘的第20号扇区偏移位置0处的三个字节修改为 0xAB,0xCD,0xEF 注:对扇区修改每次最多16个字节(32个字符) 2007.7.17更新 dsptw 〔disk〕 /l /a 增加参数 /a 可以在Win32环境下准确得到磁盘的扇区总数 2007.8.8 DOS版本 Diskrw 更新 1、修正当磁盘为DOS盘符时,磁盘编辑功能存在的bug。 Win32版本更新Dsptw和diskrw 2007.8.15 diskrw更新在一楼 dspt更新在290楼 dspt 错误代码: #define SUCCESS 0 #define READ_DISK_ERROR 1 #define WRITE_DISK_ERROR 2 #define OPEN_FILE_ERROR 3 #define CREATE_FILE_ERROR 4 #define READ_FILE_ERROR 5 #define WRITE_FILE_ERROR 6 #define FILE_SIZE_ERROR 7 #define TOO_MANY_PARTITIONS 8 #define PARTITION_NUMBER_ERROR 9 #define PARTITION_CANNOT_BE_HIDDEN 10 #define PARTITION_CANNOT_BE_UNHIDDEN 11 #define ONLY_PRIMARY_PARTITION_CAN_BE_ACTIVE 12 #define UNSURPPORT_PARTITION 13 #define DISK_ERROR 14 #define NOT_ENOUGH_MEMORY 15 #define PARAMETER_ERROR 16 #define USER_CANCEL 17 #define LIST_OK 100 #define OS_ERROR 201 #define NAME_ERROR 202 #define COMPARE_MISMATCH 203 #define PRG_SIZE_ERROR 204 #define SECTORS_ERROR 205 #define PARAMETERS_TOO_FEW 207 #define UNKOWN_ERROR 1000 2008.9.27 Win32 版本 diskrw 更新 http://upload.cn-dos.net/img/798.rar 本次修改的内容: 1 命令调整,原来的 /E 命令(删除扇区内容)更改为 /F 命令 (扇区内容充填) 原来的 /E 命令是使用 0 充填指定扇区 现在的 /F 命令可指定任何值对扇区进行充填,如果不输入 Value 值则和原版本的 /E 命令执行相同的功能 DISKRW /F: Fill Disk Sector Info with Value Value: an Integer (0..255), default is 0 2 命令调整,将修改扇区的命令有原来的 /M (Modify) 调整为 /E (Edit) 更为直观 DISKRW SectorNo: Absolute/Relative Sector No. of Disk Offset: The Offset in Specified Sector (0..511) /E: Edit Disk Sector Info /HEX: Hex Style Value: Hex Digital String (No more than 32 characters) 3 功能增加,增加移动扇区的功能,使用的命令为 /M DISKRW /M: Move Disk Sector DATA form Disk to DstDisk DstDisk: 0-First hard Disk, 1-Second hard Disk, ... A:, B:, C:, D: ... Offset: Absolute/Relative Sector No. of Disk 4 修正了使用 16 进制数的大小写存在的 Bug DOS 版本不存在此问题 2008.11.1 Diskrw for DOS 与原来版本改变 1、增加参数 Offset 此参数用来指定文件内部的偏移位置,默认值为0(文件的开始) 如果给出了Offset的值,但是文件不存在,则给出的Offset值被忽略。 例子: Diskrw C: 0 10 /S sector.bin 10 将磁盘C:从起始位置开始的10个扇区,写入文件sector.bin。如果文件不存在,则sector.bin的大小为5120个字节,如果文件存在,如文件大小小于10字节程序会给出错误信息,如果文件大小大于等于10字节,则程序会将扇区内容写入文件的偏移位置10开始的5120字节中,文件中的原来信息会被覆盖(如文件长度小于5130字节则文件长度增加)。 DISKRW Disk: 0-First Hard Disk, 1-Second Hard Disk, ... A:, B:, C:, D: ... Start: Disk Absolute Sector Number Sectors: Total Sectors to be Processed /S: Save Disk Sector Info to File /R: Restore Disk Sector Info from File /C: Compare Disk Sector Info with File FileName: Disk Sector Info File /Offset: The Offset In FileName 2、增加功能 /M 这个功能在win32版本中早已实现,将磁盘Disk中从位置Start开始的Sectors个扇区内容移动到磁盘DstDisk中Offset的位置,移动后Disk中相应位置的扇区信息会被清除,如移出扇区和移入扇区位置叠加,程序会智能选择要清除的扇区部分。 DISKRW /D: Duplicate Disk Sector Info from Disk to DstDisk /O: cOmpare Disk Sector Info with DstDisk /M: Move Disk Sector Info from Disk to DstDisk DstDisk: 0-First Hard Disk, 1-Second Hard Disk, ... A:, B:, C:, D: ... Offset: Disk Absolute Sector Number 3、增加参数 /Asc 编辑磁盘可以直接使用 ASCII 码,长度不超过16字符。 DISKRW : SectorNo: Disk Absolute Secotor Number Offset: Offset in Specified Sector (0..511) /E: Edit Disk Sector Info /Hex: Hex Style /Asc: ASCII Style Value: Hex_Digital/ASCII String (32/16 Characters Maximum) 4、扇区内部处理命令(只处理单个扇区) 如果Bytes输入0或者输入数据较大(超出扇区边界),则程序处理从Offset开始到扇区结束的字节数 例子: Diskrw 0 0 446 /b 64 mbr.dat 备份第一硬盘(磁盘0)第一扇区(0扇区)中偏移位置446开始 的64个字节到文件 mbr.dat。(这里备份的就是磁盘MBR中的分区表信息) DISKRW /B: Backup Disk Sector Info to File /V: Vertify Disk Sector Info with File /U: Update Disk Sector Info from File Bytes: Bytes to Process (0..512) diskrw for Win32 1、修正了显示磁盘扇区函数中存在的bug,当扇区数目为16的倍数时,显示最后一屏时存在的问题,重新写了扇区显示函数。 2、修正了其中一处当磁盘读写失败时,返回值为 SUCCESS 的错误。 http://www.cn-dos.net/forum/attachment.php?aid=4373&checkid=65c57&download=1 2008.11.13 diskrw for DOS 终结版本 389楼 http://www.cn-dos.net/forum/attachment.php?aid=4378&checkid=8ef93&download=1 2008.11.15 diskrw 两栖版本 http://www.cn-dos.net/forum/attachment.php?aid=4386&checkid=090a9&download=1 2008.11.29 dsptw更新 增加可以显示分区ID值的开关 /GetID (适用于 /L 和 /find 命令) 使用方法: dsptw 0 /l /getid dsptw 0 /find:all /getid http://www.cn-dos.net/forum/attachment.php?aid=4418&checkid=8664f&download=1 附件 DsptDpit0208.rar (34.37 KiB) dsptw20070808.rar (32.3 KiB) |
|
| 第2楼 chenall | 发表于 2006-11-02 02:08 |
| 银牌会员 发帖 469 积分 1,276 来自 福建泉州 | |
|
下载测试下,没想到两个整合在一起文件小了那么多啊.
|
|
| 第3楼 cchessbd | 发表于 2006-11-02 04:26 |
| 高级用户 发帖 222 积分 525 | |
Originally posted by 19951001 at 2006-11-2 01:17: 谢谢。我的启动盘因为这个已经更新不少次了,呵呵。 不过里面的bat倒不是很需要,就是有个dpit.com, cab压缩包一下也可以少10k了 [ Last edited by cchessbd on 2006-11-2 at 04:52 AM ] |
|
| 第4楼 cchessbd | 发表于 2006-11-02 05:02 |
| 高级用户 发帖 222 积分 525 | |
|
就是,我刚刚测试了下。恢复出错。
重新下了。测试没有问题。非常感谢! [ Last edited by cchessbd on 2006-11-2 at 05:09 AM ] |
|
| 第5楼 19951001 | 发表于 2006-11-02 23:33 |
| 高级用户 发帖 272 积分 570 来自 北京 | |
|
2006.11.2更新
1 使用diskrw 功能时当 disk 为A: 或 B:时,限制使用 :N 参数 2 对diskrw 的显示功能的 /p 和 /a 参数重写。 3 一些显示方面的修正。 关于 diskrw 新增加的参数 :N 请参阅压缩包中 readme.txt。 [ Last edited by 19951001 on 2006-11-3 at 02:30 AM ] |
|
| 第6楼 chenall | 发表于 2006-11-15 04:55 |
| 银牌会员 发帖 469 积分 1,276 来自 福建泉州 | |
|
下了新版,再支持一下.
|
|
| 第7楼 zjnbwdj | 发表于 2006-11-15 08:54 |
| 中级用户 发帖 137 积分 300 | |
|
没用过,做什么用的?
|
|
| 第8楼 19951001 | 发表于 2006-11-15 22:49 |
| 高级用户 发帖 272 积分 570 来自 北京 | |
Originally posted by zjnbwdj at 2006-11-15 08:54: http://www.cn-dos.net/forum/viewthread.php?tid=23724&fpage=1 http://www.cn-dos.net/forum/viewthread.php?tid=24133&fpage=1 |
|
| 第9楼 19951001 | 发表于 2006-11-16 22:38 |
| 高级用户 发帖 272 积分 570 来自 北京 | |
|
2006.11.16
程序中发现了一个BUG,网友weilong888提出的,现已修正。 请重新下载。 |
|
| 第10楼 weilong888 | 发表于 2006-11-19 11:05 |
| 银牌会员 发帖 548 积分 1,270 | |
|
下载试了一下。dpit 0 /c dsk0pt.bin这个命令已经能显示done了。可是dpit 0 /s dsk0dbr.bin /dbr却是显示disk read error。看了一下,多了一个1548B的dsk0dbr.bin文件。
|
|
| 第11楼 19951001 | 发表于 2006-11-20 04:56 |
| 高级用户 发帖 272 积分 570 来自 北京 | |
Originally posted by weilong888 at 2006-11-19 11:05: 我这里暂时没有查出问题,你试一下 Windows版本看是否会出现同样的问题,因为两个版本处理方式是一致的,我会尽快找出bug. 你能否把你的磁盘 mbr 传上来,使用命令 diskrw 0 0 1 /s mbr0.bin 将文件保存到mbr0.bin后将文件传上来。 [ Last edited by 19951001 on 2006-11-20 at 05:04 AM ] |
|
| 第12楼 weilong888 | 发表于 2006-11-20 13:50 |
| 银牌会员 发帖 548 积分 1,270 | |
|
现把我的diskrw 0 0 1 /s mbr0.bin中的mbr0.bin文件传上来。楼主看一下,这个bug会在哪里。
[ Last edited by weilong888 on 2006-11-21 at 08:56 AM ] |
|
| 第13楼 19951001 | 发表于 2006-11-20 22:26 |
| 高级用户 发帖 272 积分 570 来自 北京 | |
Originally posted by weilong888 at 2006-11-20 13:50: 你是一下这个版本,我更改了查找顺序。 [ Last edited by 19951001 on 2006-12-1 at 03:48 AM ] |
|
| 第14楼 gmy | 发表于 2006-11-21 00:01 |
| 版主 发帖 392 积分 1,113 | |
|
已收到,下一个版本更新.
|
|
| 第15楼 19951001 | 发表于 2006-11-21 03:39 |
| 高级用户 发帖 272 积分 570 来自 北京 | |
|
to weilong888:
我在一台机器上,参照你的mbr方式将磁盘分为3个主分区和一个扩展分区(内有6个分区),操作没有出现问题,11月17日我上传了两个版本,如果你下载的是上午上传的版本,可能有问题,请你重新下载在测试一下,我这里又提供一个版本是按网友chenall要求,能够显示主分区或逻辑分区的版本,也请测试一下。 [ Last edited by 19951001 on 2006-12-1 at 03:49 AM ] |
|
| 1 2 3 4 … 38 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |