ddrescue

数据恢复工具,从崩溃的分区中保存数据.

语法

  ddrescue [options] infile outfile [logfile]

选项:

-b=bytes          输入设备的硬件块大小 [512]
--block-size=bytes

-B                以数字显示二进制乘数 [default SI] 
--binary-prefixes

-c=blocks 一次复制的硬件块 [128]
–cluster-size=blocks

-C 不读取超出日志文件限制的新数据
–complete-only

-d 对输入文件使用光盘访问
–direct

-e=n 允许的最大错误区域数
–max-errors=n

-i=pos 输入文件中的起始位置 [0]
–input-position=pos

-n 允许的最大错误区域数
–no-split

-o=pos 输出文件中的起始位置 [ipos]
–output-position=pos

-q Quiet operation
–quiet

-r=n 重试后退出 (-1=infinity) [0]
–max-retries=n

-s=bytes 要复制的最大数据大小
–max-size=bytes

-t 截断输出文件
–truncate

-v 详细操作
–verbose

-V 输出版本信息并退出
–version

b = blocks, k = kB = 10^3 = 1000, Ki = KiB = 2^10 = 1024, M = 10^6, Mi = 2^20, G = 10^9, Gi = 2^30, etc…

安装

Debian / Ubuntu Linux:

# apt-get install ddrescue

RedHat /Fedora /CentOS Linux:

# yum -y install ddrescue

GNU ddrescue是一种数据恢复工具。它将数据从一个文件或块设备(硬盘,光盘等)复制到另一个,在发生读取错误时努力挽救数据。

ddrescue的基本操作是全自动的。也就是说,您不必等待错误,停止程序,读取日志,以反向模式运行等等。

如果使用ddrescue的日志文件功能,则可以非常有效地挽救数据(仅读取所需的块)。您也可以随时中断挽救,并在以后同一时间恢复。

当Ddrescue在输入中找到坏扇区时,它不会向输出写入零,如果没有要求,则不会截断输出文件。因此,每次在同一输出文件上运行它时,它都会尝试填补空白,而不会消除已经获救的数据。

备份的自动合并:如果您有两个或更多损坏的文件副本,cdrom等,并在所有这些副本上运行ddrescue,一次一个,使用相同的输出文件,您可能会获得完整且无错误的文件。这是因为在不同输入文件上的相同位置处具有受损区域的概率非常低。使用日志文件,只从第二个和后续副本中读取所需的块。

Ddrescue建议使用lzip压缩备份,因为它具有可靠性和数据恢复功能,包括备份副本的错误检查合并。ddrescue + lziprecover组合是从多个受损副本中恢复数据的最佳选择。

可记录的CD和DVD介质仅在有限时间内保存其数据(通常为多年)。在那之后,数据丢失发展缓慢,读取错误从外部媒体区域向内部增长。只需制作两个(或更多)您刻录的重要CD / DVD副本,以便以后可以使用ddrescue恢复它们。

日志文件定期保存到光盘。因此,如果发生碰撞,您可以通过一些重新修复来恢复救援。

此外,相同的日志文件可用于复制文件的不同区域的多个命令,以及用于不同子集的多次恢复尝试。

Ddrescue还具有“填充模式”,能够有选择地覆盖输出文件的某些部分,这些部分具有许多有趣的用途,例如擦除数据,标记坏区域,甚至在某些情况下“修复”损坏的扇区。

ddrescue由Antonio Diaz Diaz编写,从GNU网站下载。
安装为/usr/bin/ddrescue

实例:

将 /dev/sda (damaged \device\harddisk0) 复制到另一个驱动器 /dev/sdb (empty \device\harddisk1)

# ddrescue /dev/sda /dev/sdb

要恢复分区数据,请运行fsck,例如 /home (user data) 在 /dev/sda2 之上, 则在分区/dev/sdb2上运行 :

# fsck /dev/sdb2

这样可以避免损坏的 /dev/sda, 如果程序失败,您可以将原始磁盘发送到专业的数据恢复服务.

最后在某处安装分区,看看是否可以访问数据:

# mount /dev/sdb2 /mnt/data

ddrescue 命令实例:

linux命令:ddrescue -v /dev/sda /dev/sdb logfile.log logfile.log /dev/sdb /dev/sda -v ddrescue ddrescue -v /dev/sda /dev/sdb logfile.logrootopen.com
linux命令:ddrescue -v /dev/sda /dev/sdb logfile.log logfile.log /dev/sdb /dev/sda -v ddrescue ddrescue -v /dev/sda /dev/sdb logfile.logrootopen.com
2018-05-25 20:26:48

linux命令:ddrescue -r 1 /dev/old_disk /dev/new_disk rescued.log rescued.log /dev/new_disk /dev/old_disk 1 -r ddrescue ddrescue -r 1 /dev/old_disk /dev/new_disk rescued.logrootopen.com
linux命令:ddrescue -r 1 /dev/old_disk /dev/new_disk rescued.log rescued.log /dev/new_disk /dev/old_disk 1 -r ddrescue ddrescue -r 1 /dev/old_disk /dev/new_disk rescued.logrootopen.com
2018-03-03 15:30:48

linux命令:ddrescue -n /dev/old_disk /dev/new_disk rescued.log rescued.log /dev/new_disk /dev/old_disk -n ddrescue ddrescue -n /dev/old_disk /dev/new_disk rescued.logrootopen.com
linux命令:ddrescue -n /dev/old_disk /dev/new_disk rescued.log rescued.log /dev/new_disk /dev/old_disk -n ddrescue ddrescue -n /dev/old_disk /dev/new_disk rescued.logrootopen.com
2018-02-15 08:59:48

Linux的Bash命令行(A-Z排序)