En primer lugar tenemos que plantearnos si realmente necesitamos guardar en un fichero el contenido de nuestro Master Boot Record y de nuestra Tabla de Particiones, posiblemente no. Se me ocurren dos casos, a modo de ejemplo, en que puede ser muy útil.
El primero estaria destinado a la clonación de discos, puedes guardar una imagen de cada partición junto con una imagen del sector de arranque. Luego ir al disco destino y volcar esa información sin problemas, consiguiendo un perfecto clon (los dos discos tienen que ser iguales). A mi la clonación de discos no me interesa especialmente, pero ahí queda eso.
El segundo caso es cuando se trata de una copia de seguridad, simplemente. Si eres un fanático de tu distribución favorita y llevas con la misma instalación desde hace 4 años (subsistiendo como un héroe a base de actualizaciones), supongo que no debes tocar a menudo el MBR y mucho menos crear y eliminar particiones. Pero si eres como yo y te dedicas a instalar todo lo que te cae en las manos (físicamente, sin usar virtualización), tendrás el disco bien partido y repartido (Linux permite instalarse en particiones lógicas, por lo que podrías instalar decenas de distribuciones en un sólo disco duro). En este caso es recomendable hacer copias de seguridad del sector de arranque por lo que pueda pasar.
Creando copia de seguridad del MBR:
# dd if=/dev/sda of=/root/backups/mbr bs=512 count=1
Recuperando el MBR a partir de la copia de seguridad:
# dd if=/root/backups/mbr of=/dev/sda bs=512 count=1
dd es una utilidad que, simplemente, copia el contenido de la entrada estándar if en la salida estándar of. En mi caso el disco duro /dev/sda es la entrada y el fichero /root/backups/mbr es la salida (y viceversa para la recuperación). bs es un parámetro que contiene el número de bytes que se van a copiar (el MBR está situado en la pista zero del disco duro, los primeros 512 bytes) y count es un parámetro que contiene el número de bloques que se van a copiar (los bloques son de 512 bytes, por lo que vamos a copiar solo uno, el primero).
Creando copia de seguridad de la Tabla de Particiones:
# sfdisk -d /dev/sda > /root/backups/tabla_part
Recuperando la Tabla de Particiones a partir de la copia de seguridad:
# sdfisk /dev/sda < /root/backups/tabla_part
sfdisk sirve para manipular tablas de particiones en Linux. En la creación de la copia de seguridad usamos el parámetro [-d] para que nos dé una salida en texto plano que pueda ser usada luego para regenerar la tabla. Pasamos esta salida al fichero /root/backups/tabla_part mediante el redireccionador de STDOUT [>]. Para recuperar la tabla sólo hay que usar ese fichero pasándolo por el redireccionador de STDIN [<] hacia el comando sfdisk.
En los ejemplos he usado /dev/sda como disco duro porque es así en mi caso, pero esto puede ser diferente dependiendo de si el disco es IDE, SATA, SCSI o USB. Hay varias formas de saber a qué disco nos estamos refiriendo. una es usar el comando mount para ver las particiones montadas, otra seria leyendo el fichero /etc/fstab donde están las instrucciones de montaje de discos para el arranque. Pero estas opciones no funcionarian por ejemplo des de un Live CD. La solución mas útil para ver todos los discos y particiones (aunque no estén montadas) es:
# fdisk -l
Este comando nos listará todas las particiones (muy útil para detectar un pendrive por ejemplo). Hasta aquí este mini manual, espero que a alguien le pueda ser útil.