中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [1] [2] [3] »
作者:
标题: 请高手把SRCMBR改造一下 上一主题 | 下一主题
crshen
中级用户




积分 447
发帖 126
注册 2004-2-10
状态 离线
『第 16 楼』:  

已经完成备份分区表功能,运行命令行patition.exe /backup filename
生成的文件大小应为:512*n字节,n=主分区个数+扩展分区个数+MBR分区1个,例如你的分区为C盘主分区,扩展分区1个(逻辑盘符D、E、F等),IBM_SERVICE隐藏主分区1个,那么n=4,生成的filename文件大小为2K,用二进制编辑器打开查看,应有4个对应的55AA,分别位于1FF、3FF、5FF、7FF处。
本版本只能在支持超过8.4G硬盘的电脑上使用(好像没必要支持老的486甚至386吧),仅供测试读扇区正确性与否,未加入各种出错时的提示及处理,并关闭了写扇区功能,防止损害硬盘重要数据。如果大家测试无误,将于近日发行正式版。有什么建议,请现在提出,以后不再更新。

[此贴子已经被作者于2005-2-18 11:27:55编辑过]






从来不用别人的东西,要用,也先改成自己的再说!
2005-2-14 00:00
查看资料  发送邮件  发短消息 网志  OICQ (67154440)  编辑帖子  回复  引用回复
walu
高级用户




积分 916
发帖 201
注册 2003-5-4
状态 离线
『第 17 楼』:  

请问CRSHEN,这个程序只支持最大137G的硬盘吗?是否可以支持超过200G的硬盘呢?

经刚才测试,这个程序可以将分区表备份成一个文件,但在恢复时却无效。
在下面操作前先用PATITION /BACKUP a.dat备份了分区表。
是这样测试的:硬盘分区主分区C盘及扩展分区(其中只有一个逻辑分区D盘),用PQMAGIC从C盘划出一块未用分区,再从D盘划出一块未用分区。
然后PATITION /RESTORE a.dat 但硬盘并没有恢复到原来未经PQMAGIC分区前的状态。

[此贴子已经被作者于2005-2-14 23:16:24编辑过]




2005-2-14 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
crshen
中级用户




积分 447
发帖 126
注册 2004-2-10
状态 离线
『第 18 楼』:  

不好意思,上面已经说清楚了,仅供测试读出扇区的正确性,而关闭了写扇区功能,所以不能用restore参数。这个程序利用LBA线性寻址方式,目前大多数的主板,它们使用的都是28位寻址方式,能读写逻辑块数理论极限是2的28次方即268435456块,容量为137G。为了兼容通用,程序只支持最大137G的硬盘。



从来不用别人的东西,要用,也先改成自己的再说!
2005-2-15 00:00
查看资料  发送邮件  发短消息 网志  OICQ (67154440)  编辑帖子  回复  引用回复
crshen
中级用户




积分 447
发帖 126
注册 2004-2-10
状态 离线
『第 19 楼』:  

放出分区表备份/恢复情人节测试版,可以备份扩展分区及隐藏分区!restore参数已开放。
存在问题:
1.未对备份的分区信息文件进行检测,如果指定文件出错,将引起灾难性后果(当然,如果有备份在软盘或优盘上,只要再重新恢复一次就O.K.啦)
2.本程序主要设计用于批处理,故出错提示较少,下面是返回的errorlevel值含义:
0:成功、1:创建备份文件出错,写保护?、2:指定文件不存在、3:读扇区出错、4:写扇区出错
下一步可能完善的方面:
1.对备份分区文件进行保护,采用某种校验方法(未定)
2.恢复时首先校验指定文件
3.可选择恢复某个分区

[此贴子已经被作者于2005-2-18 11:29:21编辑过]






从来不用别人的东西,要用,也先改成自己的再说!
2005-2-15 00:00
查看资料  发送邮件  发短消息 网志  OICQ (67154440)  编辑帖子  回复  引用回复
qqqmmkx
中级用户




积分 286
发帖 33
注册 2003-6-22
状态 离线
『第 20 楼』:  

可用 Spfdiskhttp://spfdisk.sourceforge.net/

2005-2-15 00:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
walu
高级用户




积分 916
发帖 201
注册 2003-5-4
状态 离线
『第 21 楼』:  

谢谢crshen的努力!测试版经下面的测试方法:硬盘分区主分区C盘及扩展分区(其中只有一个逻辑分区D盘),用PQMAGIC从C盘划出一块未用分区,再从D盘划出一块未用分区。测试结果:恢复备份文件后,C盘能回到原来的样子,但D盘不能回到原来的样子,即依然有一块未用分区。

2005-2-15 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
crshen
中级用户




积分 447
发帖 126
注册 2004-2-10
状态 离线
『第 22 楼』:  

在我自己的机子上测试是没问题的,昨天拿到单位的机子上时,也出现类似你说的情况,分析两台电脑分区不同点在于C盘即第一分区的大小有别,我的机子C盘>8.4G,故考虑当C盘太小时,导致后面的扩展分区表不能用扩展int 13写。而第一分区可以恢复,是因为专门加强了对MBR的保护。主要原因是我偷懒,判断分区类型只要不是00,就采用扩展int 13,测试又没问题,现在看来不行,等我修改一下。



从来不用别人的东西,要用,也先改成自己的再说!
2005-2-16 00:00
查看资料  发送邮件  发短消息 网志  OICQ (67154440)  编辑帖子  回复  引用回复
crshen
中级用户




积分 447
发帖 126
注册 2004-2-10
状态 离线
『第 23 楼』:  

分区表备份/恢复兼容版
改进:
凡是不能用扩展int 13读写的扇区,均改为int 13读写,兼容旧机子、小硬盘
对备份分区文件进行保护,恢复时首先校验指定文件
附带checksum.exe程序,用于在对备份的文件进行修改后,重新生成校验信息
返回的errorlevel值含义:0:成功、1:创建备份文件出错,写保护?、2:指定文件不存在、3:读扇区出错、4:写扇区出错、5.文件校验出错

[此贴子已经被作者于2005-2-18 11:30:36编辑过]






从来不用别人的东西,要用,也先改成自己的再说!
2005-2-16 00:00
查看资料  发送邮件  发短消息 网志  OICQ (67154440)  编辑帖子  回复  引用回复
walu
高级用户




积分 916
发帖 201
注册 2003-5-4
状态 离线
『第 24 楼』:  

crshen兄,当C盘小于8.4G时正常,但调整至12G时,依然出现:恢复备份文件后,C盘能回到原来的样子,但D盘不能回到原来的样子,即依然有一块未用分区。

2005-2-16 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 25 楼』:  

强烈建议楼主再次公布源程序。很长时间没有接触C语言了,在前面的源程序中知道了使用Int 13访问硬盘的方法,但还不知道在TC 2.0中如何使用扩展的Int 13,因此,很希望看到新的源程序,以便继续学习。估计楼主也不反对让自己的程序越来越完善的吧?干脆就做成开源的得了。



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2005-2-16 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
crshen
中级用户




积分 447
发帖 126
注册 2004-2-10
状态 离线
『第 26 楼』:  

已找到问题所在,可能有些主板BIOS不支持校验并写盘,故现改为不校验直接写扇区,在两台电脑不同分区大小的情况下均按照walu的方法测试成功,放出的版本仍有不完善的地方,但已不影响使用。
应climbing要求,正在整理源程序,并加注释,即将发布,请大家共同完善。

[此贴子已经被作者于2005-2-18 11:32:46编辑过]






从来不用别人的东西,要用,也先改成自己的再说!
2005-2-16 00:00
查看资料  发送邮件  发短消息 网志  OICQ (67154440)  编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 27 楼』:  

好东东啊好东东!期待源程序。



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2005-2-16 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
crshen
中级用户




积分 447
发帖 126
注册 2004-2-10
状态 离线
『第 28 楼』:  

硬盘分区表备份/恢复最终发行版
2005-02-16
by CRSHEN
使用方法:
patition.exe </backup|/restore|checksum> filename
/backup:备份分区表
/restore:恢复分区表
/checksum:如果对备份的分区表文件进行必要的修改,则用此参数重新计算校验值,对于文件末两位为55AA的禁止校验,因文件可能是其它程序备份的分区表。确信需要时,可用十六进制编辑器改为其它值再校验。
说明:
1. 生成的文件大小应为512*n+2)字节,n=主分区个数+扩展分区个数+MBR分区1个,两个字节为校验信息
2. 凡是不能用扩展int 13读写的扇区,均改为int 13读写,兼容旧机子、小硬盘
3. 对备份分区文件进行保护,恢复时首先校验指定文件
用于批处理:
返回的errorlevel值含义:
0:操作成功、1:创建备份文件出错,写保护?、2:指定文件不存在、3:读扇区0出错、4:写扇区0出错、5.文件校验出错
免责声明:
本程序仅供研究参考,如果不明白用途,建议不要随便尝试
对使用不当,造成数据丢失等后果者,概不负责。

[此贴子已经被作者于2005-2-18 11:34:22编辑过]






从来不用别人的东西,要用,也先改成自己的再说!
2005-2-16 00:00
查看资料  发送邮件  发短消息 网志  OICQ (67154440)  编辑帖子  回复  引用回复
crshen
中级用户




积分 447
发帖 126
注册 2004-2-10
状态 离线
『第 29 楼』:  

源程序已发布,需要者可自行下载修改

[此贴子已经被作者于2005-2-17 12:49:56编辑过]






从来不用别人的东西,要用,也先改成自己的再说!
2005-2-16 00:00
查看资料  发送邮件  发短消息 网志  OICQ (67154440)  编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 30 楼』:  

发现了crshen程序中的一个大漏洞(希望真的是漏洞,我水平太洼,暂时只是感觉如此),相关资料发在了51ct.net论坛了,希望crshen朋友再接再励,继续完善程序,相关帖子链接如下:http://www.51ct.net/bbs/read.php?tid=500&fpage=1再次感谢你付出的辛苦劳动,如果我再年轻5岁,估计这个程序我可以自己改善一下。



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2005-2-17 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
« [1] [2] [3] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: