无忧启动论坛

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

免费备份工具: TOdisk--硬盘全真备份恢复器 【转】

[复制链接]
跳转到指定楼层
1#
发表于 2008-9-2 11:45:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
dos联盟的GOTOmsdos的大作,近日,联盟无法访问,转贴一下。

有兴趣的可开发基于todisk的一键恢复,就可解决盗版问题。

---------------------------------------------------
有时用GHOST备份失败,可能文件出了什么问题。。。
就自己写了个程序 TOdisk 成功地备份了。。
用扇区方式备份硬盘或分区或任意扇区。。。
支持压缩和分卷,扩展分区,多任务。。。等等。。
多谢 中国DOS联盟的johnsonlam兄(香港),fastslz兄  等等热心网友, ddcopy作者李治先生和 老外Lucho的帮助和支持!
欢迎访问 http://www.cn-dos.nethttp://johnson.tmfc.net/dos/index.html 进行DOS交流
说明如下:
硬盘全真备份恢复器 ==TOdisk ==(扇区模式)
版本:1.3 alpha
运行环境: MS-DOS / Win9xMS-DOS窗口  (如加载UDMA驱动,可能运行反常)
TOdisk version 1.3 Alpha Copyright (C) 2006-2007 by GOTOmsdos, 2006-1-13
Email: tdaim@sina.com
语法:
      <执行模式>
TOdisk 源串1[,源串n...] TO 目标串1[,目标串n...] [-[[d|p][q][m][n][i|[[ir][iw]]]]]
      <查看模式>
TOdisk [-D[n]|-P[[noz|noh|nozh|fn|f|l]|[n:n|A:]]]
                                   <执行模式>
   源/目标  串: (硬盘串, 分区串, DOS盘符串, 镜象文件串)
1, 硬盘     串  >> 1 or 2...n
2, 分区     串  >> 1:2 or 2:3...n:n
3, DOS盘符  串  >> C: or D:... Z:
4, 镜象文件 串  >>
   镜象文件参数:
     Cn - C : (compress)压缩
          n : 压缩级别(1-9,6 可能是强度和速度的最佳平衡点,如没有级别,则取默认的6)
      K - K : key 压缩密码,需要提示输入密码
     Vn - V : (volume) 分卷
          n : 每卷大小的MBs(从1到2047) 如果没有指定,默认是2047
     E? - E : (every)每卷的压缩密码跟第一卷的一样
          ? : 每卷都要提示输入压缩密码

  --A
  是目标时:
  (c:\image.to) <不压缩,不分卷>
  (c:\image.to=Vn) <不压缩,分卷>
  (c:\image.toz=Cn)  <压缩,不要密码,不分卷>
  (c:\image.toz=Cn=K)  <压缩,要提示输入密码,不分卷>
  (c:\image.toz=Cn=K=Vn)  <压缩,要提示输入密码,分卷,只有第一卷(即第一个镜象文件)有密码>
  (c:\image.toz=Cn=K=Vn=E)  <压缩,要提示输入密码,分卷,每卷的密码跟第一卷的一样>
  (c:\image.toz=Cn=K=Vn=E?)  <压缩,要提示输入密码,分卷,每卷都要提示输入密码>
  例子:
  (g:\image.toz=c7=k=v1000=e?)
(注意:在多任务中,当镜象文件串是目标时,只能位于最后一个(所以,也只能有一个)
例子:
        合法:
              1:1 TO 2:3,3:4,(g:\image.toz=c=v)
              1:1,2:2,3:3 TO 2:3,3:4,(g:\image.toz=c=v)
              1:1,2:2,3:3 TO 2:3,(g:\image.toz=c=v),3:4 -p        
              1:1,3:4,4:4 TO 2:3,(f:\image1.toz=c=v),(g:\image2.toz=c=v) -p
        不合法 1:
              1:1 TO 2:3,(g:\image.toz=c=v),3:4
              1:1,2:2,3:3 TO 2:3,(g:\image.toz=c=v),3:4               
              (自由模式,并且不是在最后一个)
        不合法 2:
              1:1,3:4,4:4 TO 2:3,(f:\image1.toz=c=v),(g:\image2.toz=c=v)
              (自由模式,, 但是超过了一个镜象文件串)
)
  --B
  是源时(会自动判断是否是压缩,所以,即使以to为后缀的压缩文件也能被识别为压缩文件):
  (c:\image.toz) <不自动搜索分卷>
  (c:\image.toz=V) <自动搜索分卷>
<镜象文件名,如不压缩建议后缀为to, 如压缩建议后缀为toz, 以免跟其他文件名混淆,不过程序并不强制这样)
在源/目标串中
- : 指定要操作的起始扇区
+ : 指定要操作的扇区数
但在镜象文件串中不被允许
例子:
    1-5000
    1:2+5000
    D:-5000+10000
    (g:\image.toz)+3000
源/目标串开关:
       =q : quiet 安静(无询问)
       =m : mute 沉默(无信息显示)
       =i : ignore 忽略(忽略读写错误,但对镜象文件串无效)
       =n : next 下一个(如果遇到致命错误,就继续下一个任务)
例子:
   1:2=q=m,3:4 TO 4:1=i=n,(file=c)=q=m
如果源/目标串中有 - + 操作符,那么
用在源/目标串中的以上的参数( i, q,m, n) 必须放在 - 或 + 的后面:(当然,在 匹配模式 -d,
-p 中,本来就不能有- + 操作符,自然就不存在这个问题 )
例子:
   1:2-300+400=q=m,3:4 TO 4:1=i=n,(file=c)+500=q=m

全局开关 1 (模式开关):
  --A
  (匹配模式)   
  -d|p  硬盘|分区 子模式
  在匹配模式中,源串和目标串的个数必须相等。此外,在分区模式中,如果目标串是分区,要更新分区ID)
  
  -d 硬盘模式例子:
          1,2 TO 3,4 -d
  等价于两次分开的操作:
          1 TO 3
          2 TO 4
  但不等价于
          1,2 TO 3,4
  除非1,3大小相同, 2,4大小相同
  -p 分区模式例子:
          1:2,4:3,2:2 TO 2:3,(d:\back.toz=c),4:5 -p
  等价于三次分开的操作:
          1:2 TO 2:3 -p
          4:3 TO (d:\back.toz=c)  
          2:2 TO 4:5 -p
(其中,由于第一和第三任务既是分区模式又是写分区<目标是分区不是镜象文件>,所以,即使在分开的操作中也要加上 -p, 表示要更新分区ID. )

  --B
  (自由模式)
  无 -d|p 开关
  在自由模式中,不要求源串和目标串的个数相等,前后任务之间的数据传输有相互接续的关系)
比如:
硬盘1 总扇区 1000
硬盘2 总扇区 2000
硬盘3 总扇区 1500
硬盘4 总扇区 3000
  
1,2 TO 3,4
这是自由模式,过程如下:
任务 1:
    硬盘1 传递给 硬盘3 1000个扇区 (硬盘1 完成任务,退出)
任务 2:
    硬盘2 传递给 硬盘3 1500-1000=500个扇区 (硬盘3 完成任务,退出)
任务 3:
    硬盘2 传递给 硬盘4 2000-500=1500 个扇区 (硬盘2 完成任务,退出)
程序便退出(因为 源和目标已经有一方完成了)
程序这样处理是考虑到 灵活性: 可能 使用者 可能并不确切的知道各个分区,硬盘的精确大小等等东西,但是又想完成前面的已经满足
条件的数据...
在自由模式中,不要求源串和目标串的个数相等,因为前后任务之间的数据传输有相互接续的关系
例如:
1 TO 2:3,3:4,4:5,(g:\file.to)
全局开关 2 :
    (下列位于命令行参数的后端,对全部任务有效):
           -q|quiet            : 安静(无询问)
           -m|mute             : 沉默(无信息显示)
           -i|ignore           : 忽略(忽略读和写错误,但对镜象文件串无效)
          -ir|ignorereaderror  : 忽略读错误
          -iw|ignorewriteerror : 忽略写错误         
           -n|next             : 下一个(如果遇到致命错误,就继续下一个任务)
例子:
    1:2,E: TO 2:3,(back.toz=c) -q -m -n -i
总的例子:
单任务:
1 TO 2
   复制硬盘1到硬盘2
1-100+1000 TO 2-200
   从硬盘1第100扇区复制到硬盘2的第200扇区,总共复制1000个扇区
1:2 TO 2:3
   复制硬盘1分区2到硬盘2分区3
1:2-200+1000 TO 2:3-300
   从硬盘1分区2第200扇区复制到硬盘2分区3的第300扇区,总共复制1000个扇区
1:2 TO (d:\backup.toz=c=k=v1000=e?)
   备份硬盘1分区2到镜象文件d:\backup.toz
   c     - 压缩级别6
   k     - 提示输入压缩密码
   v1000 - 分卷,每卷大小1000 MBs
   e?    - 每卷都要提示输入压缩密码
多任务:
    匹配模式:
    1:2,(h:\image.toz=v),2:3 TO (g:\image.toz=c=v),D:,3:2 -p
    自由模式:
    1:2,2:3-2345,3:4 TO 3:3-1234+300,4:1+3456,(i:\image.toz=c=v1000)
                                   <查看模式>
  -Dn 显示硬盘n的信息
  -P  显示全部硬盘全部分区的信息
        noz|nozero       : 不显示分区ID为0的分区
        noh|nohidden     : 不显示隐藏分区
       nozh|nozerohidden : 不显示分区ID为0的分区和隐藏分区
         fn|fatntfs      : 显示FAT和NTFS分区
          f|fat          : 显示FAT分区
          l|linux        : 显示LINUX分区
     n:n - 1:2 or 2:3 ...
     A:  - C:  or D:  ... Z:
例子:
  -d    : 显示全部硬盘
  -d2   : 显示硬盘2
  -p    : 显示全部硬盘全部分区
  -pfn  : 显示FAT和NTFS分区
  -p2:3 : 显示硬盘2分区3
  -pc:  : 显示 C:
*********
补充说明
*********
本程序采用的是扇区方式:
企业方式或者是极其重要的数据,应该采用扇区方式.
×××××××××××××××××××××
特别建议:
1
本程序很适合备份塞满文件的分区。
2
由于是扇区方式,所以可以备份任何文件系统的 分区(包括LINUX等等。。。)
不过,如果要备份到镜象文件,镜象文件所在分区只能是FAT/FAT32.
××××××××××××××××××××××××××××××
骨干开关:
一 匹配模式(包括 硬盘模式(-d)  和分区模式 (-p))
这种模式最常用,尤其是 分区模式.
这种模式由于处理的是 格式数据(硬盘和分区),所以,要匹配,至少是原数据块要小于目标数据块(在这种情况下,如果是分区模式,除了
把源分区的分区ID,和80/00是否活跃标志共两处,两个字节更新到目标分区外,目前不支持更新分区的大小,这涉及到搬移其后的所有分
区!,而且,对于一般用户,用的较少,一般都是哪里来哪里去的,起到一个备份恢复作用..)
由于是格式匹配模式,所以不允许使用 - 和 + 操作符.
匹配模式 的 源串和目标串的个数必须相等,否则警告退出
匹配模式支持镜象文件串.
除了分区模式要用源分区的分区ID和80/00更新目标分区的分区表外,
多任务的匹配模式 等价于自由模式的单任务的无 - + 的个数相同的一对一的串合。
二 自由模式(没有 -d 和 -p 参数)
这是精确到扇区的方式,可以任意指定要处理的起始扇区(前缀 是 - )和扇区操作数(前缀是 + , 小联想:
GRUB 也是用 + 表示要加载的数据块(扇区)的个数).
如:
1-100+200 表示 从硬盘1 的开始扇区100处执行 执行扇区数为200
镜象文件串也支持 + 操作符,但不支持 - 操作符.
技术上,是可以支持的,但是,要在文件的海量之处都作上记号,但这将极大的降低文件读取的速度
如:
(e:\back=c=v100)+1000 表示总共执行文件含有的总扇区的1000个扇区
如下非法:
(e:\back=c=v100)-1000 试图从文件含有扇区的第1000个扇区处执行,但非法.
这种模式对 RAW数据的恢复非常有用.也就是用尽了全部文件式数据恢复工具不能找到数据的情况下,就要借助于扇区模式了..
源/目标串
硬盘串:
1
执行为:
硬盘1 开始扇区0 处理扇区为整个硬盘的总扇区
分区串:
1:1
执行为:
硬盘1 分区1的开始扇区 处理扇区为分区1的总扇区
DOS盘符串:
C:
程序在分区表中找出其对应的分区,然后等同于分区串
镜象文件串
要用括号括起来()
完全的参数如下:
(d:\image=c=k=v1000=e?)  用 = 号 连接
第一为文件名(8.3格式)
Cn C(COMPRESS) 压缩, 9 为压缩级别,(1-9,6 可能是强度和速度的最佳平衡点,如没有级别,则取默认的6)
K (KEY),表示压缩文件有密码. 默认没有密码,有K,表示要有密码,那么当程序创建压缩镜象时,会要求用户输入密码,以便下次用文件
恢复到硬盘前,也要用户输入密码,这是安全需要.
(但是,仅有K,只会对第一个压缩文件要求密码,如果有分卷,不会后面的分卷要求密码)
Vn  V(Volume)表示有分卷功能, 在把硬盘数据存为分卷文件时,用户可以指定每个分卷的大小(以MB为单位 ),n 表示 MB,默认是2047
V1000 表示 以每 1000MB为一卷
(补充: 当文件参数在左边时,也就是源位置时, 如没有V, 程序将只处理一个文件,不擅自寻找是否有分卷(因为这样有可能自做主张
了. 如果 有 V, 将自动寻找其分卷,但只要给出 这个 V 即可,无需 n)
E?  E (Eevry)表示对每个压缩的分卷要求密码,如果没有 ? , 程序会把第一文件(母卷)的密码都自动写入后面的分卷中.如果有 ? 表
示 对每个压缩的分卷文件要求密码,并且 停下来,等待用户输入.
***********************************************
关于本程序采用的压缩库 zlib 和艰辛的寻找过程
***********************************************
1
试了,简单古老版的 LZ, LZW,HUFFMAN,LZHUF,LZSS,LZHARC, LZ77,LZARI,LZRW1等等,都不理想,太老,效率太低,只能用来教学。
2
看了 ARJ/UNARJ,有很多我不要的功能。。
3
曾定在 GZIP(BZIP2,基本差不多),很不错,也觉得有点适合我,压缩比和速度都很好,还有1-9的压缩比选项。。钻研了几天,
发现没有内存压缩,只有文件压缩,。。。
4
看到一个提示: zlib 支持内存压缩!
确定它了!
(ZLIB和GZIP,PNG都采用相同的引擎:基于LZ77和HUFFMAN的结合,当然和前面提到的古老原始的版本是不可同日而语的)
在此过程中,与DDCOPY作者李治联系了。取得了DDCOPY源么,对我有启发。。
不过,试了DDCOPY的压缩,不太理想,豪时长,压缩比低。因为他采用的压缩/解压的类较简单,就两个文件(用简单的LZSS,
胡颖卓编写的类,后来我也在网上看到了)
采用的压缩引擎是先进的最新版的 zlib-1.2.3 库(与GZIP,PNG图象用的同一个引擎),
压缩比和压缩速度很快,解压速度更快的离谱!
在WIN32 控制台程序中,压缩50MB,大约要20秒,压为了25MB。
解压只要大约3秒! 我*!
还有 压缩比的1-9选项(类似GHOST)。。。
ZLIB 压缩比相当高 采用 优化高效的 LZ77 和 HUFFMAN 结合,DEFLATE方式
而且速度与同类的压缩库相比要快的多! (如果比较压缩库,应该是与GHOST速度和压缩比差不多的.. )
*****************************
本程序的局限性和待增加的功能
*****************************
由于是DOS程序, 文件参数只支持FAT系列的盘符
程序显示出的分区总表中的 DOS 盘符 是按照 DOS的盘符分配规律推测出的,不一定准确,
尤其是场合性的挂载额外的驱动器(如U盘,移动硬盘,虚拟盘等),仅作参考。但是表中显示的分区数字是没有问题的。
计划加入处理指定的镜象中的第几硬盘和第几分区
***************
几个有用的开关
***************
1  i|ignore (还有 ir|ignorereaderror  iw|ignorewriteerror)
忽略磁盘的 读写错误, 这样的话,就不会因为较少的介质问题而终止整个程序。
2
q | quiet
不要提示,直接执行(但对诸如文件打不开等,仍然要跟你要文件名的。。等等)
3 n | next
当执行某个任务发现致命的错误时,不退出整个程序,继续执行下一个任务(但仍然根据前一个已完成的数据量对下一个任务的数据量作
更新)
4 m | mute
不显示信息
这几个开关的使用地点:
单个字母既可用于源/目标串中〈仅对其源/目标串的任务起作用〉,也可用于全局〈对全局起作用〉;而两个或两个以上的字符只能用于全局):
其中,i
a
用在硬盘/分区/DOS盘符串:(用 =连接)
如:
1=i TO 2 (忽略读硬盘1的错误,但不忽略硬盘2的写错误)
1:1 TO 2:3=i (忽略写硬盘2分区3的 写错误,但不忽略读硬盘1分区1的读错误)
e:=i TO 2:3=i (都忽略)
但是忽略开关(-i)不能用在镜象文件串中(因为文件不是设备。如果在读写文件的过程中DOS给出了错误,是不能忽略过的,程序会提示
你,重新输入文件名)
b
用在后面的独立之处(对全部任务起作用),等价于  -ir 和 -iw
如:
1:2,E: TO 2:3,(BACK.TOZ=C) -i(也可-ir -iw) (忽略全部任务的读错误和写错误)
q | quiet  (没有采用 y ,以免 跟 n 混同,以避免使用者误以为 y 表示不给提示,n 表示给提示。)

[ 本帖最后由 lianjiang 于 2008-9-2 16:20 编辑 ]

todisk-13a.zip

65.94 KB, 下载次数: 187, 下载积分: 无忧币 -2

最新版TODISK3.5.3.zip

85.86 KB, 下载次数: 298, 下载积分: 无忧币 -2

2#
发表于 2008-9-2 13:29:18 | 只看该作者
看不到有源代码的迹象。
如果有源代码了最好标出该贴所在的位置...

[ 本帖最后由 netwinxp 于 2008-9-2 13:35 编辑 ]
回复

使用道具 举报

3#
发表于 2008-9-2 13:37:59 | 只看该作者
什么技术~看不懂啊!!!!
回复

使用道具 举报

4#
 楼主| 发表于 2008-9-2 16:14:19 | 只看该作者
dos联盟的原帖里,以前见过。

估计作者不想提供源码了,呵呵。标题已改。

需要源码的可跟作者联系,或许也能得到。

我下载过一个版本的源码,全不全就不清楚了。

[ 本帖最后由 lianjiang 于 2008-9-2 16:31 编辑 ]
回复

使用道具 举报

5#
发表于 2008-9-2 16:38:52 | 只看该作者
没有提供源代码的只能称为免费软件不能叫做“开源”。
回复

使用道具 举报

6#
 楼主| 发表于 2008-9-2 16:45:29 | 只看该作者
标题已把“开源免费”改成“免费”了。
作者有多个关于todsik的帖子,很难找到源码是否还有了。
回复

使用道具 举报

7#
 楼主| 发表于 2008-9-2 17:00:53 | 只看该作者
在作者的另一个仍有源码的迷你版todisk-minito的帖子里,是说“现传上源码...希望能对正学习DOS,WINDOWS,磁盘和编程者有点帮助”,看来作者提供源码,也不是说就是“开源”作品。
回复

使用道具 举报

8#
发表于 2008-9-2 18:12:19 | 只看该作者
所谓扇区模式是否是将整个分区按扇区全部备份下来?若是那样,就会耗用大量的硬盘空间。
回复

使用道具 举报

9#
 楼主| 发表于 2008-9-2 18:15:24 | 只看该作者
只是收藏了这个工具,没用过。
还是习惯用不花钱的ghost,呵呵。
回复

使用道具 举报

10#
 楼主| 发表于 2008-9-2 18:24:42 | 只看该作者
todisk存在以下两个难题:
1,要求fat分区保存备份,
2,速度据说慢

接下来准备试试这个免费工具,看看到底如何个慢法。
回复

使用道具 举报

11#
 楼主| 发表于 2008-9-2 19:22:52 | 只看该作者
虚拟机一运行就死机,本机又没有fat分区。还是算了,不试了。
回复

使用道具 举报

12#
发表于 2008-9-3 09:28:25 | 只看该作者
不好用,特别容易死机,速度也不行.
回复

使用道具 举报

13#
 楼主| 发表于 2008-9-3 09:32:33 | 只看该作者
原帖由 WittyHare 于 2008-9-3 09:28 发表
不好用,特别容易死机,速度也不行.

看来ghost独霸天下,是有理由的,呵呵。
回复

使用道具 举报

14#
 楼主| 发表于 2008-9-3 09:34:22 | 只看该作者
不是谁想搞一个的,就都能比ghost好用的。
还是老老实实用不花钱的ghost。呵呵。
回复

使用道具 举报

15#
发表于 2008-9-3 12:53:13 | 只看该作者
GHOST是好,但是目前问题还是很多的。
一般WINDOWS系统用GHOST足矣。
回复

使用道具 举报

16#
 楼主| 发表于 2008-9-3 13:56:15 | 只看该作者
原帖由 likeme 于 2008-9-3 12:53 发表
GHOST是好,但是目前问题还是很多的。
一般WINDOWS系统用GHOST足矣。


不知道,所说的很多问题,都是些啥问题。
回复

使用道具 举报

17#
发表于 2008-9-3 13:57:51 | 只看该作者
为什么不基于文件的方式???
回复

使用道具 举报

18#
发表于 2008-9-6 21:53:34 | 只看该作者
不会玩,先看看,在说
回复

使用道具 举报

19#
发表于 2008-9-7 08:26:46 | 只看该作者
GHOST已经非常强大了~
回复

使用道具 举报

20#
发表于 2008-9-8 23:15:29 | 只看该作者
我刚才还在DOS联盟看这篇帐子呢,这个软件后来又精简一个识别分区的软件!跟DISP差不多吧?叫Minito在DOS下做批处理有用!当然也有WIN下版!
回复

使用道具 举报

21#
发表于 2008-9-9 01:06:59 | 只看该作者
说实在的,没能看懂。
回复

使用道具 举报

22#
发表于 2010-9-11 21:26:06 | 只看该作者
呵呵,这帖子好!!让我觉得很强大,但是我确实没怎么看懂~
回复

使用道具 举报

23#
 楼主| 发表于 2010-9-11 21:54:56 | 只看该作者
原帖由 2010radioplayer 于 2010-9-11 21:26 发表
呵呵,这帖子好!!让我觉得很强大,但是我确实没怎么看懂~


一遍不懂看两遍,两遍不懂看三遍。看懂一定用不了百遍.
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-12-3 02:35

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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