硬盘坏了吗?


4

嗨@moo @Elder Geek @heynnema(欢迎其他任何人),我在聊天室中发布了一个问题

尽管gnome-disk-utility将其显示为“ No media”,但fdisk -l和testdisk均未显示该Seagate驱动器。这是朋友的Windows(7?)。

ls /dev/disk/by-id/*  (my own usual uuids replaced by ... below)    
...        ...          wwn-0x5000c5001ef815d2
...  ata-ST3750528AS_6VP2NFKJ    wwn-0x5000cca37ce23cbb
...  ...  wwn-0x5000cca37ce23cbb-part1
...  ...      wwn-0x5000cca37ce23cbb-part2
...  ...         wwn-0x5000cca37ce23cbb-part3
...                   ...  wwn-0x5000cca37ce23cbb-part4
...             wwn-0x50000f001b110412
...                wwn-0x50000f001b110412-part1

ls /dev/disk/by-uuid/
09ecdff0-44fe-437e-8063-deabc6feb00e
7323407c-7d0b-4acd-8299-c8f3787111ff
a434a28e-a4b9-4db0-b40e-b93010ed6ceb
66392631-7c4f-4773-8614-4c5ea0913890
7b9d93fc-6898-4085-8117-7f1c76fd8a28
e80baa09-5e4b-4c29-9d0b-bc265f8384f4

cat /etc/fstab
UUID=09ecdff0-44fe-437e-8063-deabc6feb00e /               ext4    errors=remount-ro 0       1
UUID=e80baa09-5e4b-4c29-9d0b-bc265f8384f4 /home           ext4    defaults        0       2
UUID=7323407c-7d0b-4acd-8299-c8f3787111ff /srv            ext4    defaults        0       2
UUID=7b9d93fc-6898-4085-8117-7f1c76fd8a28 /tmp            ext4    defaults        0       2
UUID=a434a28e-a4b9-4db0-b40e-b93010ed6ceb /var            ext4    defaults        0       2
UUID=66392631-7c4f-4773-8614-4c5ea0913890 none            swap    sw              0       0

smartctl -a /dev/sdc
smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.13.0-110-generic] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org
Smartctl open device: /dev/sdc failed: Permission denied
~$ sudo smartctl -a /dev/sdc
[sudo] password for me: 
smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.13.0-110-generic] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Family:     Seagate Barracuda 7200.12
Device Model:     ST3750528AS
Serial Number:    6VP2NFKJ
LU WWN Device Id: 5 000c50 01ef815d2
Firmware Version: CC44
Rotation Rate:    7200 rpm
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS T13/1699-D revision 4
SATA Version is:  SATA 2.6, 3.0 Gb/s
Local Time is:    Sat Mar  4 17:52:16 2017 CET
==> WARNING: A firmware update for this drive may be available,
see the following Seagate web pages:
http://knowledge.seagate.com/articles/en_US/FAQ/207931en
http://knowledge.seagate.com/articles/en_US/FAQ/213891en
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
Read SMART Data failed: scsi error aborted command
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: UNKNOWN!
SMART Status, Attributes and Thresholds cannot be read.
Read SMART Log Directory failed: scsi error aborted command
Read SMART Error Log failed: scsi error aborted command
Read SMART Self-test Log failed: scsi error aborted command
Selective Self-tests/Logging not supported

[ 2483.391005] ata5.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
[ 2483.391014] ata5.00: irq_stat 0x40000001
[ 2483.391019] ata5.00: failed command: FLUSH CACHE
[ 2483.391029] ata5.00: cmd e7/00:00:00:00:00/00:00:00:00:00/a0 tag 19
[ 2483.391029]          res 51/04:00:00:00:00/00:00:00:00:00/a0 Emask 0x1 (device error)
[ 2483.391034] ata5.00: status: { DRDY ERR }
[ 2483.391038] ata5.00: error: { ABRT }
[ 2483.424566] ata5.00: configured for UDMA/133 (device error ignored)
[ 2483.424578] ata5.00: device reported invalid CHS sector 0
[ 2483.424619] end_request: I/O error, dev sdc, sector 0
[ 2483.424659] ata5: EH complete

编辑:更多信息,请向moo询问(尽管smart已在初始发布中,但我重新发布并添加了错误代码返回):

sudo fdisk -l /dev/sdc
~$ echo $?
0

~$ sudo smartctl -a /dev/sdc
smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.13.0-112-generic] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Seagate Barracuda 7200.12
Device Model:     ST3750528AS
Serial Number:    6VP2NFKJ
LU WWN Device Id: 5 000c50 01ef815d2
Firmware Version: CC44
Rotation Rate:    7200 rpm
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS T13/1699-D revision 4
SATA Version is:  SATA 2.6, 3.0 Gb/s
Local Time is:    Thu Mar  9 10:55:14 2017 CET

==> WARNING: A firmware update for this drive may be available,
see the following Seagate web pages:
http://knowledge.seagate.com/articles/en_US/FAQ/207931en
http://knowledge.seagate.com/articles/en_US/FAQ/213891en

SMART support is: Available - device has SMART capability.
SMART support is: Enabled

Read SMART Data failed: scsi error aborted command

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: UNKNOWN!
SMART Status, Attributes and Thresholds cannot be read.

Read SMART Log Directory failed: scsi error aborted command

Read SMART Error Log failed: scsi error aborted command

Read SMART Self-test Log failed: scsi error aborted command

Selective Self-tests/Logging not supported

~$ echo $?
4

。[编辑]我放弃了,把车还给了我的朋友。使用SeaChest_Configure -d / dev / sg2 --setMaxLBA 1481663420重置MaxLBA字段失败。也许我可以在通过串行连接重置驱动器上的智能分区方面获得成功的帮助,但是目前我没有串行适配器,这让我受够了,而且一些网站说这种方式仅适用于7000.11驱动器(不是适用于7200.12)。虽然谢谢您的帮助。再见。


系统是赢7,您说呢?
George Udosen '17

1
嗨,您好!突如其来,只是问..您是否曾经尝试过Windows的 chkdsk实用程序进行修复?在将磁盘连接到任何Linux / Unix系统之前,我先尝试使用内置实用程序。
AzkerM

我需要一个胜利盒来做到这一点。目的只是恢复数据,所以我通常的方式就可以完成工作(我的ubuntu总是有sata +电源电缆从外面出来,等待2.5 / 3.5英寸磁盘出现问题)。我什至考虑过dd命令,但是高得多,我没有足够的内部空间可用,这次磁盘将无法挂载:(
有用

抱歉,smartctl请求看到“ / dev / sdc失败:权限被拒绝”,错过了下一个命令。Ok添加了两个输出命令(parted和dd)。您知道设备是否具有MSDOS分区或GPT吗?您还可以发送有关Gparted中的布局外观的图片吗?您是否尝试过使用Testdisk?
moo

嗨 如我所说,gparted和testdisk都不显示磁盘。在短时间内,这个想法浮现在我的脑海,以在Web上搜索特定于该品牌/型号的问题:宾果游戏,希捷7200.12(如.11)似乎存在固件错误。我尝试获得有关使用RS232访问磁盘的帮助。
非常有用

Answers:


4

注意:您需要为任何人提供更多信息,以便能够为您提供更多帮助!

假设:

  • 您正在从安装了Windows 7操作系统的HDD中恢复数据,例如,其上可能具有NTFS分区。

  • 您正在尝试在Ubuntu系统上恢复此数据

您可以提供的其他信息:

  • 假设相关硬盘为/ dev / sdc,请尝试使用以下命令的输出来更新您的问题(运行命令时未使用sudo!):

    sudo fdisk -l /dev/sdc
    sudo smartctl -a /dev/sdc
    sudo parted /dev/sdc print
    sudo dd if=/dev/sdc bs=512 count=2 | xxd
    
  • 使用Gparted获得的分区布局的屏幕快照对诊断很有用。我相信在ubuntu上,您可以使用以下方法安装gparted:

    sudo apt-get install gparted
    
  • 您可以提供的有关硬盘驱动器发出的声音的其他信息将有助于诊断:磁盘旋转,使用dd读取磁盘时的磁盘活动,反复单击硬盘驱动器的声音。

建议:

  • 首先使用ddrecueddrescue手册页)或dd对HDD进行映像。取决于硬盘的问题,您花费的时间越多,则打开硬盘的时间就越有可能丢失所有数据。理想情况下,您要专注于对其进行成像,然后直接对HDD的映像进行恢复。对于机械损坏的HDD尤其如此。您可以使用以下命令在ubuntu上安装ddrescue:

    sudo apt-get install gddrescue
    
  • 如果必须在不创建映像的情况下尝试恢复,请首先尝试以只读方式在HDD上安装分区

    mkdir /tmp/mnt1 /tmp/mnt2
    sudo mount -o ro /dev/sdc1 /tmp/mnt1
    sudo mount -o ro /dev/sdc2 /tmp/mnt2
    
  • 尝试使用磁盘恢复工具(如Testdisk)

    sudo testdisk /dev/sdc
    
  • 如果您认为这是固件问题,请尝试使用驱动器上可用的固件更新驱动器,网址为:http : //knowledge.seagate.com/articles/en_US/FAQ/213891en。您可以使用ISO或Windows可执行文件来更新固件(另请参见同一页上的说明)。

笔记:

  • fdisk仅读取位于驱动器开头(在前512个字节内)的分区表。如果它不返回任何信息,则表明您的分区表不可读(由于已被清除干净或由于硬件问题而无法读取)

  • ddrecuedd做几乎相同的事情。他们从磁盘上逐块读取。ddrescue对于恢复非常有用,因为它可以控制的范围比dd还多。例如,您可以定制要首先恢复磁盘上的哪些区域,而忽略导致硬盘驱动器锁定的坏区域。

  • 始终使用SATA连接器直接将HDD连接到主板。请勿使用USB转Sata适配器通过USB连接硬盘。


1
仅供参考,您在回答问题。许多人对此表示反对,并可能导致投票不足(没人喜欢)。我建议您编辑答案以从中删除所有查询。关于此特定主题的一些很好的信息可以在这里找到,更一般的在这里
Elder Geek

@ ElderGeek谢谢并指出。会做出改变。我理解为什么会对此皱眉,我通常使用评论来提出问题,但是它只是作为一个问题出现,因为它在有关提供更多信息的部分中。
moo

这是一个进步!:-)
怪杰长老

1

这听起来很奇怪,我可能会为此获得几张反对票(请不要),但是我是一个已经存在了一段时间的老计时器了,我将告诉您一些我们过去尝试使用的小技巧,它为我们保存了一些数据...

如果读/写头粘在磁盘上,驱动器甚至不会旋转(这也可能是驱动电动机损坏)。拿下裸驱动器,然后围绕驱动器电机轴快速旋转驱动器。如果正在发生这种情况,必须快速旋转以打破“粘滞”。重试驱动器。

您可以尝试的另一件事...

将裸驱动器放入冰柜,是的,放入冰柜。将其封闭在一个拉链锁袋中,以防潮。清除袋子中的多余空气。冷冻技巧适用于许多其他故障模式,包括不良的焊点,不良的电路蚀刻,一旦达到温度即会失效的芯片,电动机和数据头执行器的轴承等。

首先尝试10-15分钟。之后,将其从冰箱中取出,然后立即将驱动器重新连接至计算机,并查看是否可以使用任何可用的方法(包括其他答案中所述的方法)恢复数据。

让我们知道它是否对您有用。


1
您不是这里唯一的老计时器,而且我已经看到很多方法在很多年前都已奏效,当时轴被卡住并且驱动器不会旋转。由于流体轴承的普及,我认为现在这种情况很少见。就我所知,希捷早在制造该驱动器之前就已经采用了流体轴承技术(OP并没有将粘着性视为一个问题。所有这些都考虑到了我不会这样做的……
极客长老

哦,天哪。。。我陪伴很好:-)冰柜技巧不是针对粘贴问题,而是其他问题。
heynnema

我也是老手,几年前我用幽灵来检索数据时就已经做到了这一点(冷冻技巧):尽管我选择了“忽略错误”,但由于“太多错误”而失败,但是当我放置计算机时成功了(和我自己)在寒冷的冬天在外面。在这两种情况下,电动机都没有卡住,但这一次是一个非常不同的问题,肯定是“固件”错误。
有用的

@heynnema您谈到的其他问题也许是弱磁场?
年长者怪杰

@ElderGeek冷冻特技为其他故障模式的主机,但为包括不良焊点,坏电路蚀刻,因为它们达到温度,一旦失败的芯片,在马达轴承和数据头的致动器,等等
heynnema

1

如果在驱动器加电时听到刮擦声,则磁头已经影响了磁盘,并且恢复很可能是丢失的原因。

如果您在这里反复听到喀哒声,则意味着驱动器在读取特定扇区时遇到问题,正在重试。您正在听到一头又一头的寻求。恢复是可能的。

如果您只听到盘片旋转的呼hear声,则可以恢复。

如果根本听不到任何声音(例如,驱动器没有旋转),则可以尝试尝试启动主轴或按照Heynnema答案中的说明冻结驱动器,如果成功,则从此处继续。

如果问题设备是:

Model Family:     Seagate Barracuda 7200.12
Device Model:     ST3750528AS
Serial Number:    6VP2NFKJ

可能是由于固件错误或升级固件失败而引起的

您可以使用以下命令确定驱动器的固件版本sudo smartctl -x /dev/sdd | grep -i firmware(将/ dev / sdd 更改为有问题的设备。)

编辑:Heynnema提到的AS 冻结驱动器可能有助于您完成此任务。实际上,如果您可以将温度降低到大约-20摄氏度,则实际上可以提高磁场强度,从而提高从弱扇区恢复数据的几率。

根据发生的情况,数据恢复工作可能会丢失。不管发生了什么,我都会尝试使用以下方式将故障驱动器映像到映像文件:ddrescue

预备:

您将需要另一个具有格式化分区的驱动器,该分区具有足够的可用空间来容纳整个750GB映像。从现在开始,我将其称为恢复分区。注意:您必须在此恢复分区上利用一个文件系统,该文件系统能够容纳750 GB的文件(FAT16或FAT 32将不支持)ext2 / 3/4优先

您将需要启用Universe存储库

您需要为您的Ubuntu版本安装gddrescue软件包,其中包含ddrescueddrescuelog

通过发出命令 sudo apt-get install gddrescue

创建一个目录以使用命令sudo mkdir /mnt/recover安装恢复分区,然后将恢复分区安装到/ mnt / recover,mount device dir 其中device是您的恢复分区,dir是您的安装点。

示例:sudo mount /dev/sdX /mnt/recover然后使用命令转到该目录cd /mnt/recover

创建故障驱动器的映像

发出命令

$ sudo ddrescue -r 3 源目标日志

其中source是源驱动器,例如/ dev / sdc(可能有所不同),而target是目标映像文件,log是跟踪进度的日志文件。

例: sudo ddrescue -r 3 /dev/sdc recovery.img recovery.log

-r 3开关告诉系统重试3次,然后放弃失败的传输。

您还可以使用-b n(扇区大小选项)

-b, --sector-size=<bytes>
              sector size of input device [default 512]

-c n(群集大小选项)

-c, --cluster-size=<sectors>
              sectors to copy at a time [128]

如果您愿意的话(个人而言,我的默认设置很不错)

ddrecover将拆分无法读取的块,以尝试恢复尽可能多的数据。请注意,如果驱动器状况不佳,此过程可能会花费很长时间。(您可以通过减少上述重试次数来减少时间和效率。

分析并挂载映像

这里有许多方法可以做到这一点

根据需要执行数据恢复

testdisk为这个不错的选择有使用testdisk了详细的解答这里

如果对此内容(或我的其他答案)不清楚,请随时给我留言,我将尽我所能进行澄清。

资料来源:

http://knowledge.seagate.com/articles/zh_CN/FAQ/213891zh-CN

http://tuhsphysics.ttsd.k12.or.us/Research/IB09/HougBlat/index.htm

如何启用“ Universe”存储库?

http://packages.ubuntu.com/search?keywords=gddrescue&searchon=names&suite=all§ion=all

从整个磁盘(设备)的映像挂载单个分区

安装时断电后分区消失


做完了 现在读ddrescue的人...
有用

我只是想念它,还是您创建了/ mnt / recover并且没有在该目录上挂载什么?:-)
heynnema

希望早午餐能幸存下来!这sudo ddrescue -r 3 /dev/sdc recovery.img recovery.log还需要改变吗?
heynnema

@heynnema一切都很好。不,尽管这些步骤需要稍作调整,但无需更改该命令行。已修复。
年长者极客

@Elder Geek,您不是按照相反的顺序写这些步骤,即在ddrescue创建之前挂载映像吗?还是我必须挂载/ dev / sdc以便ddrescue可以作为infile参数提供/ mount / recover?现在,在阅读了一下ddrescue man并更深入地了解了ddrescue信息之后,并且知道我不知道驱动器的确切大小(750GB)之后,我在了另一个磁盘中腾出了空间(gparted中未使用= 753.19GiB,而磁盘中free = 809GB) 。同样,知道磁盘报告的故障驱动器没有大小,该命令如何处理:sudo ddrescue -d -C -T 1 -s 751G / dev / sdg / srv / image ddrelog?(是设备从SDC改变为SDG)
有用

0

我无法直接解决您的问题,但我可以为您指出正确的方向。

您听说过“菱铁矿”吗?我使用了它(尽管适用于Windows),并且对我有用(显然它也适用于linux)。

https://www.grc.com/sr/spinrite.htm

(我绝不隶属于这家公司,除非您对它不了解,否则可能会感到无所适从,否则最终将无法解决您的问题)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.