中国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 更新)
« [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] ... [38] »
作者:
标题: 磁盘扇区读写、分区信息管理工具 Dsptw (2008.11.29 更新) 上一主题 | 下一主题
georgema
初级用户





积分 37
发帖 20
注册 2006-3-31
状态 离线
『第 376 楼』:  

谢谢楼主共享

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





积分 256
发帖 133
注册 2008-9-29
状态 离线
『第 377 楼』:  

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

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





积分 2
发帖 1
注册 2008-9-7
状态 离线
『第 378 楼』:  

下载了

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





积分 7
发帖 7
注册 2008-9-27
状态 离线
『第 379 楼』:  

厉害东西,佩服!!

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

操作系统爱好者


积分 1113
发帖 392
注册 2002-11-11
状态 离线
『第 380 楼』:  建议:关于HDD1作为BIOS首选项引导的问题

当有两块硬盘时,有的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 楼』:  

启动的硬盘会被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 楼』:  



  Quote:
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 楼』:  

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



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

流落街头



积分 570
发帖 272
注册 2005-10-17
来自 北京
状态 离线
『第 384 楼』:  



  Quote:
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 楼』:  

谢谢,我让人试试。



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





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『第 386 楼』:  

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



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

流落街头



积分 570
发帖 272
注册 2005-10-17
来自 北京
状态 离线
『第 387 楼』:  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] [Start] [Sectors] [/S|/R|/C] [FileName] [Offset]
      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 [Disk] [Start] [Sectors] [/D|/O|/M] [DstDisk] [Offset]
      /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 [Disk] [SectorNo] [Offset] [/E] [/Hex|/Asc]:[Value]
      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 [Disk] [SectorNo] [Offset] [/B|/V|/U] [Bytes] [FileName]
      /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 楼』:  

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 K,下载次数: 317)
2008-11-1 16:50
查看资料  发短消息 网志   编辑帖子  回复  引用回复
19951001
高级用户

流落街头



积分 570
发帖 272
注册 2005-10-17
来自 北京
状态 离线
『第 389 楼』:  diskrw for dos 终结版本

这一版本是 Diskrw for Dos的终结版, 如果没有Bug被发现,以后将不在更新。

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

1 扇区内部充填命令
DISKRW [Disk] [SectorNo] [Offset] [/I] [Bytes] [Value] [/Y]
   /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 [Disk] [SectNo] [Offset] [/T|/A|/P] [dstDisk] [SectNo] [Offset] [Bytes]
   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 K,下载次数: 647)
2008-11-13 14:20
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『第 390 楼』:  

已收下,谢谢。



Windows 一键还原
http://www.yjhy.com
2008-11-13 17:56
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] ... [38] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: