中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-16 21:00
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » 磁盘扇区读写、分区信息管理工具 Dsptw (2008.11.29 更新) 查看 111,410 回复 565
376 发表于 2008-09-25 12:18 ·  中国 新疆 乌鲁木齐 电信
初级用户
积分 37
发帖 20
注册 2006-03-31 15:10
UID 53103
状态 离线
谢谢楼主共享
377 发表于 2008-10-02 19:24 ·  中国 北京 海淀区 联通
中级用户
★★
积分 256
发帖 133
注册 2008-09-29 13:30
UID 126984
性别 男
状态 离线
很有用的工具,谢了楼主。
378 发表于 2008-10-03 18:14 ·  中国 河南 郑州 联通
新手上路
积分 2
发帖 1
注册 2008-09-07 10:34
UID 125021
性别 男
状态 离线
下载了
379 发表于 2008-10-07 00:51 ·  中国 重庆 渝中区 电信
新手上路
积分 7
发帖 7
注册 2008-09-27 11:14
UID 126770
性别 男
状态 离线
厉害东西,佩服!!
380 建议:关于HDD1作为BIOS首选项引导的问题 发表于 2008-10-10 11:20 ·  中国 河北 唐山 联通
版主
★★★
操作系统爱好者
积分 1,113
发帖 392
注册 2002-11-11 00:00
UID 228
性别 男
状态 离线
当有两块硬盘时,有的BIOS设置为 HDD0 作为第一启动驱动器,有的设置为HDD1 作为 First BOOT 的,前者没有问题,后者就会出问题:

Windows 与 GHOST 显示硬盘号不一致,举个例子:假如硬盘0 和 硬盘1 都有两个分区:

Windows下显示(带 GhostStyle 参数):

1:1 E:
1:2 F:

2:2 C:
2:2 D:

DOS下的GHOST里显示为:

1:1 C:
1:2 D:

2:1 E:
2:2 F:

也就是说,DOS认为,谁引导谁就是老大,不考虑IDE接口顺序。

所以,请楼主增加一层判断,C盘所在的硬盘号如果不是首硬盘则强制显示其为首硬盘。


编辑思路:

这里仅可以考虑最多4块硬盘(因为很少有5块以上的):

当C盘在第1块硬盘时,正常显示。
当C盘在第2块硬盘时,原第1块显示为第2块,原第2块显示为第1块。
当C盘在第3块硬盘时,原第1块显示为第2块,原第2块显示为第3块,原第3块显示为第1块。
当C盘在第4块硬盘时,原第1块显示为第2块,原第2块显示为第3块,原第3块显示为第4块,原第4块显示为第1块。

这样的好处是,1:1 这样的参数 可以在DOS下被直接引用,而不必把2:1转成1:1了。

[ Last edited by gmy on 2008-10-10 at 11:40 ]
DOS之家 http://doshome.com 站长 葛明阳
381 发表于 2008-10-10 16:15 ·  中国 福建 厦门 电信
高级用户
★★★
积分 741
发帖 366
注册 2007-07-25 19:11
UID 94024
性别 男
状态 离线
启动的硬盘会被BIOS赋予硬盘号80H,所以DOS把它挂接到盘符C:,而WINDOWS则直接按扫描到的顺序分配盘符。从BIOS的角度来看,DOS才是正确的,启动的硬盘安排的硬盘号确实是第一的(尽管它可能是Second Channel Slave)。
另,DELL的隐藏分区好像就DE比较规范,DB就别用了,会和CT DOS冲突。其他隐藏分区有A0:IBM Thinkpad隐藏分区,84:OS/2隐藏C:,93:linux隐藏,1E:VFAT(LBA)隐藏分区,11:FAT12隐藏分区。

[ Last edited by netwinxp on 2008-10-10 at 16:36 ]
382 发表于 2008-10-11 08:01 ·  中国 北京 电信
高级用户
★★
流落街头
积分 570
发帖 272
注册 2005-10-17 10:51
UID 43609
性别 男
来自 北京
状态 离线
Originally posted by gmy at 2008-10-10 11:20:
当有两块硬盘时,有的BIOS设置为 HDD0 作为第一启动驱动器,有的设置为HDD1 作为 First BOOT 的,前者没有问题,后者就会出问题:

Windows 与 GHOST 显示硬盘号不一致,举个例子:假如硬盘0 和 硬盘1 都有两个分区:

Windows下显示(带 GhostStyle 参数):

1:1 E:
1:2 F:

2:2 C:
2:2 D:

DOS下的GHOST里显示为:

1:1 C:
1:2 D:

2:1 E:
2:2 F:

也就是说,DOS认为,谁引导谁就是老大,不考虑IDE接口顺序。


这是由于Windows操作系统自身造成,并不是我的程序所造成,我提供一个补丁程序使之能够满足你的要求。


本程序专门用来处理如下命令产生的结果:
dsptw /a /pdr
dsptw /a /pdr /reverse
经处理后结果与Dos下ghost相一致。

用法:
todosghs result.txt

result.txt 来源:
dsptw /a /pdr >result.txt
或者
dsptw /a /pdr /reverse >result.txt

下载地址:
http://upload.cn-dos.net/img/918.rar
383 发表于 2008-10-16 15:17 ·  中国 安徽 马鞍山 联通
金牌会员
★★★★
积分 3,946
发帖 1,884
注册 2006-01-20 13:00
UID 49283
性别 男
状态 离线
部分杀软(如avast等)会报dsptw含木马,望解决。
不知是否是原因加了壳的缘故。
Windows 一键还原
http://www.yjhy.com
384 发表于 2008-10-17 20:32 ·  中国 北京 电信
高级用户
★★
流落街头
积分 570
发帖 272
注册 2005-10-17 10:51
UID 43609
性别 男
来自 北京
状态 离线
Originally posted by lianjiang2004 at 2008-10-16 15:17:
部分杀软(如avast等)会报dsptw含木马,望解决。
不知是否是原因加了壳的缘故。


你试一下这个版本,我重新编译了一下
http://upload.cn-dos.net/img/954.rar
385 发表于 2008-10-18 07:52 ·  中国 安徽 马鞍山 联通
金牌会员
★★★★
积分 3,946
发帖 1,884
注册 2006-01-20 13:00
UID 49283
性别 男
状态 离线
谢谢,我让人试试。
Windows 一键还原
http://www.yjhy.com
386 发表于 2008-10-18 11:22 ·  中国 安徽 马鞍山 联通
金牌会员
★★★★
积分 3,946
发帖 1,884
注册 2006-01-20 13:00
UID 49283
性别 男
状态 离线
有人反馈,原报毒的杀软avast,对新版已不报毒,谢谢。
Windows 一键还原
http://www.yjhy.com
387 Diskrw for Dos最新测试版本 发表于 2008-10-25 12:36 ·  中国 北京 电信
高级用户
★★
流落街头
积分 570
发帖 272
注册 2005-10-17 10:51
UID 43609
性别 男
来自 北京
状态 离线
与原来版本改变

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)

[ Last edited by 19951001 on 2008-10-29 at 21:02 ]
388 发表于 2008-11-01 16:50 ·  中国 北京 电信
高级用户
★★
流落街头
积分 570
发帖 272
注册 2005-10-17 10:51
UID 43609
性别 男
来自 北京
状态 离线
2008.11.11 diskrw程序更新

[ Last edited by 19951001 on 2008-11-11 at 23:31 ]
附件
diskrw.rar (25.37 KiB, 下载次数: 317)
389 diskrw for dos 终结版本 发表于 2008-11-13 14:20 ·  中国 北京 鹏博士BGP
高级用户
★★
流落街头
积分 570
发帖 272
注册 2005-10-17 10:51
UID 43609
性别 男
来自 北京
状态 离线
这一版本是 Diskrw for Dos的终结版, 如果没有Bug被发现,以后将不在更新。

和上一版本的变化如下
增加命令:

1 扇区内部充填命令
DISKRW
/I: Fill Disk Sector Data with Value

例子:
diskrw 0 10 2 /i 10 5
将磁盘0的第10号扇区的偏移位置2开始的10个字节使用5充填。
如果Value值不输入,默认为0.

如果Bytes输入0, 则Bytes=512-Offset;

2 扇区内部数据复制、移动、比较命令
DISKRW
SectNo: Disk Absolute Sector Number
/T: duplicaTe Disk Sector Data from Disk to dstDisk
/A: Move Disk Sector Data from Disk to dstDisk
/P: comPare Disk Sector Data with dstDisk

例子:
diskrw 0 0 446 /T 0 1 446 64
将磁盘0的第0号扇区的偏移位置446 开始的64个字节复制到
磁盘0的第1号扇区的偏移位置446

如果Bytes输入为0, 则 Bytes取源盘和目的盘中Offset到扇区结束的字节数的小值;

如果Bytes的输入值满足 Bytes+Offset >512 即超出一个扇区后,则Bytes=512-Offset,
也就是在任何情况下都不会超出扇区处理。
附件
DISKRW.rar (18.42 KiB, 下载次数: 647)
390 发表于 2008-11-13 17:56 ·  中国 安徽 马鞍山 联通
金牌会员
★★★★
积分 3,946
发帖 1,884
注册 2006-01-20 13:00
UID 49283
性别 男
状态 离线
已收下,谢谢。
Windows 一键还原
http://www.yjhy.com
论坛跳转: