QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2212|回复: 4

(原创〕在DOS可备份LINUX !高压缩分卷

[复制链接]
发表于 2006-9-8 13:07:18 | 显示全部楼层 |阅读模式
硬盘全真自由备份恢复器 == TOdisk == (扇区模式)

有时用GHOST备份失败,可能文件出了什么问题。。。
就自己写了个程序 TOdisk 却成功地备份了。。
用扇区方式备份硬盘或分区或任意扇区。。。
支持压缩和分卷,扩展分区,连续任务。。。等等。。
希望大家有空试玩。。。

说明如下:


全新改版的硬盘备份恢复器 ==TOdisk ==(扇区模式)

运行环境: DOS (不能在DOS下加载UDMA驱动,可能运行反常)

TOdisk version 1.0 Alpha Copyright (c) 2006 by GOTOmsdos
Email: [email protected]
Syntax:
      <DO mode>
TOdisk SRC1[,SRCn...] TO DST1[,[DSTn...] [-[[d|p][q][m][n][ir][iw]]]
    <LOOK mode>
TOdisk [-D[n]|-P[[noz|noh|nozh|fn|f|l]|[n:n|A:]]]

    SRC/DST set: (DISK set, PARTITION set, DOSLETTER set, IMAGEFILE set)
1, DISK set >> 1 or 2...n
2, PARTITION set >> 1:2 or 2:3...n:n
3, DOSLETTER set >> C: or D:... Z:
4, IMAGEFILE set -- (c:\image.to)
--------------------(c:\image.to=Vn)
--------------------(c:\image.toz=Cn=K=Vn=E?)  <压缩>

<镜象文件名,如不压缩建议后缀为to, 如压缩建议后缀为toz, 以免跟其他文件名混淆,不过程序并不强制这样)


IMAGEFILE:
     Cn - C:compress n:compress level(1-9)
      K - key for compress required
     Vn - V:volume n:every volume MBs
     E? - E:key for compress to "EVERY" volume ?:prompt for key

Switch:
    -d|-p:  DISK|PARTITION MODE (strictly matched mode)

    (The following valid to ALL tasks):
           -q: quiet mode(No question to you)
           -m: mute(No information words)
           -i: ignore(ignore read/write error,invalid to IMAGEFILE set)
           -n: next(Go to next work if fatal error encountered)

in SRC/DST set
- : specify start sector
+ : specify sectors to do
but - not allowed in IMAGEfile set

  Additional parameter set parameters
(Only used in SRC/DST set. Only valid to SINGLE task):
  =q, =m, =i, =n

    =q: quiet mode(No question to you)
    =m: mute(No information words)
    =i: ignore(ignore read/write error,not allowed in IMAGEFILE set)
    =n: next(Go to next work if fatal error encountered)

    additional parameter set parameters EXAMPLE:
  1:2=q=m,3:4 TO (file=c)=n,4:1=i

Single-task Example:
1 TO 2
   copy disk1 to disk2

1-100+1000 TO 2-200
   at sector100 copy disk1 1000 sectors to disk2 at sector200

1:2 TO 2:3
   copy disk1 partition2 to disk2 partition3

1:2-200+1000 TO 2:3-300
   copy at sector200 disk1 partition2 to disk2 partition3 at sector300

1:2 TO (d:\backup.z=c9=k=v1000=e?)
   backup disk1 partition2 to IMAGE file d:\backup.z
     c9 - compress level9
      k - Key
  v1000 - Separate volume in 1000 MBs
     E? - Prompt for key to every volume

Multi-task Example:
1:2,2:3-2345,3:4 TO (g:\12.z=c=v1000)+12345,4:1-3456,(i:\34.z=c9=v1000)

   

-d example:
1,2 TO 3,4 -d
      == (1 TO 3 -d) and (2 TO 4 -d)

-p example:
1:2,4:3,2:2 TO 2:3,(d:\back.z=c),4:5 -p
      == (1:2 TO 2:3 =p) and (4:3 TO d:\back.z=c -p) and (2:2 TO 4:5 -p)

    additional parameter Example:
    1:2,3:4 TO (file=c),2:2 -q -m -n -ir -iw

    <LOOK mode>
  -Dn show disk n info
  -P show parition info
     noz|nozero: not show zeroID partition
     noh|nohidden: not show hidden partition
     nozh|nozerohidden: not show zeroID and hidden partition
     fn|fatntfs: show FAT and NTFS partition
     f|fat: show FAT parition
     l|linux: show linux parition

     n:n 1:2 or 2:3...
     A: C: or D:...Z:

Example:
-d  show all drive
-d2  show drive 2
-p  show all partition
-pfn  show FAT and NTFS parition
-p2:3  show disk2 partition3
-pc:  show C:


补充说明:

本程序:

采用的是扇区方式:

关于处理模式和速度:
  GHOST 采用文件模式,即:只处理文件,不处理没有合法文件的数据,(所以,其实GHOST不是CLONE.是重整).文件方式多了检索文件搜索文件的过程,而且,如果遇到有问题的文件,诸如簇链交错和无家可归的文件

等等,还会终止程序。。。还有弱点是:用这种方式恢复的分区,不可能找回被删除的或丢失的文件,因为,没有合法文件的数据没有被保存.
GHOST 的 -ia 虽是用扇区方式,但是是拷贝 整个硬盘 或其全部分区,不能处理指定的某个分区,更不能处理任意指定的 某些扇区


-ial -ir 也大同小异。。

TOdisk 是采用扇区方式,虽然速度慢些,但却是完全的复制,这样,虽然速度没有文件方式快,但是确是全真方式.即一模一样,这才是真正的 CLONE.

其实,企业方式或者是极其重要的数据,应该是采用扇区方式.

×××××××××××××××××××××
特别建议:
1
本程序很适合塞满文件的分区备份。
2
如果用GHOST备份出错,可以试用TOdisk,可能会化险为夷的。
3
由于是扇区方式,所以可以备份任何文件系统的 分区(包括LINUX等等。。。)
不过,如果要备份到镜象文件,镜象文件所在分区只能是FAT/FAT32.
××××××××××××××××××××××××××××××


骨干参数:

一 自由模式(没有 -d 和 -p 参数)
其实,这是却是少用的模式, 是精确到扇区的方式,可以任意指定要处理的起始扇区(前缀 是 - )和扇区操作数(前缀是 + , 小联想:

GRUB 也是用 + 表示要加载的数据块(扇区)的个数).

如:
1-100+200 表示 从硬盘1 的开始扇区100处执行 执行扇区数为200

文件参数也支持 + 操作符,但不支持 - 操作符.
技术上,是可以支持的,但是,要在文件的海量之处都作上记号,但这将极大的降低文件读取的速度

如:
(e:\back=c=v100)+1000 表示总共执行文件含有的总扇区的1000个扇区

如下非法:
(e:\back=c=v100)-1000 试图从文件含有扇区的第1000个扇区处执行,但非法.

这种模式对 RAW数据的恢复非常有用.也就是用尽了全部文件式数据恢复工具不能找到数据的情况下,就要借助于扇区模式了..

二  匹配模式(包括 硬盘模式(-d)  和分区模式 (-p))
这种模式最常用,尤其是 分区模式.
这种模式由于处理的是 格式数据(硬盘和分区),所以,要匹配,至少是原数据块要小于目标数据块(在这种情况下,如果是分区模式,除了

把源分区的分区ID,和80/00是否活跃标志共两处,两个字节更新到目标分区外,目前不支持更新分区的大小,这涉及到搬移其后的所有分

区!,而且,对于一般用户,用的较少,一般都是哪里来哪里去的,起到一个备份恢复作用..)
由于是格式匹配模式,所以不允许使用 - 和 + 操作符.

匹配模式 的 源参数和目标参数的个数必须相等,否则警告退出
匹配模式支持文件参数.

除了分区模式  要用源分区的 分区ID 和80/00 更新目标分区的分区表,
多任务的匹配模式 等价于自由模式的单任务的无 - + 的个数相同的一对一的集合:
比如:

1,2 TO 3,4 -d
等价于两次操作:
1 TO 3 -d
2 TO 4 -d

但不等价于
1,2 TO 3,4
除非1,3大小相同, 2,4大小相同

因为,自由模式是一种灵活的模式,前后任务是向续接替的
比如

硬盘1 总扇区 1000
硬盘2 总扇区 2000
硬盘3 总扇区 1500
硬盘4 总扇区 3000
  
1,2 TO 3,4
在自由模式 中,过程如下:

硬盘1 传递给 硬盘3 1000个扇区,退出 (硬盘1 完成任务)
硬盘2传递给 硬盘3 500个扇区,硬盘3 退出(硬盘3 完成任务)
硬盘2传递给 硬盘4 1500 个扇区 , 硬盘2 退出(硬盘2 完成任务)
程序便退出(因为 源和目标已经有一方完成了)

程序这样处理是考虑到 灵活性: 可能 使用者 可能并不确切的知道各个分区,硬盘的精确大小等等东西,但是又想完成前面的已经满足

条件的数据...


参数

硬盘参数:
1
执行为:
硬盘1 开始扇区0 处理扇区为整个硬盘的总扇区

分区参数:
1:1
执行为:
硬盘1 分区1的开始扇区 处理扇区为分区1的总扇区

DOS盘符参数:
C:
程序在分区表中找出其对应的分区,然后等同于分区参数

镜象文件参数
要用括号括起来()
完全的参数如下:

(d:\image=c9=k=v1000=e?)  用 = 号 连接

第一为文件名(8.3格式)

Cn C(COMPRESS) 压缩, 9 为压缩级别,(1-9)

K (KEY),表示压缩文件有密码. 默认没有密码,有K,表示要有密码,那么当程序创建压缩镜象时,会要求用户输入密码,以便下次用文件

恢复到硬盘前,也要用户输入密码,这是安全需要.
(但是,仅有K,只会对第一个压缩文件要求密码,如果有分卷,不会后面的分卷要求密码)

Vn  V(Volume)表示有分卷功能, 在把硬盘数据存为分卷文件时,必须要用户指定每个分卷的大小(以MB为单位 ) n 表示 MB
V1000 表示 以每 1000MB为一卷
(补充: 当文件参数在 左边时,也就是源位置时, 如没有V, 程序将只处理一个文件,不擅自寻找是否有分卷(因为这样有可能自做主张

了. 如果 有 V, 将自动寻找其分卷,但只要给出 这个 V 即可,无需 n)

E?  E (Eevry)表示对每个压缩的分卷要求密码,如果没有 ? , 程序会把第一文件(母卷)的密码都自动写入后面的分卷中.如果有 ? 表

示 对每个压缩的分卷文件要求密码,并且 停下来,等待用户输入.


LOOK mode
就是 看看硬盘和分区的信息

-D
查看全部硬盘

-Dn
查看第n硬盘

-P
查看全部分区

-Pnoz 或 -Pnozero
不显示分区ID为0x00 的分区

-Pnoh -Pnohidden
不显示隐藏分区

-Pnozh -Pnozerohidden
不显示分区ID为0x00和隐藏分区

-Pfn 或 -Pfatntfs
只显示FAT NTFS分区

-Pf 或 -Pfat
只显示FAT分区

-P:
只显示DOS下盘符(也就是非隐藏的FAT系列)

-Pl 或-Plinux
只显示 Linux分区

***************************************
**********************************************

关于 本程序 采用的压缩库 zllib

ZLIB 压缩比相当高 采用 优化高效的 LZ77 和 HUFFMAN 结合,DEFLATE方式
而且速度与同类的压缩库相比要快的多! (当然前面讲了 GHOST 采用的是文件模式,所以快,不是GHOST的压缩库块,而是它处理的数据

量小,如果比较压缩库,应该是与GHOST速度和压缩比差不多的..能达到平均每秒 1,2MB! )


*********************************
***********************************

本程序的局限性和待增加的功能:

由于是DOS程序, 文件参数只支持FAT系列的盘符

程序显示出的分区总表中的 DOS 盘符 是按照 DOS的盘符分配规律推测出的,不一定准确,
尤其是场合性的挂载额外的驱动器(如U盘,移动硬盘,虚拟盘等),仅作参考。但是表中显示的分区数字是没有问题的。

计划 加入 处理指定的镜象中的第几硬盘和第几分区

***************************************
***************************************************

几个有用的开关:
1  i|ignore ( ir|ignoreRead  iw|ignoreWrite)
忽略磁盘的 读写错误, 这样的话,就不会因为较少的介质问题而终止整个程序。

2 q | quiet
不要提示,直接执行(但对诸如文件打不开等,仍然要跟你要文件名的。。等等)

3 n | next
当执行某个任务发现致命的错误时,不退出整个程序,继续执行下一个任务(但仍然根据前一个已完成的数据量对下一个任务的数据量作

更新)

4 m | mute
不显示信息

这四个参数的地点:

1
可在两种参数中给出

a
i 用在硬盘/分区/盘符参数组:(用 =连接)
如:
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) -ir -iw (忽略全部任务的读错误和写错误)

2 q | quiet  (没有采用 y ,以免 跟后面的 n 混同,可能使使用者误以为 y 表示不给提示,n 表示给提示。。)

可以用在任何地方,包括文件参数组
如用在参数组(用 = 连接),仅对参数组起作用:
1:1=q,2:3 TO 2:4,3:4

(用于文件参数组时,必须在()之后):
1:1,(FILE.Z=v)=q TO 4:3,2:3

如用在后面的独立之处(用 - 连接),对全部任务起作用

3 n|next

可以用在任何地方,包括文件参数组
如用在参数组,仅对参数组起作用,
如用在后面的独立之处,对全部任务起作用

4 m|mute
可以用在任何地方,包括文件参数组
如用在参数组,仅对参数组起作用,
如用在后面的独立之处,对全部任务起作用

*********************
****************************
补充:

如果参数组中有 - + 操作符,那么
用在参数组中的以上的参数( i | ignore, q | quiet,m | mute,  n | next) 必须放在 - 或 + 的后面当然,在 匹配模式 -d,

-p 中,本来就不能有- + 操作符,自然就不存在这个问题 )
1:1 TO 2:3-100+200=i
1:1 TO 2:3-100+200=q
1:1,2:3 TO 2:3-100+200=n,3:4

另:
以上四对参数可以连用:
1:1,2:3 TO 2:3-100+200=i=q=m=n,3:4

1:2,E: TO 2:3,(BACK.TOZ=C) -q -m -n -ir -iw

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2006-9-8 16:29:05 | 显示全部楼层
精一个,LZ辛苦。
不过,分区备份毕竟涉及数据安全,提醒各位谨慎使用。
回复

使用道具 举报

发表于 2006-9-10 12:45:00 | 显示全部楼层
给我一个GRUB
给你所有os
回复

使用道具 举报

发表于 2006-9-11 21:15:48 | 显示全部楼层
看得晕忽忽的,不过似乎很厉害的样子。
佩服一个。
回复

使用道具 举报

发表于 2006-9-11 22:49:23 | 显示全部楼层
现在谁还有dos?linux下那么多工具不用,还要兜个大圈去用dos工具?
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-24 11:29 , Processed in 0.179396 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

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