![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-10-24 23:15 |
共 47,815 主题排行 / 349,928 发帖 / 今日 0 篇 / 48,288 会员排行 |
| DOS开发编程 & 发展交流 (开发室) » [原创]任意分区一键恢复的实现 |
| 可打印版本 3,689 / 15 |
| 第1楼 crshen | 发表于 2004-05-29 00:00 |
| 中级用户 发帖 126 积分 447 | |
|
[原创]任意分区一键恢复的实现 经过N次探索,终于编译成功可备份任意分区的一键恢复工具,介绍如下:
1. 备份/恢复通过ghost完成; 2. 获取分区信息时,基于GDISK.EXE,能识别NTFS格式,因其与ghost.exe为同一公司产品,兼容性无需置疑; 3. 备份/恢复的映像文件存放在硬盘的最后一个FAT/FAT32分区中,因此要求硬盘至少有两个以上分区,其中包括至少一个FAT32分区,并且不能备份/恢复该分区; 4. 备份/恢复通过程序的运行参数r控制,不带参数为备份,带参数r为恢复; 5. 按下C即对第一分区操作,E为第三分区,以此类推,选择分区时盘符与在windowsXP所示相同(如有ntfs分区,与DOS下所见不同),相应映像文件为disk1p1.gho,disk1p3.gho(表示第一硬盘第n分区); 6. C语言编写,覆盖方式运行,速度与直接运行ghost相同,希望大家测试,部分源程序见后; 7. 如有人感兴趣,将编译成图形界面,或对C语言了解者,可自行更改。 注意: 1.dos下运行时需天汇中文系统tw.exe支持; 2.ghost.exe应在同一目录下; 3.需先执行gdisk 1>drivent.txt,生成硬盘分区信息文件; 4.加载smartdrv.exe将大加快备份速度; 5.包中所附ghost.exe仅为测试参数使用 |
|
| 第2楼 crshen | 发表于 2004-05-29 00:00 |
| 中级用户 发帖 126 积分 447 | |
|
gdisk 1 生成的硬盘分区信息表:
Disk Partitions Cylinders Heads Sectors Mbytes Model 1 4 2434 255 63 19092.9 Unavailable Partition Status Type Volume Label Mbytes System Usage C: 1 A PRIMARY WINDOWS98 6000.8 FAT32 31% 2 EXTENDED 5090.9 27% D: 3 LOGICAL SHARE 5090.9 FAT32 27% 4 PRIMARY 7993.3 NTFS/HPFS 42% |
|
| 第3楼 crshen | 发表于 2004-05-29 00:00 |
| 中级用户 发帖 126 积分 447 | |
|
实现思路:
1. 分区信息表中,第二行第二个数字即为总分区数,但其中包含了extended分区,应去除; 2.从第五行起,凡DOS下可见的fat/fat32分区,均有盘符显示,倒数第二列显示分区类型; 3. 盘符与其后的分区数并不一致; 4.运行ghost,显示的分区与gdisk一致(同一公司产品嘛); |
|
| 第4楼 crshen | 发表于 2004-05-29 00:00 |
| 中级用户 发帖 126 积分 447 | |
|
/*从file文件的第row行开始查找string字符串,返回数组中1为找到*/
void GetPart32(char *file, int row, char *string, int *partition) { int i; FILE *fpin; char buffer; if ((fpin = fopen(file, "r" ) == NULL)exit( - 1); for (i = 1; i < row; i++) fgets(buffer, 150, fpin); for (i = row; !feof(fpin); i++) { fgets(buffer, 150, fpin); if (strstr(buffer, string) != NULL) partition = 1; } fclose(fpin); } 该函数可用来查找extended分区个数等! |
|
| 第5楼 crshen | 发表于 2004-05-29 00:00 |
| 中级用户 发帖 126 积分 447 | |
|
/*在file文件中读row行,col列的字符串*/
char *GetPartNT(char *file, int row, int col) { char string, str, c; int i, j, num = 0, word = 0; FILE *fp; if ((fp = fopen(file, "r" ) == NULL)exit( - 1); for (i = 0; i < row; i++) fgets(string, 150, fp); /* c为空格,没出现单词*/ for (i = 0; (c = string) != '\0'; i++) if (c == ' ' ![]() word = 0; /* c不为空格,但上次c为空格,出现单词 */ else if (word == 0) { word = 1; num++; /*单词数累加*/ if (num == col) for (j = i; string != ' '; j++) str = string; str = '\0'; } fclose(fp); return str; } 该函数可用来确定分区个数! |
|
| 第6楼 crshen | 发表于 2004-05-29 00:00 |
| 中级用户 发帖 126 积分 447 | |
|
result = spawnl(P_OVERLAY, "ghost.exe", "NULL", parameter1, "-fx", "-sure",
NULL); 采用覆盖方式调用ghost.exe,比在shell中运行速度明显加快。 |
|
| 第7楼 crshen | 发表于 2004-05-29 00:00 |
| 中级用户 发帖 126 积分 447 | |
|
怎么不能上传文件啦,大家只好自己完善该程序了,有困难而又需要者,可留下E_mail,我可以发给你。 |
|
| 第8楼 zgywqm | 发表于 2004-06-29 00:00 |
| 初级用户 发帖 18 积分 155 | |
|
好东西,我要,谢谢!
E-mail:[email protected] |
|
| 第9楼 hhwwll | 发表于 2004-06-30 00:00 |
| 中级用户 发帖 30 积分 293 | |
|
我要,谢谢!
Email:[email protected] |
|
| 第10楼 profree | 发表于 2004-06-30 00:00 |
| 中级用户 发帖 132 积分 478 | |
|
这两天正在研究一键恢复,急需, email: [email protected] 谢谢
|
|
| 第11楼 hugo_he_huan | 发表于 2004-07-05 00:00 |
| 中级用户 发帖 62 积分 282 来自 四川 | |
|
我也要,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢......
Email: [email protected] |
|
| 第12楼 gmy | 发表于 2004-07-07 00:00 |
| 版主 发帖 392 积分 1,113 | |
|
过些日子,我发布“GHOST8.0启动盘“,是批处理做的,一键恢复和高级选项在同一界面,直接按“确定”就是一键;自选参数后按“确定”也行。
|
|
| 第13楼 jastyg | 发表于 2005-11-01 11:27 |
| 中级用户 发帖 82 积分 219 | |
|
[email protected]
也给我一份,谢谢 |
|
| 第14楼 jpzsj | 发表于 2005-11-05 12:09 |
| 初级用户 发帖 26 积分 43 | |
|
每个人发一个发得起吗? 上传附件吧, 我也想要一份
|
|
| 第15楼 crshen | 发表于 2005-11-06 22:57 |
| 中级用户 发帖 126 积分 447 | |
|
这是以前做的,意义不大,后来我自己都丢了,建议使用三茗一键还原1.5.7
http://www.chinadforce.com/viewthread.php?tid=351390&fpage=1三茗一键还原 1.5.7 破解版下载页面 三茗《一键恢复》不依赖于操作系统,在本地硬盘上实现系统数据以及CMOS参数的动态保护与恢复。您的电脑安装本产品后,若染病毒了、上不成网了、玩不成游戏了、死机了、被黑客破坏了、系统崩溃了、越来越慢了……怎么办?仅需按下F9键,一两秒钟电脑恢复正常。 功能特点: 独立于操作系统:本产品是位于操作系统之下的BIOS层面,完全独立于计算机的操作系统和文件系统。即便是操作系统完全崩溃,本产品仍可以独立实现计算机系统和CMOS参数的保护和恢复。 瞬间保存与恢复:本软件产品采用三茗公司独创的系统保存与恢复的专利技术,它的保存与恢复操作均可在数秒完成,真正做到瞬间恢复。 不占用硬盘实用空间:通过空闲磁盘空间构成的动态缓冲区,配合高效的专利硬盘映射算法,在既不占用数据实用磁盘空间,不影响系统性能的前提下,实现系统的动态保护与瞬间恢复功能。 支持多种操作系统:Windows 9x/ME/NT/2000(Professional)/XP。 全新病毒防范理念:对各种已知及未知病毒的系统侵袭具备全面“自愈”功能。 用户密码保护:允许用户管理员设置密码保护,系统安全性更强。 纯软件设计:与硬件产品比较,不仅产品的适用范围可以进一步扩大到笔记本电脑,而且避免了硬件冲突的可能,使产品的安装更加方便和灵活。 智能化安装机制:独创的算法控制结构使得本软件的安装、使用和卸载均不会对原有系统及数据构成影响,实现全透明保护。 |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |