硬盘没电了?

use*_*ful 5 hard-drive

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

fdisk -l 和 testdisk 都没有显示这个 Seagate 驱动器,尽管 gno​​me-disk-utility 显示它说“没有媒体”。这是朋友的 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
Run Code Online (Sandbox Code Playgroud)

.

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
Run Code Online (Sandbox Code Playgroud)

.

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
Run Code Online (Sandbox Code Playgroud)

.

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
Run Code Online (Sandbox Code Playgroud)

.

[ 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
Run Code Online (Sandbox Code Playgroud)

编辑:moo 询问的更多信息(虽然 smart 已经在初始帖子中,但我重新发布并添加了错误代码返回):

sudo fdisk -l /dev/sdc
~$ echo $?
0
Run Code Online (Sandbox Code Playgroud)

.

~$ 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
Run Code Online (Sandbox Code Playgroud)

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

moo*_*moo 5

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

假设:

  • 您正在从安装了 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
    
    Run Code Online (Sandbox Code Playgroud)
  • 使用 Gparted 获得的分区布局的屏幕截图对诊断很有用。在 ubuntu 上,我相信您可以使用以下命令安装 gparted:

    sudo apt-get install gparted
    
    Run Code Online (Sandbox Code Playgroud)
  • 您可以提供的有关硬盘驱动器发出的声音的其他信息对诊断很有用:磁盘旋转、使用 dd 从磁盘读取时的磁盘活动、硬盘驱动器发出的重复点击声。

建议:

  • 首先使用ddrecueddrescue 手册页)或dd对 HDD 进行映像。根据 HDD 的问题,您花在它上面的时间越长,您丢失所有数据的风险就越大。理想情况下,您希望专注于对其进行成像,然后直接在 HDD 的图像上进行恢复。对于机械损坏的 HDD 尤其如此。您可以使用以下命令在 ubuntu 上安装 ddrescue:

    sudo apt-get install gddrescue
    
    Run Code Online (Sandbox Code Playgroud)
  • 如果您必须在不创建映像的情况下尝试恢复,则首先尝试将分区挂载到 HDD 上为只读

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

    sudo testdisk /dev/sdc
    
    Run Code Online (Sandbox Code Playgroud)
  • 如果您认为这是固件问题,请尝试使用适用于您硬盘的固件更新您的硬盘:http : //knowledge.seagate.com/articles/en_US/FAQ/213891en。您可以使用 ISO 或 Windows 可执行文件来更新您的固件(另请参阅同一页面上的说明)。

笔记:

  • fdisk只读取位于驱动器开头的分区表(前 512 字节内)。如果它没有返回任何信息,则意味着您的分区表不可读(因为它已被清除干净或因为硬件问题而无法读取)

  • ddrecuedd做几乎相同的事情。他们从磁盘中逐块读取。ddrescue 对恢复很有用,因为它可以比 dd 更受控制。例如,您可以定制要首先恢复的磁盘区域,并忽略导致硬盘驱动器锁定的坏区域。

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