我主 PC 上的主硬盘似乎出现故障。几天前断电后,打开 PC 时,BIOS 发出两声哔哔声,并显示一条消息,提示驱动器上发现 SMART 错误。我再也无法启动 Windows 了。
我尝试过(通过 USB 适配器)将其插入我的 Ubuntu 计算机,但无法安装此驱动器并出现各种错误。(它确实允许我连接另一个正常工作的内置硬盘,所以我知道这不是 USB 适配器的问题)
我也尝试过将它插入其他 Windows 10 机器。发生这种情况时,磁盘管理确实识别该磁盘,但它显示为空且未初始化。如果我尝试右键单击并初始化,系统会要求我选择 MBR 或 GPT。我的第一个问题是我不知道它之前是什么,所以我不知道该选择什么。如果我尝试 MBR,我会收到一条消息,提示设备尚未准备好。如果我选择 GPT,我会收到一条消息,提示 GPT 空间不足。
我也尝试过 TestDisk、Recuva、EaseUS Partition Master、DiskPart 等工具。所有工具都无法识别硬盘,因为它没有安装,也没有驱动器号。甚至 Diskpart 也没有在任何地方将其列为磁盘/卷/分区。
我是不是没有其他选择了?除了这个,我无法让 Linux 或 Windows 识别这个驱动器某物正在通过 USB 插入。
我见过有关设置 Windows 10 恢复磁盘/USB 并使用它来修复驱动器的教程,但我怀疑它是否会起作用,原因与上述工具不起作用的原因相同 - 驱动器实际上甚至无法被识别。
答案1
从驱动器读取任何内容
在 Ubuntu (Linux) 中,您无法安装驱动器,但听起来您放弃得太容易了,因为“文件系统不一致/未完全卸载”导致无法自动安装,而“未被识别为设备,无法读取单个扇区”导致您可以读取数据并进行操作,这两者之间存在很大差异。如果 Windows 处于“快速关机”模式,或者存在文件系统错误,则安装可能会失败,因此无法安装绝对不是什么大问题。
如果一个新/dev/sdX
出现然后您可以读取(或至少尝试读取)驱动器,并读取 SMART 信息并尝试测试。由于它是 USB 驱动器,因此在将其连接到新设备/dev/sdX
(X 可以是任意字母) 应该会出现,查看dmesg
& /var/log/syslog 了解信息(特别是如果没有新设备时的错误 - 如果没有设备可能无法读取任何内容,甚至更难尝试)。
如果您可以从/dev/sdd
设备读取任何内容,那么看起来好多了ddrescue
(在名为 gddrescue 的包中)或testdisk
/photorec
或某些东西可以获取一些数据。可能还需要 root 权限sudo
。例如sudo testdisk /dev/sdd
或sudo photorec /dev/sdd
。
一个非常基本的“读一点”的方式
dd
是:sudo dd if=/dev/sdd of=output-file bs=1M count=1
从驱动器读取第一个 M (=1024*1024 字节),并且
bs=
每个“块”中要读取/写入多少字节count=
是需要采取的“块”的数量skip=N
在输入开始时跳过 N 个 ibs 大小的块- 只是不要混淆
of=
,它会覆盖几乎所有内容!
要跳过 1000M 然后读取 1M,请使用:
sudo dd if=/dev/sdd of=output-file bs=1M skip=1000 count=1
数据恢复
看https://wiki.archlinux.org/index.php/file_recovery和/或https://help.ubuntu.com/community/DataRecovery欲了解更多信息,可以参与。gddrescue 有一个很棒的(但很枯燥)GNU ddrescue 手册并在网上搜索更多信息。
testdisk
在我看来,它们photorec
最容易使用,我甚至不用 foremost 或 scalpel。它们的主页上有很好的指南,请参阅TestDisk 的&TestDisk 详细步骤和PhotoRec 的&PhotoRec 详细步骤。如果 testdisk 可以读取现有文件,那么复制它们可能相当容易,photorec 不会保存原始文件名或目录结构。
有时尝试读取时会出现错误,读取可能会失败,错误消息可能会泛滥dmesg
,然后 /var/log/syslog,我喜欢保持终端打开运行dmesg -w
和/或tail -f /var/log/syslog
查看新错误。如果您在另一个设备上有空间,使用 gddrescue 进行完整复制可能是一个好主意,它会尝试跳过错误扇区并首先读取所有“好东西”,然后稍后再次尝试读取错误(或“向后”读取、跳转等)。
聪明的 &smartctl
您可以使用smartctl
(在 smartmontools 包中)读取 SMART 数据并找出错误,甚至可以运行新的测试(但如果驱动器出现故障,更多的测试可能会耗尽其剩余寿命,因此首先备份可能是明智的)。以下是我的“笔记” smartctl
:
生成报告的命令:
sudo smartctl --all /dev/sdX
- 打印所有 SMART 信息sudo smartctl --xall /dev/sdX
- 打印所有 SMART 和非 SMART 信息
如果您正在跟踪更改,则可以时不时地运行测试,并将其保存到以日期命名的文件中:
sudo smartctl --xall /dev/sdX > $(date +"%Y-%m-%d_%H.%M")-sdX-smart-xall
仅获取“统计数据”:
sudo smartctl -A /dev/sdX > $(date +"%Y-%m-%d_%H.%M")-sdX-smart-A
测试
-t TYPE
使用TYPE 为以下之一的选项:
短的可能~2分钟
传输可能~5分钟
长的可能~55分钟
离线可能~73分钟(4380秒)
[这些时间是来自旧驱动器的示例]
但并非所有驱动器都支持所有测试。
该-c
选项有一个“自检执行状态:”行,告知当前测试的剩余百分比(如果测试正在运行)。
要查看状态可以使用:
sudo smartctl -c /dev/sda | grep "^Self" -A1
答案2
有可用的服务可以为您恢复硬盘,但它们通常很昂贵,因此在考虑此选项之前,您需要考虑数据的价值。谷歌搜索“数据恢复服务”。
一些当地的计算机技术人员可以恢复损坏的硬盘,有时他们提供与昂贵的地方相同类型的法医恢复(但质量较低或成功率较低)。
我知道技术人员会使用类似 HD 的电路来启动 HD。现在这种电路能正常工作的可能性很小,因为电路板通常根据电机进行校准。