Restaurer un MBR OpenBSD en vrac

Aujourd’hui je me suis retrouvé avec un serveur qui ne voulait plus redémarrer..

En faisant des modifications et des tests sur mon script de clonage de disque pour mes sauvegardes, j’ai cassé mon MBR sur le disque principal.

Au démarrage de mon i386 j’avais le message « err M… » et plus rien..

Bon pas de panique, voilà comment se sortir de cette galère !

J’ai utilisé ma clé USB d’installation, générée précédemment avec un dd de install55.fs.

J’ai booté le PC avec la clé USB puis indiquer au démarrage que souhaiter utiliser mon disque dur principal:

boot hd1a:/bsd

(par défaut la clé usb est sur hd0)

Bon voilà déjà une bonne chose ça remarche :-) mais avec une clé USB et une commande à taper au boot !

Pour restaurer le boot, rien de plus simple (mon disque dur principale où le système est installé est wd0)

installboot -v wd0

Using / as root
installing bootstrap on /dev/rwd0c
using first-stage /usr/mdec/biosboot, second-stage /usr/mdec/boot
Copying /usr/mdec/boot to /boot.VrPjG7nI
Renaming /boot.VrPjG7nI to /boot
/boot is 5 blocks x 16384 bytes
fs block shift 2; part offset 64; inode block 48, offset 15656
master boot record (MBR) at sector 0
        partition 3: type 0xA6 offset 64 size 83875301
/usr/mdec/biosboot will be written at sector 64

Et voilà ça remarche:)

Bon maintenant mon script de clonage… Voici la bonne commande pour rendre bootable le disque externe (sd0) en cas de crash du disque principale :

mount /dev/sd0a /mnt
installboot -r /mnt/ -v sd0 /usr/mdec/biosboot /mnt/boot

Using /mnt/ as root
installing bootstrap on /dev/rsd0c
using first-stage /usr/mdec/biosboot, second-stage /mnt/boot
Copying /mnt/boot to /mnt/boot.r0bLv5qv
Renaming /mnt/boot.r0bLv5qv to /mnt/boot
/mnt/boot is 5 blocks x 16384 bytes
fs block shift 2; part offset 64; inode block 40, offset 5544
master boot record (MBR) at sector 0
        partition 3: type 0xA6 offset 64 size 976703741
/usr/mdec/biosboot will be written at sector 64

Voilà le disque dur de mon serveur refonctionne et il peut crasher quand il veut, le disque dur externe bootable contient une copie !

La dernière version de clonehdd.sh contient les bonnes modifications pour OpenBSD 5.5.