有什么方法可以从“损坏”的 Linux 上的 SSD 中挽救数据吗?

有什么方法可以从“损坏”的 Linux 上的 SSD 中挽救数据吗?

从哪里开始呢... 我有三台托管在海外的专用服务器。三台服务器都运行 CentOS 6.7,两台用于 Web 服务器,第三台仅用于连接到两台 Web 服务器的 MySQL 数据库。

周五,数据库服务器开始随机地接连断开连接,所以我想检查错误日志中是否有任何异常 - 没有什么异常,所以我备份了我的 MySQL 数据库(就像每次重启之前所做的那样)然后重新启动操作系统。

这就是一切都出错的地方,服务器无法启动到 CentOS 读取

Error: 25 Disk read error

对我来说,这意味着 BIOS 问题(我可能错了)现在服务器主机已为我提供了 IPMI/KVM 来远程维护服务器,但是我无法让一堆令人恼火的 Java 垃圾工作,所以我发送了一张支持单寻求帮助。他们在 12 小时后回复说“您的 SSD 出现故障,我们已为您订购了一个新的”

呃……你好?我需要从中获取数据。

经过反复讨论(几乎是一场争论),我解释说,如果我没有数据库备份,那么换一个新的 SSD 是没用的。最后,我让他们在另一个驱动器上重新安装 CentOS,这样我就可以尝试安装“损坏的”SSD 并恢复我的数据。

我仅使用 SSH,因为我无法让 IPMI/KVM 工作,而且他们已经断开了 IPMI 连接。

当我运行时,fdisk -l我得到以下信息:

[root@localhost /]# fdisk -l

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00023d5d

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1      121602   976760832   83  Linux

Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000ebd75

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1          64      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sdb2              64      121602   976248832   8e  Linux LVM

经过 8 分钟的等待后,终于显示其余内容:

Disk /dev/mapper/VolGroup-lv_root: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000


Disk /dev/mapper/VolGroup-lv_swap: 12.7 GB, 12666798080 bytes
255 heads, 63 sectors/track, 1539 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000


Disk /dev/mapper/VolGroup-lv_home: 933.3 GB, 933320720384 bytes
255 heads, 63 sectors/track, 113469 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000

我无法让它读取 250GB SSD 进行安装。所以我的问题是,有没有其他方法可以从驱动器中获取数据?任何方法都可以,到目前为止我没有什么可失去的。

答案1

不幸的是,如果您的备份也位于发生故障的磁盘上,那么您就倒霉了。通常,与发生故障的机械磁盘不同,SSD 故障通常意味着控制器已损坏,而不仅仅是某些块或区域。查看 dmesg 或 /var/log/messages 输出可能会告诉您更多信息,但这可能不是好消息。

相关内容