Algunos antecedentes
- El disco en sí fue "trabajado" por un amigo y se dice que todavía está intacto, no está dañado y aún se puede montar / recuperar
- El disco era parte de una incursión de software 1 en Ubuntu 12.04
- El otro disco en la incursión original 1 fue formateado y utilizado para otro propósito, dejando el disco actual (el en cuestión) técnicamente parte de una incursión que ya no existe
Lo que ya he probado
Montaje básico
- Agregué una entrada a fstab, marqué el disco como ext3 / ext4 e intenté montarlo.
Al montar, aparece el siguiente error
wrong fs type, bad option, bad superblock on
Y en dmesg
EXT4-fs (sdc1): VFS: Can't find ext4 filesystem
He intentado encontrar el tipo de sistema de archivos del disco y se me ocurrió
$sudo file -s /dev/sdc
/dev/sdc: x86 boot sector; partition 1: ID=0x83, starthead 254, startsector 63, 1953520002 sectors, code offset 0xb8
Donde necesito ayuda / Mis preguntas
- ¿Hay alguna forma de convertir el disco a ext4 sin dañar los datos?
- ¿Hay una manera simple de montar el disco de tipo de archivo Linux 83 y recuperar los datos?
- Actualmente tengo otro disco libre en caso de que sea posible reconstruir la incursión de alguna manera
- Mi objetivo principal es recuperar los datos del disco. Estoy abierto a todas las opciones.
Actualizar
Salida de algunos comandos
fdisk -l / dev / sdc
$fdisk -l /dev/sdc
Disk /dev/sdc: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0005ed9c
Device Boot Start End Blocks Id System
/dev/sdc1 63 1953520064 976760001 83 Linux
archivo -s / dev / sdc1
$file -s /dev/sdc1
/dev/sdc1: data
hexdump -C -n 32256 / dev / sdc (No estoy seguro si esto podría ayudar o no)
$hexdump -C -n 32256 /dev/sdc` 00000000 fa b8 00 10 8e d0 bc 00 b0 b8 00 00 8e d8 8e c0 |................| 00000010 fb be 00 7c bf 00 06 b9 00 02 f3 a4 ea 21 06 00 |...|.........!..| 00000020 00 be be 07 38 04 75 0b 83 c6 10 81 fe fe 07 75 |....8.u........u| 00000030 f3 eb 16 b4 02 b0 01 bb 00 7c b2 80 8a 74 01 8b |.........|...t..| 00000040 4c 02 cd 13 ea 00 7c 00 00 eb fe 00 00 00 00 00 |L.....|.........| 00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000001b0 00 00 00 00 00 00 00 00 9c ed 05 00 00 00 00 fe |................| 000001c0 ff ff 83 fe ff ff 3f 00 00 00 82 59 70 74 00 00 |......?....Ypt..| 000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa |..............U.| 00000200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00007e00
mount -f ext4 /dev/sdc1 /mountpoint
debería hacer el truco. Hacer que mount asuma ext4 en lugar de buscar un sistema de archivos es lo que hace -fdf
me muestra que el disco recién montado tiene un uso del 2%, que es significativamente menor de lo esperado.mount -t ext4
? La bandera -f es para montaje 'falso' (ubuntu 14.04).Respuestas:
Esto funciona excelentemente en Ubuntu 14.04:
Conseguirás:
Luego monte y vea sus archivos:
fuente
/dev/sdc
y como/dev/md127
. Luego hizo lomdadm --assemble --scan
que resultó en/dev/md/Volume0_0p1
y/dev/md/Volume0_0p2
así sucesivamente correspondientes a 4 particiones que estaban en el disco. P2 era el que necesitaba,mkdir /p2
seguido de unmount /dev/md/Volume0_0p2 /p2
montaje que era EXT3 y puedo acceder y copiar fácilmente los datos. También lo montó como lectura-escritura.--scan
modo no inicia las matrices con discos faltantes, en mi caso aquí tuve que detener la matriz autoensamblada y comenzar de nuevo conmdadm --assemble --force /dev/md/1 /dev/sdc1
Linux mdraid tiene varios formatos de metadatos . Los formatos 0.9 y 1.0 colocan los metadatos al final del dispositivo contenedor, y la carga útil (el sistema de archivos) comienza al comienzo del dispositivo y se puede acceder directamente sin pasar por la capa de incursión. Los formatos 1.1 y 1.2 colocan los metadatos en el medio y al comienzo del dispositivo contenedor respectivamente, por lo que la carga útil está en un desplazamiento.
El instalador de Ubuntu crea volúmenes con el formato de metadatos 1.2, por lo que sus datos comienzan después de los metadatos en lugar de al principio del dispositivo.
La forma más sencilla de acceder a esos datos es ensamblar el dispositivo raid. En un volumen RAID-1, un solo dispositivo es suficiente.
(Detente aquí a menos que te guste el dolor).
También puede acceder a los datos en un desplazamiento. El único punto que puedo ver para hacer esto es si tiene que trabajar en un núcleo muy antiguo que no admite formatos 1.x mdraid. Primero, determine el desplazamiento
mdadm -E /dev/sdc1
: busque la líneaData Offset : SSS sectors
. Un sector mdadm tiene 512 bytes.En la desesperación, con formatos 1.x, el desplazamiento de datos se almacena en bytes 128-135 de los metadatos, little-endian¹. 1.2 metadatos son 4096 bytes después del comienzo del dispositivo.
También puede cambiar la tabla de particiones para que comience aún más. Ten mucho cuidado con tu aritmética. Solo haga eso si desea seguir usando el disco a largo plazo en un sistema antiguo que no puede acceder al dispositivo raid.
¹ ¿ O con endianness de plataforma? No estoy seguro.
fuente
mdadm -E /dev/sdc1
dónde exactamente) pero ciertamente no en 4k para 1.2 metadatos, ya que 4k es precisamente donde se almacenan los metadatos. Ver también unix.stackexchange.com/q/57477/22565mdadm -A /dev/sdc1
salidasmdadm: device /dev/sdc1 exists but is not an md array.
He ido un poco más allá para usar mdadm y ver si hay alguna información adicional ...mdadm --misc --examine /dev/sdc1
salidasmdadm: No md superblock detected on /dev/sdc1.
. ¿Hay alguna manera de reescribir los superbloques en este disco para marcarlo como un disco disponible para el ensamblado RAID?mdadm -E /dev/sdc
devuelve lo siguiente:/dev/sdc: MBR Magic : aa55 Partition[0] : 1953520002 sectors at 63 (type 83)
pero no hay información para / dev / sdc1Para mi sorpresa, pude / soy capaz de recuperar los datos simplemente usando foremost .
La ayuda recibida aquí fue invaluable. Después de probar una variedad de combinaciones sugeridas, así como mis propios complementos, el método ideal (montar y usar el disco normalmente) ya no parecía una opción. Recurrir a la recuperación de datos es mi solución en este caso.
fuente
Parece que ya has eliminado el superbloque mdadm. Si solía estar allí y tenía el formato 1.1 o 1.2, lo más probable es que el sistema de archivos esté en el desplazamiento 2048 sectores. Puede ejecutar
e2fsck /dev/sdc1?offset=2048
para forzarlo a buscar el sistema de archivos a partir de ese desplazamiento. Si lo encuentra, puede modificar su tabla de particiones para señalar dónde se inicia realmente el sistema de archivos. Puede usarparted /dev/sdc
y elunit s
comando para usar unidades de sectores.print
En la tabla, observe el sector inicial y final, luegorm
la partición, luego vuelva a crearlamkpart
y use el mismo sector final, pero agregue el desplazamiento al sector inicial.Si 2048 no funciona, también puedes probar 1985.
fuente
e2fsck /dev/sdc1?offset=2048
salidas (también ejecuté offset = 1985)Bad magic number..Superblock invalid...
, así como sugerir que el superbloque está dañado e intentar ejecutar e2fsck con un superbloque alternativo. Parece que debería proporcionarle un superbloque alternativo para avanzar.testdisk
debería poder hacer un escaneo detallado y arreglar la tabla de particiones por usted.testdisk
Es un territorio completamente nuevo para mí. Un programa básico de ejecución (Analizar)No ext2, JFS, Reiser.. marker. Bad relative sector. No partition is bootable.
También proporciona lo siguiente:1 P Linux 0 1 1 121600 254 63 1953520002
¿Cómo puedo entender eso para ayudar a la situación?