¿Cómo reparar una partición HFS + dañada de un disco duro dañado?

8

Tengo el disco Mac OS X de un amigo que viene con una HFS+partición. Se supone que debo recuperar los datos personales de este disco, y todavía no estoy seguro de si el sistema de archivos está dañado o si el disco está muriendo).


Antecedentes : los síntomas completos son los siguientes. Linux reconoce el disco e incluso se monta automáticamente (usando Xfceaquí):

liv@liv-HP-Compaq-dc7900:~$ cat /etc/mtab | grep -i hfs
/dev/sdb2 /media/Macintosh\040HD hfsplus ro,nosuid,nodev,uhelper=udisks 0 0

El núcleo informa lo siguiente:

[ 4382.681310] usb 2-5: USB disconnect, device number 2
[ 4390.104044] usb 2-5: new high-speed USB device number 3 using ehci_hcd
[ 4390.259178] Initializing USB Mass Storage driver...
[ 4390.259983] scsi6 : usb-storage 2-5:1.0
[ 4390.260077] usbcore: registered new interface driver usb-storage
[ 4390.260079] USB Mass Storage support registered.
[ 4391.260684] scsi 6:0:0:0: Direct-Access     ASMT     2105             0    PQ: 0 ANSI: 6
[ 4391.261346] sd 6:0:0:0: Attached scsi generic sg2 type 0
[ 4391.494924] sd 6:0:0:0: [sdb] 488397168 512-byte logical blocks: (250 GB/232 GiB)
[ 4391.495668] sd 6:0:0:0: [sdb] Write Protect is off
[ 4391.495672] sd 6:0:0:0: [sdb] Mode Sense: 43 00 00 00
[ 4391.496551] sd 6:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 4391.560091]  sdb: sdb1 sdb2
[ 4391.565039] sd 6:0:0:0: [sdb] Attached SCSI disk
[..]
[10376.614742] hfs: Filesystem was not cleanly unmounted, running fsck.hfsplus is recommended.  mounting read-only.
[10380.531230] sd 6:0:0:0: [sdb] Unhandled sense code
[10380.531234] sd 6:0:0:0: [sdb]  Result: hostbyte=invalid driverbyte=DRIVER_SENSE
[10380.531239] sd 6:0:0:0: [sdb]  Sense Key : Medium Error [current] 
[10380.531243] sd 6:0:0:0: [sdb]  Add. Sense: Unrecovered read error
[10380.531253] sd 6:0:0:0: [sdb] CDB: Read(10): 28 00 00 1e 22 e8 00 00 08 00
[10380.531259] end_request: critical target error, dev sdb, sector 1975016
[10380.531264] Buffer I/O error on device sdb2, logical block 195672
[10384.353981] sd 6:0:0:0: [sdb] Unhandled sense code
[10384.353985] sd 6:0:0:0: [sdb]  Result: hostbyte=invalid driverbyte=DRIVER_SENSE
[10384.353990] sd 6:0:0:0: [sdb]  Sense Key : Medium Error [current] 
[10384.353995] sd 6:0:0:0: [sdb]  Add. Sense: Unrecovered read error
[10384.354004] sd 6:0:0:0: [sdb] CDB: Read(10): 28 00 00 1e 22 e8 00 00 08 00
[10384.354011] end_request: critical target error, dev sdb, sector 1975016
[10384.354015] Buffer I/O error on device sdb2, logical block 195672

Aquí hay una salida relevante de lshw:

 *-scsi
      physical id: 3
      bus info: usb@2:5
      logical name: scsi7
      capabilities: emulated scsi-host
      configuration: driver=usb-storage
    *-disk
         description: SCSI Disk
         product: 2105
         vendor: ASMT
         physical id: 0.0.0
         bus info: scsi@7:0.0.0
         logical name: /dev/sdb
         version: 0
         serial: 00000000000000000000
         size: 232GiB (250GB)
         capabilities: gpt-1.00 partitioned partitioned:gpt
         configuration: ansiversion=6 guid=6b43402b-9887-4a33-a329-9801b59ccdc7
       *-volume:0
            description: Windows FAT volume
            vendor: BSD  4.4
            physical id: 1
            bus info: scsi@7:0.0.0,1
            logical name: /dev/sdb1
            version: FAT32
            serial: 70d6-1701
            size: 199MiB
            capacity: 199MiB
            capabilities: boot fat initialized
            configuration: FATs=2 filesystem=fat label=EFI name=EFI System Partition
       *-volume:1
            description: Apple HFS partition
            vendor: Mac OS X (fsck)
            physical id: 2
            bus info: scsi@7:0.0.0,2
            logical name: /dev/sdb2
            version: 4
            serial: d9a741cc-8313-cc78-0000-000000800000
            size: 232GiB
            capabilities: journaled bootable osx hfsplus initialized
            configuration: boot=osx checked=2009-09-24 02:29:07 created=2009-09-23 17:29:07 filesystem=hfsplus lastmountedby=fsck modified=2013-11-03 01:02:00 name=Customer state=unclean

Cuando abro la unidad Thunar, recibo el siguiente mensaje de error: "Failed to open directory "Macintosh HD". Error when getting information for file '/media/Macintosh HD/.journal': Input/output error."(Puedo acceder al punto de montaje y algunos subdirectores, si los uso emelFM2).

ingrese la descripción de la imagen aquí

Si intento lsen el punto de montaje, obtengo un montón de errores de E / S:

liv@liv-HP-Compaq-dc7900:/media/Macintosh HD$ ls -lha
ls: cannot access .hotfiles.btree: Input/output error
ls: cannot access .journal: Input/output error
ls: cannot access .journal_info_block: Input/output error
ls: cannot access .Spotlight-V100: Input/output error
ls: cannot access .Trashes: Input/output error
ls: cannot access home: Input/output error
ls: cannot access libpeerconnection.log: Input/output error
ls: cannot access net: Input/output error
ls: reading directory .: Input/output error
total 20M
drwxrwxr-t 1 root   80   35 Oct 13 22:56 .
drwxr-xr-x 3 root root 4.0K Jan 16 21:09 ..
drwxrwxr-x 1 root   80   53 Oct 18 22:07 Applications
drwxr-xr-x 1 root root   39 Sep 26 00:51 bin
drwxrwxr-t 1 root   80    2 Jul  9  2009 cores
dr-xr-xr-x 1 root root    2 Jul  9  2009 dev
-rw-rw-r-- 1  501   80  16K Sep  8 14:19 .DS_Store
lrwxr-xr-x 1 root root   11 Sep 24  2009 etc -> private/etc
---------- 1 root   80    0 Jul  9  2009 .file
drwx------ 1   99   99  246 Nov  3 00:29 .fseventsd
lrwxr-xr-x 1 root   80   60 Mar 20  2010 Guides de l’utilisateur et informations -> /Library/Documentation/User Guides and Information.localized
dr-xr-xr-t 1 root root    2 Sep 24  2009 .HFS+ Private Directory Data?
d????????? ? ?    ?       ?            ? home
-????????? ? ?    ?       ?            ? .hotfiles.btree
-????????? ? ?    ?       ?            ? .journal
-????????? ? ?    ?       ?            ? .journal_info_block
-????????? ? ?    ?       ?            ? libpeerconnection.log
drwxrwxr-t 1 root   80   58 Mar 27  2013 Library
drwxrwxrwt 1 root root    4 Sep 18  2012 lost+found
-rw-r--r-- 1 root root  20M Jun  8  2011 mach_kernel
d????????? ? ?    ?       ?            ? net
drwxr-xr-x 1 root root    2 Jul  9  2009 Network
drwxr-xr-x 1  501   80    3 Oct 26  2010 opt
drwxr-xr-x 1 root root    6 Sep 24  2009 private
drwxr-xr-x 1 root root   67 Sep 26 00:52 sbin
d????????? ? ?    ?       ?            ? .Spotlight-V100
drwxr-xr-x 1 root root    4 Jul  3  2011 System
lrwxr-xr-x 1 root root   11 Sep 24  2009 tmp -> private/tmp
d????????? ? ?    ?       ?            ? .Trashes
drwxr-xr-x 1 root root    2 May 18  2009 .vol
-rw-r--r-- 1  501   80  70K Jun 26  2013 .VolumeIcon.icns

Por último, ya intenté instalar hfsprogsy ejecutar fsck.hfsplus, pero sin mucha suerte:

root@liv-HP-Compaq-dc7900:/home/liv# fsck.hfsplus -q /dev/sdb2
** /dev/sdb2
QUICKCHECK ONLY; FILESYSTEM DIRTY

root@liv-HP-Compaq-dc7900:/home/liv# fsck.hfsplus -d /dev/sdb2
** /dev/sdb2
    Using cacheBlockSize=32K cacheTotalBlock=1024 cacheSize=32768K.
** Checking HFS Plus volume.
   Invalid B-tree node size
(8, 0)
** Volume check failed.
volume check failed with error 7 
    volume type is pure HFS+ 
    primary MDB is at block 0 0x00 
    alternate MDB is at block 0 0x00 
    primary VHB is at block 2 0x02 
    alternate VHB is at block 487725342 0x1d12191e 
    sector size = 512 0x200 
    VolumeObject flags = 0x07 
    total sectors for volume = 487725344 0x1d121920 
    total sectors for embedded volume = 0 0x00 

Pregunta : De los mensajes de error anteriores, ¿está dañado el sistema de archivos o falla la unidad? ¿Cómo puedo reparar el sistema de archivos dañado? Y si ese no es el problema, ¿cómo puedo recuperar los datos del usuario de un disco que falla parcialmente?


ACTUALIZACIÓN1 :

Dada la información útil que obtuve de ¿Qué opción 'smartctl -d' debería usar en este disco duro: 'scsi' o 'ata'? , Ahora logré ejecutar con éxito smartctlen el disco duro:

root@liv-HP-Compaq-dc7900:/home/liv# smartctl -d sat -H -i -c -A -l error -l selftest -l selective '/dev/sdb'
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.2.0-57-generic] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Device Model:     TOSHIBA MK2555GSXF
Serial Number:    10J9SA69S
LU WWN Device Id: 5 000039 245a067fd
Firmware Version: FH205B
User Capacity:    250,059,350,016 bytes [250 GB]
Sector Size:      512 bytes logical/physical
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   8
ATA Standard is:  Exact ATA specification draft version not indicated
Local Time is:    Fri Jan 17 18:02:43 2014 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
[..]

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000b   100   100   050    Pre-fail  Always       -       0
  2 Throughput_Performance  0x0005   100   100   050    Pre-fail  Offline      -       0
  3 Spin_Up_Time            0x0027   100   100   001    Pre-fail  Always       -       1031
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       16237
  5 Reallocated_Sector_Ct   0x0033   100   100   050    Pre-fail  Always       -       18
  7 Seek_Error_Rate         0x000b   100   100   050    Pre-fail  Always       -       0
  8 Seek_Time_Performance   0x0005   100   100   050    Pre-fail  Offline      -       0
  9 Power_On_Hours          0x0032   081   081   000    Old_age   Always       -       7987
 10 Spin_Retry_Count        0x0033   253   100   030    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       5274
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       1119
192 Power-Off_Retract_Count 0x0032   084   084   000    Old_age   Always       -       8196
193 Load_Cycle_Count        0x0032   037   037   000    Old_age   Always       -       635340
194 Temperature_Celsius     0x0022   100   100   000    Old_age   Always       -       25 (Min/Max 7/49)
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       3
197 Current_Pending_Sector  0x0032   100   100   000    Old_age   Always       -       124
198 Offline_Uncorrectable   0x0030   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   253   000    Old_age   Always       -       0
220 Disk_Shift              0x0002   100   100   000    Old_age   Always       -       57
222 Loaded_Hours            0x0032   087   087   000    Old_age   Always       -       5415
223 Load_Retry_Count        0x0032   100   100   000    Old_age   Always       -       0
224 Load_Friction           0x0022   100   100   000    Old_age   Always       -       0
226 Load-in_Time            0x0026   100   100   000    Old_age   Always       -       346
240 Head_Flying_Hours       0x0001   100   100   001    Pre-fail  Offline      -       0
254 Free_Fall_Sensor        0x0032   100   100   000    Old_age   Always       -       8107

SMART Error Log Version: 1
ATA Error Count: 1210 (device log contains only the most recent five errors)
[..]

Error 1210 occurred at disk power-on lifetime: 7984 hours (332 days + 16 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 08 e8 22 1e 40  Error: UNC 8 sectors at LBA = 0x001e22e8 = 1975016

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  25 da 08 e8 22 1e 40 00      00:08:36.484  READ DMA EXT
  25 da 08 e8 22 1e 40 00      00:08:32.637  READ DMA EXT
  25 da 08 00 66 22 40 00      00:08:32.637  READ DMA EXT
  25 da 08 f8 65 22 40 00      00:08:32.625  READ DMA EXT
  25 da 08 50 c3 28 40 00      00:08:32.625  READ DMA EXT

[..]

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]


SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

No estoy seguro de cómo analizar esta salida, pero dos cosas se me ocurren:

  • SMART overall-health self-assessment test result: PASSED
  • ATA Error Count: 1210 (device log contains only the most recent five errors)

Entonces, ¿qué tan malo es? ¿Y cómo debo proceder?


ACTUALIZACIÓN2 :

Siguiendo las sugerencias en los comentarios, utilicé un Mac OS X para ejecutar diskutil verifyVolume:

mac:~ admin$ diskutil list
[..]
/dev/disk1
#:                       TYPE NAME                    SIZE       IDENTIFIER
0:      GUID_partition_scheme                        *250.1 GB   disk1
1:                        EFI                         209.7 MB   disk1s1
2:                  Apple_HFS Macintosh HD            249.7 GB   disk1s2

mac:~ admin$ diskutil verifyVolume /dev/disk1s2
Started filesystem verification on disk1s2 Macintosh HD
Checking Journaled HFS Plus volume
Invalid B-tree node size
The volume Macintosh HD could not be verified completely
Error: -9957: Filesystem verify or repair failed
Underlying error: 8: POSIX reports: Exec format error

Y fsck:

mac:~ admin$ fsck -d /dev/disk1s2 
** /dev/rdisk1s2
BAD SUPER BLOCK: MAGIC NUMBER WRONG

LOOK FOR ALTERNATE SUPERBLOCKS? [yn] y

SEARCH FOR ALTERNATE SUPER-BLOCK FAILED. YOU MUST USE THE
-b OPTION TO FSCK TO SPECIFY THE LOCATION OF AN ALTERNATE
SUPER-BLOCK TO SUPPLY NEEDED INFORMATION; SEE fsck(8).

Entonces, ¿qué tan malos son estos mensajes de error? ¿El brindis de la unidad?


ACTUALIZACIÓN3 :

Jugué un poco más smartctly me parece (¡pero por favor confirme!) Que la unidad es definitivamente tostada:

# 'smartctl' -d sat,16 -H -i -c -A -l error -l selftest -l selective '/dev/sdb'

smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.2.0-57-generic] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Device Model:     TOSHIBA MK2555GSXF
Serial Number:    10J9SA69S
LU WWN Device Id: 5 000039 245a067fd
Firmware Version: FH205B
User Capacity:    250,059,350,016 bytes [250 GB]
Sector Size:      512 bytes logical/physical
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   8
ATA Standard is:  Exact ATA specification draft version not indicated
Local Time is:    Mon Jan 27 15:20:57 2014 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: FAILED!
Drive failure expected in less than 24 hours. SAVE ALL DATA.
See vendor-specific Attribute list for failed Attributes.

General SMART Values:
Offline data collection status:  (0x00) Offline data collection activity
                    was never started.
                    Auto Offline Data Collection: Disabled.
Self-test execution status:      (  88) The previous self-test completed having
                    the electrical element of the test
                    failed.
Total time to complete Offline 
data collection:        (  120) seconds.
Offline data collection
capabilities:            (0x5b) SMART execute Offline immediate.
                    Auto Offline data collection on/off support.
                    Suspend Offline collection upon new
                    command.
                    Offline surface scan supported.
                    Self-test supported.
                    No Conveyance Self-test supported.
                    Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                    power-saving mode.
                    Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                    General Purpose Logging supported.
Short self-test routine 
recommended polling time:    (   2) minutes.
Extended self-test routine
recommended polling time:    (  90) minutes.
SCT capabilities:          (0x0039) SCT Status supported.
                    SCT Error Recovery Control supported.
                    SCT Feature Control supported.
                    SCT Data Table supported.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000b   100   100   050    Pre-fail  Always       -       0
  2 Throughput_Performance  0x0005   100   100   050    Pre-fail  Offline      -       0
  3 Spin_Up_Time            0x0027   100   100   001    Pre-fail  Always       -       1025
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       1
  5 Reallocated_Sector_Ct   0x0033   100   100   050    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000b   100   100   050    Pre-fail  Always       -       0
  8 Seek_Time_Performance   0x0005   100   100   050    Pre-fail  Offline      -       0
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       0
 10 Spin_Retry_Count        0x0033   100   100   030    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       1
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       0
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       0
193 Load_Cycle_Count        0x0032   100   100   000    Old_age   Always       -       3
194 Temperature_Celsius     0x0022   100   100   000    Old_age   Always       -       27 (Min/Max 26/30)
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   253   000    Old_age   Always       -       0
220 Disk_Shift              0x0002   100   100   000    Old_age   Always       -       57
222 Loaded_Hours            0x0032   100   100   000    Old_age   Always       -       0
223 Load_Retry_Count        0x0032   100   100   000    Old_age   Always       -       0
224 Load_Friction           0x0022   100   100   000    Old_age   Always       -       0
226 Load-in_Time            0x0026   100   100   000    Old_age   Always       -       353
240 Head_Flying_Hours       0x0001   001   001   001    Pre-fail  Offline  FAILING_NOW 3
254 Free_Fall_Sensor        0x0032   100   100   000    Old_age   Always       -       0

Error SMART Error Log Read failed: scsi error badly formed scsi parameters
Smartctl: SMART Error Log Read Failed
Error SMART Error Self-Test Log Read failed: scsi error badly formed scsi parameters
Smartctl: SMART Self Test Log Read Failed
Error SMART Read Selective Self-Test Log failed: scsi error badly formed scsi parameters
Smartctl: SMART Selective Self Test Log Read Failed

Podría destacar:

  • SMART overall-health self-assessment test result: FAILED! Drive failure expected in less than 24 hours. SAVE ALL DATA.
  • 240 Head_Flying_Hours 0x0001 001 001 001 Pre-fail Offline FAILING_NOW 3

Sospecho que cualquier solución como testdiskophotorec en el disco en sí está fuera de discusión en este momento. Entonces, mi única esperanza de rescatar cualquier dato sería conseguir un disco duro más grande y hacer una copia bit por bit de la unidad defectuosa usando ddoddrescue , y luego jugar con photorecla imagen resultante. Cualquier otra idea más bienvenida!


ACTUALIZACIÓN4 :

Como se preguntó en Recuperación de datos de un disco duro dañado: el "truco del congelador" , estoy publicando la salida de smartctl -H /dev/yourdisky smartctl -A /dev/yourdisk:

[Output was misleading so I removed that. See UPDATE5.]

¿Esto permite identificar el tipo de falla?


ACTUALIZACIÓN5 :

Hace aproximadamente una semana corrí tontamente testdisken el disco durante una noche (después de un par de fsckintentos nativos de Mac OS X ), y el daño probablemente empeoró cuando el propietario simplemente lo dejó caer. Al final de la testdisksesión, oí claramente un ruido de clic (¿" clic de muerte "?), Y el disco no pudo realizar más lecturas (todas las lecturas resultaron en un error). Inicialmente supuse que esto estaba sucediendo debido al sobrecalentamiento, pero ahora tiendo a creer que el daño simplemente se propagó y la unidad ahora está en muy mal estado.

Cuando intento ejecutar smartctl short self-testen el disco, la prueba Completed with electrical failurey la smartctlsalida son las mismas que en UPDATE3, incluido el 240 Head_Flying_Hours 0x0001 001 001 001 Pre-fail Offline FAILING_NOW 3error.

ingrese la descripción de la imagen aquí

También intenté una ddrescuesesión, que terminó con un gran total de 0 bytesrescatados.

root@xubuntu:/mnt/ram# ddrescue -f -n /dev/sdc /dev/sda /mnt/ram/ddrescue.log

Press Ctrl-C to interrupt
Initial status (read from logfile)
rescued:         0 B,  errsize:       0 B,  errors:       0
Current status
rescued:         0 B,  errsize:    250 GB,  current rate:        0 B/s
   ipos:     65024 B,   errors:       1,    average rate:        0 B/s
   opos:     65024 B,     time from last successful read:     3.5 m
Finished                   

En cada intento de lectura, el núcleo se quejaba dmesgde Buffer I/O error on device:

[ 3706.642819] sd 9:0:0:0: [sdc]  Sense Key : Medium Error [current]
[ 3706.642824] sd 9:0:0:0: [sdc]  Add. Sense: Unrecovered read error
[ 3706.642834] sd 9:0:0:0: [sdc] CDB: Read(10): 28 00 00 00 00 18 00 00 08 00
[ 3706.642842] end_request: critical target error, dev sdc, sector 24
[ 3706.642845] Buffer I/O error on device sdc, logical block 3
[ 3710.910060] sd 9:0:0:0: [sdc] Unhandled sense code
[ 3710.910064] sd 9:0:0:0: [sdc]  Result: hostbyte=invalid driverbyte=DRIVER_SENSE

Entonces, todo esto definitivamente apunta a daños en el hardware. Pero, ¿cuál es el tipo exacto de daño? (En parte, me gustaría comprobar si el "truco del congelador" es apropiado de alguna manera).

Como se sugirió en una pregunta relacionada , verifiqué Cómo recuperar datos cuando su disco duro funciona bien y me parece, dados los síntomas que he notado, que es:

  • Su unidad está girando y haciendo ruidos al hacer clic, o
  • Su unidad aumenta de velocidad y es detectada por su computadora, pero se bloquea cuando intenta acceder a ella

Entonces, dada toda la información adicional publicada aquí, ¿es posible identificar el tipo de falla que está experimentando el disco? ¿Y sería apropiado el "truco del congelador" en este caso?

(Se me sugirió que "cuando los cabezales de lectura y escritura tocan la superficie del disco, se mueven y giran, por lo que ya no es posible leer", y esto suena como una explicación realista, pero no estoy seguro de cómo para confirmarlo)

Landroni
fuente
1
Estos mensajes del núcleo indican que tiene un sector defectuoso. Puede usar smartctlpara verificar si es solo un sector defectuoso o pocos, o si el disco está cerca del final.
derobert
@derobert Ahora logré ejecutar smartctlen la unidad (ver ACTUALIZACIÓN1 en el OP). Alguna idea?
landroni
Mi recomendación sería conectarlo a una Mac e intentar repararlo con el sistema operativo nativo X fscko diskutil.
bahamat
@bahamat Al menos en Debian, hfsprogs upstream es ... Apple. Aunque el paquete Debian está desactualizado. Encontrar la última versión aguas arriba es, bueno, desafiante ... Probablemente sea opensource.apple.com/source/hfs/hfs-226.1.1 pero tiene una versión más baja, ¡quién sabe!
derobert
@derobert: Bueno ... La versión de Debian es 332.25-11. Según el registro de cambios, 332.25-1 era una nueva versión ascendente que coincidía con Mac OS X 10.4 en 2009. Antes de eso, la versión menor era 332.23. Entonces parece que la versión de Debian está rastreando a Tiger. Si fuera yo , estaría nerviosa corriendo Tiger's fsckpor algo moderno.
bahamat

Respuestas:

7

Parece que encontré este hilo demasiado tarde, pero para futuros lectores de este hilo:

Al realizar el rescate de datos, su primer paso debería ser hacer una imagen completa de la unidad con dd o algo similar (cloneZilla es una opción popular).

En otras palabras, obtenga una impresión de la unidad tal como está para no dañar más el volumen mientras intenta rescatar los datos.

Klaatu von Schlacker
fuente
2
Sí, exactamente! Ese fue mi error inicial todo el tiempo. Todo lo que testdiskhicieron las herramientas de comprobación de FS, etc., fue agravar los problemas de hardware. Probablemente sea mejor clonar la imagen de la unidad utilizando una herramienta como ddrescue, ya que permite omitir inteligentemente los sectores problemáticos (mientras ddque simplemente fallará a la primera señal de daño de hardware).
landroni
1
Aún mejor, use dd_rescue en lugar de ddrescue. Espera activamente y trata con corridas de sectores dañados, saltando a zonas cuerdas para obtener la mayor cantidad posible de datos fácilmente legibles antes de volver a intentar volver a intentar las zonas de falla lenta. Genio y libre.
hmijail llora a los despedidos el
3

Según el primer registro inteligente, es probable que tenga 124 sectores defectuosos: esta parte:

196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       3
197 Current_Pending_Sector  0x0032   100   100   000    Old_age   Always       -       124

Debe realizar una exploración completa para asegurarse del número real. Algunos archivos están dañados con seguridad. Es por eso que tiene Cuenta de errores: 1210, cada vez que se lee un sector dañado, obtiene un error de +1. Debe escribir ceros en estos sectores si alguna vez desea que el disco funcione porque los sectores se pueden reubicar solo cuando se están escribiendo. No puedo decirte cómo operar en el sistema de archivos hfs porque nunca lo he usado. Si tenía ext4, podría usar fsck con las siguientes opciones:

 -c                   Check for bad blocks and add them to the badblock list
 -l bad_blocks_file   Add to badblocks list

Entonces, podría obtener la lista de todos los bloques defectuosos, y luego podría conocer su ubicación, lo que puede ayudar a estimar si los bloques defectuosos dañaron los archivos normales o algo más. Yo estaba usando debugfs. Luego, podría escribir ceros en estos sectores mediante:

# hdparm --yes-i-know-what-i-am-doing --write-sector 104284160 /dev/sdb

y elimine los archivos dañados.

Del registro que proporcionó:

ls: cannot access .hotfiles.btree: Input/output error
ls: cannot access .journal: Input/output error
ls: cannot access .journal_info_block: Input/output error
ls: cannot access .Spotlight-V100: Input/output error
ls: cannot access .Trashes: Input/output error
ls: cannot access home: Input/output error
ls: cannot access libpeerconnection.log: Input/output error
ls: cannot access net: Input/output error
ls: reading directory .: Input/output error

Sabes qué archivos están dañados.

Lo siguiente es el valor del siguiente parámetro:

193 Load_Cycle_Count        0x0032   037   037   000    Old_age   Always       -       635340

Esto mata tu disco, o ya lo mató. Mi disco, por ejemplo, tiene una vida útil de 500k. Me enteré de esto cuando llegó a 350k ... Finalmente, deshabilité esta característica en el firmware de mi disco, y funciona hasta ahora.

Lo siguiente es el sistema de archivos supperblock. Debería haber hecho una copia de ese bloque para este tipo de situación, y después de eliminar los bloques defectuosos, podría restaurar el superbloque. Si el superbloque se dañó y no tiene la copia de seguridad, o no recuerda la ubicación de los sectores de la copia de seguridad, no podrá recuperar los datos. Tratar de usar:

# file -s /dev/sdb1
# file -s /dev/sdb

Pero puede leer el sistema de archivos (comando ls), por lo que no es tan malo, y creo que después de eliminar los bloques defectuosos y eliminar algunos archivos, todo debería estar bien.

Mikhail Morfikov
fuente
¡Gracias! Como nota general, tengo pocas dudas de que la unidad está dañada (antes de que pudiera montar la partición HFS +, pero ahora el núcleo ni siquiera detecta eso; revelación completa: tontamente lo ejecuté testdiskdurante una noche, y el daño probablemente empeoró de lo que había sido cuando el propietario simplemente lo dejó caer). Así que ahora simplemente espero ddrescuetodo lo que pueda de él , y luego photoreclo que pueda ser rescatado.
landroni
Un par de preguntas. "Load_Cycle_Count" ¿Qué significa y por qué mata el disco? ¿Cómo puede deshabilitarlo en el firmware? "Lo siguiente es el superbloque del sistema de archivos. Deberías haber hecho una copia de ese bloque [..]" ¡¡¡Debería haber hecho una copia de todo esto tan pronto como lo obtuve !! Pero de todos modos, ahora el superbloque probablemente está frito, ya que últimamente cuando conecté el disco, el núcleo se quejaba de un superbloque dañado dmesg.
landroni
1
Lea sobre esto aquí community.wd.com/t5/My-Book-Live/… - Tengo un disco WD, y puedo usar idle3-tools - idle3-tools.sourceforge.net
Mikhail Morfikov
1
Se debe a los tres valores 001 001 001: si VALOR = <THRESH, el disco probablemente fallará, por lo que obtendrá esa información. También podría no significar nada.
Mikhail Morfikov
1
@landroni: no estoy seguro de si congelar un disco es una buena idea, pero si tu disco está muerto, o casi muerto, y no puedes simplemente hacer que funcione, no puedes hacer más daño, así que si no tengo otras opciones, solo hazlo, pero no creo que ayude.
Mikhail Morfikov
-2

Fallos de accionamiento mecánico.

Para la recuperación de datos de bloques defectuosos, puede usar la utilidad SpinRite de $ 89 para recuperar datos. SpinRite no depende del sistema de archivos.

Daños en el sistema de archivos HFS +

Cuando haya problemas en el sistema de archivos HFS +, use la utilidad DiskWarrior de $ 99.95 en Mac OS X para reparar problemas HFS +.

Como ya ha utilizado otras herramientas de reparación (fsck), debe usar DiskWarrior en modo " scavenge ". Puede alcanzar la opción oculta de "barrido" presionando y manteniendo altpresionada la tecla antes de presionar el botón "Reconstruir" ("Reconstruir" cambia a "Reconstruir ..." mientras mantiene presionada la tecla Alt). Ahora agregue una marca de verificación a "Scavenge" y comience a "Reconstruir".

El "barrido" de DiskWarrior está optimizado para recuperar archivos después de que otra utilidad de reparación de disco ya se haya utilizado para recuperar archivos. La corrupción del OP puede ser causada por problemas lógicos o físicos. DiskWarrior se especializa en eliminar errores de directorio "lógicos", SpinRite se especializa en recuperar datos causados ​​por problemas "físicos" del disco duro.

Pro Backup
fuente
¿Qué es diferente de lo normal en el modo "carroñero" de DiskWarrior? ¿Por qué estas herramientas son particularmente adecuadas para resolver la situación del OP?
un CVn
1
@ "Scavenge" de MichaelKjörling DiskWarrior está optimizado para recuperar archivos después de que otra utilidad de reparación de disco ya se haya utilizado para recuperar archivos. La corrupción del OP puede ser causada por problemas lógicos o físicos. DiskWarrior se especializa en eliminar errores de directorio "lógicos", SpinRite se especializa en recuperar datos causados ​​por problemas "físicos" del disco duro.
Pro Backup
Debería editar su publicación para incluir información adicional, luego posiblemente use un @ -comentario para notificar al comentarista original. La información en los comentarios solo tiende a perderse fácilmente con el ruido.
un CVn
1
Tengo que recomendar CONTRA SpinRite . Cuando intenté recuperar datos de un disco duro, solo desperdicié un tiempo precioso en el disco agonizante (> 24 horas por menos de 1 MB, hasta que me di por vencido y probé otra cosa). Finalmente logré recuperar aproximadamente el 80% de los datos usando Linux (ddrescue y dd_rescue). Sin embargo, he tenido buenas experiencias con DiskWarrior, aunque no en modo de barrido.
hmijail llora a los despedidos el
He tenido una situación muy similar algunas veces, solucionando problemas en una nueva en este momento; y tengo que @hmijail segundo en que: ddrescue, testdisky otras herramientas de software libre han demostrado ser de gran ayuda hasta el momento. jpgrecoveren stock Debian funciona maravillosamente. Además, el contrapunto de una herramienta OSX molesta llamada Asistente de recuperación de archivos Easeus funciona bien, pero NO si el disco está en mal estado como en la pregunta de OP, aquí.
forgetstackxpassword