无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 7010|回复: 61
打印 上一主题 下一主题

制作任意分区一键恢复!

[复制链接]
跳转到指定楼层
1#
发表于 2004-5-29 14:19:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
2#
 楼主| 发表于 2004-5-29 14:22:54 | 只看该作者

制作任意分区一键恢复!

[UploadFile=34_2589_1.rar] 经过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仅为测试参数使用。
回复

使用道具 举报

3#
发表于 2004-5-29 14:23:38 | 只看该作者

制作任意分区一键恢复!

好东西,不知道是否得玩。弄个来瞧瞧。
rg_zero@sina.com
回复

使用道具 举报

4#
 楼主| 发表于 2004-5-29 14:24:04 | 只看该作者

制作任意分区一键恢复!

[UploadFile=34_2589_3.jpg]没有ghost时,提示出错
回复

使用道具 举报

5#
 楼主| 发表于 2004-5-29 14:24:56 | 只看该作者

制作任意分区一键恢复!

[UploadFile=34_2589_4.jpg]gdisk.exe 1>drivent.txt生成的硬盘分区信息内容。
回复

使用道具 举报

6#
 楼主| 发表于 2004-5-29 14:32:10 | 只看该作者

制作任意分区一键恢复!

[UploadFile=34_2589_5.jpg]
执行onekey.exe r 进行恢复操作。
回复

使用道具 举报

7#
发表于 2004-5-29 15:25:52 | 只看该作者

制作任意分区一键恢复!

顶啊!~支持!~
回复

使用道具 举报

8#
发表于 2004-5-29 16:18:58 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

9#
发表于 2004-5-29 16:27:08 | 只看该作者

制作任意分区一键恢复!

强烈建议来一个gui
回复

使用道具 举报

10#
 楼主| 发表于 2004-5-29 16:37:18 | 只看该作者

制作任意分区一键恢复!

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%
回复

使用道具 举报

11#
 楼主| 发表于 2004-5-29 16:37:55 | 只看该作者

制作任意分区一键恢复!


实现思路:
1. 分区信息表中,第二行第二个数字即为总分区数,但其中包含了extended分区,应去除;
2.从第五行起,凡DOS下可见的fat/fat32分区,均有盘符显示,倒数第二列显示分区类型;
3. 盘符与其后的分区数并不一致;
4.运行ghost,显示的分区与gdisk一致(同一公司产品嘛);
回复

使用道具 举报

12#
 楼主| 发表于 2004-5-29 16:38:26 | 只看该作者

制作任意分区一键恢复!


/*从file文件的第row行开始查找string字符串,返回数组中1为找到*/
void GetPart32(char *file, int row, char *string, int *partition)
{
  int i;
  FILE *fpin;
  char buffer[150];
  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[i - row] = 1;
  }
  fclose(fpin);
}
该函数可用来查找extended分区个数等!
回复

使用道具 举报

13#
 楼主| 发表于 2004-5-29 16:39:04 | 只看该作者

制作任意分区一键恢复!


result = spawnl(P_OVERLAY, "ghost.exe", "NULL", parameter1, "-fx", "-sure",
    NULL);
采用覆盖方式调用ghost.exe,比在shell中运行速度明显加快。
回复

使用道具 举报

14#
 楼主| 发表于 2004-5-29 16:48:27 | 只看该作者

制作任意分区一键恢复!

[UploadFile=34_2589_13.rar]
    由于采用最后的fat/fat32盘作为备份文件存放盘,为了防止误删除等操作,使用时请在windows下将该盘符隐藏。附件中的程序可实现此隐藏盘符功能。
回复

使用道具 举报

15#
 楼主| 发表于 2004-5-29 16:54:06 | 只看该作者

制作任意分区一键恢复!

下面引用由金雕2004/05/29 04:27pm 发表的内容:
强烈建议来一个gui
如果大家测试没有问题,再考虑做界面!
回复

使用道具 举报

16#
发表于 2004-5-29 17:05:34 | 只看该作者

制作任意分区一键恢复!

回复

使用道具 举报

17#
发表于 2004-5-29 18:58:13 | 只看该作者

制作任意分区一键恢复!

这个东西真不错
将来会有的一玩
回复

使用道具 举报

18#
 楼主| 发表于 2004-5-29 19:15:21 | 只看该作者

制作任意分区一键恢复!

[UploadFile=34_2589_17.rar]
已制成的ghost启动盘,供下载试用(2.88M软盘):
ghostnt.rar
回复

使用道具 举报

19#
 楼主| 发表于 2004-5-29 19:16:36 | 只看该作者

制作任意分区一键恢复!

[UploadFile=34_2589_18.rar]
ghostnt.r00
回复

使用道具 举报

20#
 楼主| 发表于 2004-5-29 19:17:27 | 只看该作者

制作任意分区一键恢复!

[UploadFile=34_2589_19.rar]
ghostnt.r01
回复

使用道具 举报

21#
 楼主| 发表于 2004-5-29 19:18:24 | 只看该作者

制作任意分区一键恢复!

[UploadFile=34_2589_20.rar]
ghostnt.r02
回复

使用道具 举报

22#
 楼主| 发表于 2004-5-29 19:18:55 | 只看该作者

制作任意分区一键恢复!

[UploadFile=34_2589_21.rar]
ghostnt.r03
回复

使用道具 举报

23#
 楼主| 发表于 2004-5-29 19:24:08 | 只看该作者

制作任意分区一键恢复!


为了实现全中文提示,程序作了小更改,即不再支持命令行参数,运行后有操作选择。
由于要按两次键,故改名为两键恢复:)
去除了上一个版本的BUG,程序运行后可按ESC键退出。
回复

使用道具 举报

24#
发表于 2004-5-30 19:31:49 | 只看该作者

制作任意分区一键恢复!

辛苦了!~~
回复

使用道具 举报

25#
发表于 2004-6-1 00:14:44 | 只看该作者

制作任意分区一键恢复!

好顶
回复

使用道具 举报

26#
发表于 2004-6-1 08:29:44 | 只看该作者

制作任意分区一键恢复!

顶上去!!!
回复

使用道具 举报

27#
发表于 2004-6-1 17:05:55 | 只看该作者

制作任意分区一键恢复!

顶上去!!!
回复

使用道具 举报

28#
发表于 2004-6-1 19:56:27 | 只看该作者

制作任意分区一键恢复!

支持一下!谢谢楼主了
回复

使用道具 举报

29#
发表于 2004-6-3 08:01:50 | 只看该作者

制作任意分区一键恢复!

[UploadFile=34_2589_28.gif]顶上。
回复

使用道具 举报

30#
发表于 2004-6-3 16:39:36 | 只看该作者

制作任意分区一键恢复!

危险不敢试..
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-27 20:31

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表