reparar tabla de particiones

reparar tabla de particiones

Acabo de sobrescribir la tabla de particiones del disco duro de mi sistema. Hice un cfdisken el dispositivo equivocado ( /dev/sdaen lugar de /dev/sdd), eliminé todas las particiones, hice una nueva primaria que abarca todo el dispositivo, configuré su tipo en 07(NTFS) y presioné write.

Así que aquí estoy con mi sistema funcionando. Hasta que reinicie, espero/supongo que nada cambiará, es decir: todos mis datos son accesibles (actualmente estoy haciendo una ddcopia de seguridad de todo el dispositivo y planeo hacer una .tar.gzcopia de seguridad de los datos más importantes más adelante). También hice una copia de seguridad /proc/partitions( /proc/diskstatsaunque supongo que se trata más de rendimiento y cosas como esta...) y /sys/block/sda/sda?/{start,size}.

Algunas cosas más que sé:

  • 4 particiones primarias
  • 1.ª partición: ~100 Mb, ext3, /boot
  • Segunda partición: ~100 Mb, "Partición de arranque Win7", ntfs(?)
  • Tercera partición: ~20...30GB, Win7, ntfs
  • 4.ª partición: ~20...30 GB, dispositivo cifrado con luks
  • los luks-DelawareEl dispositivo cifrado es un LVM-PV.
  • Las particiones /, /home& swapson todas LV en el (VG en) el PV indicado anteriormente.

Entonces mis preguntas:

  • ¿Cuál es la forma más sencilla de escribir la tabla de particiones del kernel en el disco?
  • ¿Cuál es la forma más sencilla de tomar los datos mencionados anteriormente (y quizás otros que no conozco...) y generar la tabla de particiones?
  • ¿Hay algún problema que solucionar con respecto a luks y/o lvm?
  • ¿Hay algún dato que deba respaldar antes de reiniciar (es decir, cosas del kernel [ /sys/..., /proc/...] y demás, que podrían ayudarme a regenerar la tabla de particiones)?

Respuesta1

No demasiado complicado. Con un poco de suerte.

En primer lugar, observe el tamaño y el orden de todas sus particiones en /dev/sda:

challenger:/home/michael # grep . /sys/block/sda/sda*/{start,size}
/sys/block/sda/sda1/start:63
/sys/block/sda/sda2/start:228690000
/sys/block/sda/sda3/start:257040
/sys/block/sda/sda1/size:256977
/sys/block/sda/sda2/size:83885760
/sys/block/sda/sda3/size:228432960

Ejecute fdisk en /dev/sda y cambie las unidades a sectores:

Command (m for help): u
Changing display/entry units to sectors

Luego comienza a hacer particiones. Utilice los números adecuados starty sizepara cada partición.
Evite un error uno por uno: reste uno sizeantes de escribirlo en fdisk.

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First sector (63-312581807, default 63): 
Using default value 63
Last sector, +sectors or +size{K,M,G} (63-312581807, default 312581807): +256976

Command (m for help): p

Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders, total 312581808 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0x02b002af

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1              63      257039      128488+  83  Linux

No olvide configurar los ID de su partición y alternar el indicador de inicio en la partición derecha

Ahora reinstale su MBR y debería estar listo para comenzar.


Naturalmente, puedes hacer todo esto usando tu editor de particiones favorito... parted también funciona bien.

Si ha perdido la información sobre el inicio/final de las particiones, parted tiene opciones de "rescate" para buscar particiones perdidas en el disco. Pero no deberías necesitarlos.

Respuesta2

Si la tabla de particiones está dañada, sugeriría usar un disco de arranque de RIP (el rescate es posible en Linux) para ejecutar testdisk. Diablos, es posible que puedas ejecutar testdisk desde tu sistema en ejecución para escanear y recuperar particiones, pero no lo intentaría porque no sé qué le haría a un sistema en ejecución con archivos abiertos.

Si quieres probar una copia de seguridad de datos esenciales (¿aún no la tienes?), ahora sería un buen momento para hacerlo...

información relacionada