最后更新:2006-07-16 版本:2.0.0.716
badcopy - 从不良的存储介质中复制文件
|
| badcopy 主要用于从包含物理损伤的存储介质中尽力挽救数据。从损伤严重度上,可以把 badcopy 要面对存储介质分为 2
类: 1. 完好或轻度损伤 存储介质中只有个别扇区受到了轻微损伤,通过反复尝试读取这些扇区,能够完整地复制文件内容。可以通过 “-retry” 参数定义尝试反复读取的次数(默认不反复读取)。 2. 严重损伤 存储介质中存在完全无法恢复的扇区,这种情况下,文件仍然被复制。那些无法读取的数据块将使用用户定义的字节填充(默认为0)。 在尝试对存在严重损伤的介质进行恢复时,“-block” 参数决定了恢复的效率。默认情况下,badcopy 每次尝试读取一个扇区的内容(扇区的尺寸取决于正在访问的存储介质),在尝试了“-retry”指定的次数后,如果某个扇区的内容仍然无法读出,则该扇的内容将由填充字节取代,badcopy 继续尝试读取下一个扇区。 存储介质上的坏块通常是连续存在的,并且每次设备返回访问错误前,通常会尽力尝试读取数据(在CD/DVD-ROM上,光驱每次要尝试大概15秒左右才会返回读取错误)。这两个特性使得某些场合下,逐扇区尝试的代价过高。这时用户可以通过 “-block” 参数定义每次尝试读取的扇区数。 正如前文所述,增大这个值获得的效率提升是以降低潜在精确度为代价的。例如:当使用“-block=10”时,将每次尝试读取10个扇区的内容,这10个扇区中只要有任意一个为坏扇,所有这10个扇区在目标文件中都将被填充。不过,由于坏块通常是连续分布的,出现这种情况的可能性很小。 |
| 1. 流媒体 对于流媒体之类(VCD、DVD、RM、AVI等等)尺寸庞大,并且对错误不敏感(对于DVD来说,烂掉2MB数据只不过在电影的某一瞬间产生一点毛刺而已)的文件,建议把block值设的大一点(对于DVD来说,512是个不错的选择,VCD和一般的AVI、RM可以设成128)。作为参考,对于 DVD-D5 格式(2小时/4GB)来说,节目每秒钟平均占用300个扇区的存储空间。对于DVD-D9 格式(2小时/8GB)来说是 600 个扇区。 badcopy 的设计初衷就是高效地为LP(那时还是GF)高效地复制D版DVD ^_^。 2. 有代价的容错格式 是指丢失的数据对文件有较明显的影响,静态图像(jpg、png等);文档(txt、doc、ppt等);打包文件(zip等)都属于此类情况。这种文件要求尽可能的精确复制。推荐block使用默认值(1)、retry使用2到3。 3. 携带冗余再生信息的文件格式 文件在编码时已经考虑到了数据丢失问题,并提供了某种程度上的再生算法和用于重建的冗余数据。例如rar打包格式中的“恢复记录”选项。这类格式使用额外的信息确保能够容忍少量数据丢失,对于较小的文件,全部使用默认选项恢复即可(block为1, retry为0);对于较大的文件(用于恢复的冗余数据也较多),可以适当增大block的值(如:30)。 特别说明:对于用crypto加密过的文件,其数据恢复能力取决于文件的原始格式。crypto本身能够对不完整的数据进行解密,解密后的数据如果带有冗余再生信息,该信息仍然有效。 4. 完全不容错的格式 例如可执行文件(.exe, .dll)等。这种文件的大部分内容都不允许有任何错误。使用默认的block和较高的retry值尝试。 ■注意■ 如果您正在尝试从硬盘中恢复非常重要的数据,请不要使用 badcopy。您应当在出现故障后的第一时间关闭计算机,并将硬盘送往专业数据恢复机构。 |
D:\product\BadCopy\vc_msw>
#badcopy.exe
==============================================================================
BadCopy 2.0.0.716 by BaiYang / 2004 - 2006, Freeware
==============================================================================
Copy file from incorrect storage media.
[USAGE]: badcopy srcpattern destdir [Options]
==============================================================================
Options:
-block: - specify how many sectors should be read one time. the actual size
of the sector is vary from different storage media type.
DEFAULT: one sector per step.
-offset: - sector position to start copy, DEFAULT: 0
-retry: - retry times, DEFAULT: 0
-fill: - specify the fill value for bad sectors, DEFAULT: 0x00
-append - don't overwrite the destination file, instead of it, append new
to the end of file.
DEFAULT: if '-offset'=0 then overwirte, else: append
NOTE: if this switch is specified and "-offset" is 0 (as the
default), also the target file size is multiple of the source
device's sector size, then "-offset" will be adjusted to
continue the last copy process.
-s - include sub directories.
-logfile: - using a logfile.
-loglevel - specify the lowest logging level, could be:
DebugOnly (Most Detail)
Info
Warning (DEFAULT)
Error
FatalError
Disabled (Close Logging Output)
==============================================================================
Following Digital Representaion are recognized:
Hexadecimal, Prefix: 0x, 0X, x, X
Octal, Prefix: 0
Binary, Prefix: 0b, 0B, b, B
Decimal, Prefix: NONE (1-9)
==============================================================================
Examples:
badcopy D:\*.AVI C:\TEMP /fill=0xFF /block:8
badcopy D:\src.dat C:\recovery -offset:1502 -retry:3 -fill:B10101010
badcopy my.rm c:\temp /append
|
C:\Documents and Settings\Administrator>
#badcopy
==============================================================================
BadCopy 2.0.0.716 by BaiYang / 2004 - 2006, 免费软件
==============================================================================
从存在故障的存储介质中复制文件
[用法]: badcopy 源文件通配符 目标目录 [选项]
==============================================================================
选项:
-block: - 指定每次读取多少个扇区,扇区的尺寸随存贮介质的不同而变化。
默认值: 每次一扇区
-offset: - 从指定的偏移(扇区数)开始复制文件。默认: 0
-retry: - 重试次数。默认: 0
-fill: - 指定无法读取内容的填充值。默认: 0x00
-append - 将新读取得内容追加到目标目录中的同名文件(而不是覆盖它)。
默认: 如果 '-offset' 为 0 则覆盖,否则追加
注意: 如果指定了此开关,并且 '-offset' 为 0 (默认情况),同时
目标文件的尺寸为源设备扇区尺寸的正倍数,则将继续上次未完成的复
制过程(将 '-offset' 自动调整为从上次中止的位置继续)。
-s - 包含子目录
-logfile: - 使用指定的日志文件
-loglevel - 知道日志文件的详细程度,可以是:
DebugOnly (最详细)
Info
Warning (默认)
Error
FatalError
Disabled (禁用日志输出)
==============================================================================
参数接受以下数值表示法:
十六进制,前缀: 0x, 0X, x, X
八进制, 前缀: 0
二进制, 前缀: 0b, 0B, b, B
十进制, 前缀: 无 (1-9)
==============================================================================
使用示例:
badcopy D:\*.AVI C:\TEMP /fill=0xFF /block:8
badcopy D:\src.zip C:\recovery -offset:1502 -retry:3 -fill:B10101010
badcopy my.rm c:\temp /append
|