我有一个用于备份的外置 Seagate 硬盘。现在我无法进入磁盘(尚未使用 dd 命令!)。当我将其插入 Windows 计算机时,它说磁盘需要格式化才能访问,运行 ubuntu 12.04 的 Linux 无法安装它,尽管我hwinfo --disk
在终端中使用它时可以找到它。一位朋友告诉我 Linux 中的 dd 命令,我知道它很危险(如果你将输入作为输出,而将输出作为输入,数据就会丢失)。我尝试了“dd if=/dev/sdc of=/dev/sdb”,结果显示“拒绝访问”,所以我猜至少没有任何东西被覆盖。根据 hwinfo 和安装在 ubuntu 上的磁盘处理管理器,sdc 是 Seagate 磁盘,而 sdb 是具有相同容量的内部磁盘,只是空的。有什么想法我应该做些什么来恢复我的数据(如果 dd 能够恢复)?还是磁盘损坏太严重而无法恢复?
答案1
您需要 root 权限才能读取或写入原始硬盘。因此您需要运行
sudo dd if=/dev/sdc of=/dev/sdb
话虽如此,dd
它将逐位创建磁盘及其所有分区的原始副本。它不会修复任何东西 - 但是,最好使用上述命令将数据从损坏的磁盘复制到好磁盘,然后尝试修复数据副本。这样,如果出现问题并且您的救援尝试最终造成更多损害,您仍然拥有坏数据的原始副本并可以制作一份新副本。
当您以这种方式克隆了坏磁盘后,请拔下它。然后,您可以开始对副本进行实际恢复。一个工具是fsck
,您可以按以下方式运行它(再次强调,您需要是 root 用户):
sudo fsck /dev/sdb1
/dev/sdb1
将是磁盘的第一个分区。如果您有多个分区,请对 重复相同的操作/dev/sdb2
,/dev/sdb3
依此类推。
这并不能保证一定能恢复任何数据 - 但如果不能,它会提示损坏的类型以及需要进一步查找的位置。