Eliminé accidentalmente las particiones de mi disco de arranque. El sistema todavía está funcionando. ¿Cómo puedo recuperarme?

Eliminé accidentalmente las particiones de mi disco de arranque. El sistema todavía está funcionando. ¿Cómo puedo recuperarme?

Accidentalmente borré todas las particiones del disco equivocado.

/dev/sdaes el disco de arranque y /dev/sdbes un disco nuevo que estoy intentando configurar como espejo RAID.

Accidentalmente lo toqué con el dedo gordo y terminé eliminando la tabla de particiones en /dev/sda, en lugar de /dev/sdb.

El sistema todavía está en funcionamiento, por lo que se está ejecutando desde una tabla de particiones almacenada en caché en alguna parte.

¿Puedo recuperar la tabla de particiones, o al menos verla, para poder recrear las particiones exactamente donde estaban?

fdisk /dev/sda -lno produce particiones.

Sí, me siento inteligente

Respuesta1

El kernel mantiene la tabla de particiones en caché de forma permanente (a menos que se le indique explícitamente que se recargue, y eso no se puede hacer si algunas de las particiones están en uso). Por lo tanto, estará seguro hasta que reinicie (o le indique al kernel que opere con datos que no reflejan el verdadero contenido del disco; por ejemplo, si ya activó mdraid, es posible que ya haya escrito sus metadatos en el disco).

Si tienes unA hoycopia de seguridad de su sector de arranque (los primeros 512 bytes), puede restaurarlo ( cat boot-sector-backup >/dev/sdaverifique que el tamaño del archivo que está restaurando sea exactamente 512 bytes). Es posible que la instalación de su gestor de arranque haya creado una copia de seguridad del sector de arranque, pero si se actualizó o si lo volvió a particionar desde entonces, no estará actualizado. No restaure una copia de seguridad que pueda estar obsoleta.

Se puede acceder a la información del kernel sobre las particiones a través de /sys/class/block/sda/sda*. En el directorio de cada partición ( sda1, sda2, etc.):

  • startcontiene el desplazamiento del inicio de la partición, en sectores de 512 bytes.
  • sizecontiene el tamaño de la partición, en sectores de 512 bytes (excepto la partición extendida).

Si tiene particiones con el número 5 o superior, son particiones lógicas (consulte¿Cuál es la diferencia entre partición "extendida" y partición "lógica"?), contenido dentro de una partición extendida. Hay una única partición extendida (o ninguna) y es una de las particiones 1 a 4. El archivo sizeno contiene el tamaño de la partición extendida, por lo que primero debe determinarlo; debe ser lo suficientemente grande para que quepan todas las particiones lógicas y no debe abarcar ninguna partición primaria (las otras particiones están numeradas del 1 al 4).

Correr fdisk /dev/sda. Se utiliza upara cambiar la unidad a sectores. Cree las particiones ( n) con el desplazamiento y el tamaño correctos (como dice el mensaje, colóquelos +antes del número de sectores cuando se trata del tamaño), comenzando con la partición extendida.

Úselo ppara verificar que la tabla de particiones se vea bien. Si algunas de estas particiones no son particiones de datos de Linux, utilice tpara configurar su tipo ( 82para intercambio de Linux, cpara una partición FAT32 de Windows, 7para una partición NTFS de Windows). Si tiene una partición de arranque de DOS/Windows, configure su indicador de arranque ( a).

Vuelva a verificar que el resultado se vea bien y luego presione wpara enviar la nueva tabla al disco.

Guarde el contenido de /sys/class/block/sda/ in a tar archive on a USB stick. Then reboot from a removable media. **After rebooting, if the partition table you created is not correct, you risk massive data corruption**. So from the removable media, runfsck -n (don't forget the-n ) to check the consistency of the filesystems on each partition (don't usemount`, que solo funcionaría si el desplazamiento fuera correcto y podría dañar el disco (incluso en modo de solo lectura, porque escribiría el diario) si el desplazamiento fuera correcto pero no el tamaño. ).

Si fsck no encuentra ningún sistema de archivos, se equivocó en el desplazamiento de una partición. Si informa errores, es probable que haya calculado mal el tamaño de la partición.Mientras no haya escrito en el disco, aún puede arreglar la tabla de particiones. Cuando no tenga ninguna partición del disco montada, presionar whará fdiskque el kernel vuelva a leer la tabla de particiones. Una vez que tenga las particiones correctas, debería poder reiniciar su sistema normal y continuar como de costumbre.

Respuesta2

partedebería ayudarte, incluso si has reiniciado.

información relacionada