Déjenme explicarles lo que tengo en mente para que puedan decirme si hago algo mal.
Tengo dos discos duros externos, uno de los cuales está fallando (Windows me dice que lo formatee para usarlo nuevamente), el segundo está vacío y es mucho más grande, así que lo usé para copiar el que falla. Al principio pensé en usarlo Testdisk
porque tengo algo de experiencia con él. Sin embargo, antes de probar cualquier herramienta de reparación, quería tener una copia completa del disco defectuoso. Ahí es donde encontré GNU ddrescue
. Entonces mi plan es hacer una copia GNU ddrescue
y luego usarla Testdisk
en la copia.
Entonces hice una copia completa con el archivo GNU ddrescue - GUI version
. Una vez completada la recuperación, aparecieron 3 opciones para que yo eligiera: 1.Restablecer 2.Montar la unidad 3.Salir; Soy un novato en esto GNU ddrescue
y pensé que sería mejor simplemente salir del programa sin restablecer ni montar nada (no tengo idea de lo que realmente hace el montaje en una unidad, lo siento).
A continuación, planeo utilizar Testdisk
el duplicado para recuperar la partición perdida.
Pero antes de continuar me gustaría saber si realmente hice bien en usar esos dos programas juntos o si cometí algún error en el proceso. ¿Estoy en lo cierto al pensar que el nuevo disco es ahora un duplicado completo del anterior?
Editar:
/dev/sdd/ ... antiguo disco duro defectuoso
/dev/sde/ ... nuevo disco duro
root@PartedMagic:~# sudo gdisk -l /dev/sdd
GPT fdisk (gdisk) version 1.0.3
Partition table scan:
MBR: MBR only
BSD: not present
APM: not present
GPT: not present
***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory.
***************************************************************
Disk /dev/sdd: 976773168 sectors, 465.8 GiB
Model: Portable
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): A6D24F7F-47D5-4FAA-8595-5E56582C1DB1
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 976773134
Partitions will be aligned on 8-sector boundaries
Total free space is 5099 sectors (2.5 MiB)
Number Start (sector) End (sector) Size Code Name
1 63 976768064 465.8 GiB 0700 Microsoft basic data
root@PartedMagic:~# sudo gdisk -l /dev/sde
GPT fdisk (gdisk) version 1.0.3
Partition table scan:
MBR: MBR only
BSD: not present
APM: not present
GPT: not present
***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory.
***************************************************************
Warning! Secondary partition table overlaps the last partition by
244209734 blocks!
You will need to delete this partition or resize it in another utility.
Disk /dev/sde: 732558336 sectors, 2.7 TiB
Model: Elements 10B8
Sector size (logical/physical): 4096/4096 bytes
Disk identifier (GUID): E797BEEA-722B-4903-8086-B2A84B5E741C
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 5
First usable sector is 6, last usable sector is 732558330
Partitions will be aligned on 8-sector boundaries
Total free space is 57 sectors (228.0 KiB)
Number Start (sector) End (sector) Size Code Name
1 63 976768064 3.6 TiB 0700 Microsoft basic data
Salida desudo blkid
root@PartedMagic:~# sudo blkid
/dev/sdd1: LABEL="Expansion Drive" UUID="3C148148148105DC" TYPE="ntfs" PARTUUID="3df9d654-01"
sudo blkid
no menciona /dev/sdeX/
Para aclarar: /dev/sdd/ tenía solo una partición antes de fallar
Respuesta1
Esto no va a funcionar tan fácilmente.
El tamaño del sector lógico en el disco nuevo es 4096
, mientras que el disco antiguo utiliza 512
. Los números en la tabla de particiones se mantuvieron igual, pero como los nuevos sectores son 8 veces más grandes, toda la tabla de particiones en el clon no tiene sentido.
En algunos casos es posible traducir estos números (compáreseesta respuesta mía) pero aquí la partición (antigua) comienza en el desplazamiento de 63*512 bytes que no es divisible por 4096. Esto significa que su sistema de archivos ahora comienza en algún lugaradentroun sector más grande (aunque debería comenzar al principio de un sector), por lo que ninguna tabla de particiones hará que esto funcione inmediatamente.
¿Qué hacer ahora? Algunas ideas a continuación. Desconecte el disco antiguo (por si acaso) antes de continuar.
Aún puedes intentar montar el sistema de archivos independientemente de la tabla de particiones (ahora no válida):
mount -o ro,offset=$((63*512)) /dev/sde /some/mountpoint
Si el sistema de archivos estaba en buen estado, esto debería funcionar. En su caso, el comando puede fallar debido a un sistema de archivos dañado. Pero tal vez funcione y logres sacar todos tus datos importantes.
Puede asignar todo el disco a un dispositivo de bucle que informe un tamaño de sector de 512
:
losetup -f --show /dev/sde # 512 is the default value
Esto debería imprimir un nodo como /dev/loop7
. En el contexto de este dispositivo la tabla de particiones es válida. Las herramientas que esperan una tabla de particiones ahora deberían funcionar con el dispositivo (aunque algunas pueden requerir /dev/loop7p1
, para trabajar con la partición; kpartx
puede ser útil considerar primero la siguiente idea).
Nota: destruyes el nodo con losetup -d /dev/loop7
.
Puede asignar la partición real a un dispositivo de bucle:
losetup -f --show --offset $((63*512)) --sizelimit $(( (976768064+1-63)*512 )) /dev/sde
Nuevamente, esto debería imprimir un nodo como /dev/loop8
. El sistema de archivos (posiblemente dañado) comienza desde el principio de este dispositivo, por lo que es de esperar que las herramientas de recuperación que analizan los sistemas de archivos lo encuentren (o al menos los archivos que contiene) sin ninguna tabla de particiones.
Puede copiar la partición a otro desplazamiento, por lo que la tabla de particionespoderser arreglado. Esto es algo complicado; todos los números deben calcularse correctamente. Si alguno de los métodos anteriores te resultó suficiente, no te molestes.
Tenga en cuenta que el disco antiguo era de 465,8 GiB, el nuevo es de 2,7 TiB; para que tengas mucho espacio. Copiemos el sistema de archivos al final del disco.
La antigua partición ocupaba sectores de 512 bytes desde el sector número 63 hasta (incluidos) 976768064, 976768002 sectores en total. Esto significa que necesita al menos 122096001 sectores más grandes (4096 bytes).
En sectores de 4096 bytes, el inicio y el final se traducen en 7 (parcialmente tomado) y 122096008 (también parcialmente tomado).
Su disco contiene 732558336 sectores, debe retroceder 122096001 sectores (más, si planea usar GPT en él). Un sector inicial de 610459648 parece estar bien. Dejará algo de espacio al final para GPT secundario (y está alineado con un límite de 32 MiB, pero no importa mucho). Ahora el último sector de la nueva partición debería ser al menos 732555648 (732555655 si desea que el tamaño en sectores sea divisible por 8, esto puede hacer felices a algunas herramientas; una partición más grande que lo suficiente no debería afectar el sistema de archivos, sabe su propio tamaño).
Edite la tabla de particiones, destruya la entrada anterior (no válida) y cree una nueva según lo planeado:
- primer sector 610459648
- ultimo sector 732555655
- código o tipo adecuado para NTFS
Un disco tan grande con sectores de 512 bytes necesitaría una tabla de particiones GPT, no MBR. Con sectores de 4096 bytes, GPT o MBR deberían funcionar.
Luego (después de partprobe
, si el programa de partición no lo llama implícitamente) deberías tener acceso a la nueva partición.
Copie los datos de /dev/loop8
(creados arriba) a la nueva partición:
dd if=/dev/loop8 of=/dev/sdeN bs=32M
# or better use ddrescue again
Después de que el comando copia aproximadamente 465,8 GiB, el sistema de archivos está correctamente alineado dentro de la partición (comienza desde el principio, no en el medio de un sector). Las ideas anteriores eran algo "trucosas"; éste te ofrece una configuración bastante estándar.
Tenga en cuenta que puede crear otra partición para los datos recuperados si es necesario. El sistema de archivos que ddrescue
escribió originalmente termina en el sector 122096008. La nueva copia (si decidió crearla) comienza en 610459648. En cualquier caso, todo lo intermedio es para que usted lo use.