中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » 磁盘扇区读写、分区信息管理工具 Dsptw (2008.11.29 更新)
English/Chinese Fix Translation
作者:
标题: 磁盘扇区读写、分区信息管理工具 Dsptw (2008.11.29 更新) 上一主题 | 下一主题
georgema
初级用户





积分 37
发帖 20
注册 2006-3-31
状态 离线
『第 376 楼』:   使用 LLM 解释/回答一下

谢谢楼主共享


2008-9-25 12:18
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
willing
中级用户





积分 256
发帖 133
注册 2008-9-29
状态 离线
『第 377 楼』:   使用 LLM 解释/回答一下

很有用的工具,谢了楼主。


2008-10-2 19:24
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
leejong
新手上路





积分 2
发帖 1
注册 2008-9-7
状态 离线
『第 378 楼』:   使用 LLM 解释/回答一下

下载了


2008-10-3 18:14
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
x58397313
新手上路





积分 7
发帖 7
注册 2008-9-27
状态 离线
『第 379 楼』:   使用 LLM 解释/回答一下

厉害东西,佩服!!


2008-10-7 00:51
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
gmy
版主

操作系统爱好者


积分 1113
发帖 392
注册 2002-11-11
状态 离线
『第 380 楼』:  建议:关于HDD1作为BIOS首选项引导的问题 使用 LLM 解释/回答一下

当有两块硬盘时,有的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 站长 葛明阳
2008-10-10 11:20
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
netwinxp
高级用户





积分 741
发帖 366
注册 2007-7-25
状态 离线
『第 381 楼』:   使用 LLM 解释/回答一下

启动的硬盘会被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 ]


2008-10-10 16:15
查看资料  发短消息  网志   编辑帖子  回复  引用回复
19951001
高级用户

流落街头



积分 570
发帖 272
注册 2005-10-17
来自 北京
状态 离线
『第 382 楼』:   使用 LLM 解释/回答一下

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


2008-10-11 08:01
查看资料  发短消息  网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『第 383 楼』:   使用 LLM 解释/回答一下

部分杀软(如avast等)会报dsptw含木马,望解决。
不知是否是原因加了壳的缘故。




Windows 一键还原
http://www.yjhy.com
2008-10-16 15:17
查看资料  发短消息  网志   编辑帖子  回复  引用回复
19951001
高级用户

流落街头



积分 570
发帖 272
注册 2005-10-17
来自 北京
状态 离线
『第 384 楼』:   使用 LLM 解释/回答一下

Originally posted by lianjiang2004 at 2008-10-16 15:17:
部分杀软(如avast等)会报dsptw含木马,望解决。
不知是否是原因加了壳的缘故。


你试一下这个版本,我重新编译了一下
http://upload.cn-dos.net/img/954.rar


2008-10-17 20:32
查看资料  发短消息  网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『第 385 楼』:   使用 LLM 解释/回答一下

谢谢,我让人试试。




Windows 一键还原
http://www.yjhy.com
2008-10-18 07:52
查看资料  发短消息  网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『第 386 楼』:   使用 LLM 解释/回答一下

有人反馈,原报毒的杀软avast,对新版已不报毒,谢谢。




Windows 一键还原
http://www.yjhy.com
2008-10-18 11:22
查看资料  发短消息  网志   编辑帖子  回复  引用回复
19951001
高级用户

流落街头



积分 570
发帖 272
注册 2005-10-17
来自 北京
状态 离线
『第 387 楼』:  Diskrw for Dos最新测试版本 使用 LLM 解释/回答一下

与原来版本改变

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 ]


2008-10-25 12:36
查看资料  发短消息  网志   编辑帖子  回复  引用回复
19951001
高级用户

流落街头



积分 570
发帖 272
注册 2005-10-17
来自 北京
状态 离线
『第 388 楼』:   使用 LLM 解释/回答一下

2008.11.11 diskrw程序更新

Last edited by 19951001 on 2008-11-11 at 23:31 ]


附件 1: diskrw.rar (2008-11-11 23:31, 25.37 KiB,下载次数: 317)
2008-11-1 16:50
查看资料  发短消息  网志   编辑帖子  回复  引用回复
19951001
高级用户

流落街头



积分 570
发帖 272
注册 2005-10-17
来自 北京
状态 离线
『第 389 楼』:  diskrw for dos 终结版本 使用 LLM 解释/回答一下

这一版本是 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,
也就是在任何情况下都不会超出扇区处理。


附件 1: DISKRW.rar (2008-11-13 14:20, 18.42 KiB,下载次数: 647)
2008-11-13 14:20
查看资料  发短消息  网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『第 390 楼』:   使用 LLM 解释/回答一下

已收下,谢谢。




Windows 一键还原
http://www.yjhy.com
2008-11-13 17:56
查看资料  发短消息  网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: