Particionar un disco siempre es una tarea delicada para la cual debemos tener mucho cuidado, en Linux, lo más recomendable antes de iniciar esta tarea es crear una copia de seguridad de la tabla de particiones para que en caso de desastre podamos recuperar la misma. Vamos a ver como se puede realizar esta copia de seguridad y posterior restauración.

linux lsblk partition

 

Antes que nada recordaros que el uso de los comandos que utilizaremos en este cybertruco y básicamente de cualquier reparticionamiento de disco puede eliminar los datos en disco por lo que hay que ser extremadamente cuidadosos y a ser posible siempre testear sobre un entorno no de producción y en todo caso teniendo duplicados del contenido del disco en cuestión.

Tabla de particiones

MBR

La tabla de particiones dentro del MBR se encuentra en los 64 bytes posteriores a los 446 bytes del código de arranque. Estos 64 bytes a su vez se dividen en 4 bloques de 16 bytes describiendo cada una de las 4 posibles particiones primarias. Cada uno de estos bloques contiene información sobre el tipo de partición, la dirección CHS inicial, el sector inicial, el número de sectores de la partición...Por lo que como veréis a continuación vamos a salvar toda esta preciosa información.

Creando una copia de seguridad de la tabla de particiones

Para crear una copia de seguridad, utilizaremos el siguiente comando, copiando los primeros 512 bytes de un disco a un fichero.

sudo dd if=/dev/sda of=/tmp/mbrbackup bs=512 count=1

Restaurar la copia de seguridad

Sería simplemente indicar los parámetros contrarios (de nuevo insistir en lo delicada que es esta acción antes de probarlo, aseguraos que teneis copias de seguridad de vuestros discos)

sudo dd if=/tmp/mbrbackup of=/dev/sda bs=512 count=1

Como podéis suponer podemos guardar y restaurar los backups hacia y desde cualquier dispositivo.

 

GPT

Para discos con soporte GPT usaremos otra utilidad especializada, sgdisk. Sgdisk es una versión no interactiva de gdisk que nos permitirá hacer el mismo trabajo que podríamos hacer también con dd pero ahorrandonos ciertos cálculos (y errores catastróficos) a la hora de especificar el tamaño de la tabla de particiones.

En el caso de discos con soporte GPT, seguimos encontrando el MBR en los primeros 512 bytes del disco por motivos de retrocompatibilidad, a partir de ahí encontramos los datos de GPT (encontrándose otra copia la final del disco) a lo largo de los 33 siguientes sectores.

Creando una copia de seguridad de la tabla de particiones

Para crear la copia de seguridad debemos especificar un destino de la misma e indicar de qué dispositivo queremos crear este backup. Sería por ejemplo

sudo sgdisk --backup=/tmp/sda_backup /dev/sda

Restaurar la copia de seguridad

A la hora de restaurar sería similar solo indicando diferentes opciones

sudo sgdisk --load-backup=/tmp/sda_backup /dev/sda