Accidentalmente borré todas las particiones del disco equivocado.
/dev/sda
es el disco de arranque y /dev/sdb
es 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 -l
no 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/sda
verifique 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.):
start
contiene el desplazamiento del inicio de la partición, en sectores de 512 bytes.size
contiene 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 size
no 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 u
para 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 p
para verificar que la tabla de particiones se vea bien. Si algunas de estas particiones no son particiones de datos de Linux, utilice t
para configurar su tipo ( 82
para intercambio de Linux, c
para una partición FAT32 de Windows, 7
para 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 w
para 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, run
fsck -n (don't forget the
-n ) to check the consistency of the filesystems on each partition (don't use
mount`, 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 w
hará fdisk
que 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.