Changer le beadm actif d’un FreeBSD via le rescue mode OVH

Contexte :

Nous imaginons ici que suite à une modification, upgrade du système ou erreur dans un paramètre de démarrage, notre machine n’est plus accessible après un reboot.

Prérequis :

  • Avoir un FreeBSD installé et configuré avec beadm.
  • Avoir plusieurs ‘boot environment’ fonctionnels.

État avant ‘plantage’ :

Liste des beadm actuels.

root@host:/root # beadm list
BE                   Active Mountpoint  Space Created
00-first-install     -      -            1.2M 2013-02-08 10:49
01-disable-ipv6      -      -            1.2M 2013-02-10 13:21
02-disable-sendmail  -      -            1.1M 2013-02-10 15:57
03-load-modules      -      -            1.0M 2013-02-10 16:15
04-jail              -      -            1.1M 2013-02-10 16:26
05-pkgng             -      -          950.0K 2013-02-10 16:56
06-minpkg            -      -            3.5M 2013-02-10 17:43
07-some-pkg-and-jail -      -            6.3M 2013-02-11 08:30
08-zfs-periodic      -      -            1.3M 2013-02-17 16:19
new-09               NR     /          838.9M 2013-02-18 10:37
root@cahost:/root #

Nous imaginons ici que le ‘boot environment’ new-09 est corrompu et non bootable.

Liste des volumes zfs dans zroot/ROOT.

root@host:/root # zfs list | grep ROOT/
zroot/ROOT/00-first-install       446K  1.77T   637M  legacy
zroot/ROOT/01-disable-ipv6        486K  1.77T   637M  legacy
zroot/ROOT/02-disable-sendmail    645K  1.77T   637M  legacy
zroot/ROOT/03-load-modules        592K  1.77T   637M  legacy
zroot/ROOT/04-jail                518K  1.77T   637M  legacy
zroot/ROOT/05-pkgng               586K  1.77T   637M  legacy
zroot/ROOT/06-minpkg              613K  1.77T   657M  legacy
zroot/ROOT/07-some-pkg-and-jail   958K  1.77T   814M  legacy
zroot/ROOT/08-zfs-periodic       1019K  1.77T   814M  legacy
zroot/ROOT/new-09                 839M  1.77T   814M  legacy
root@cahost:/root #

Redémarrage de la machine :

root@host:/root # shutdown -r now

Indisponibilité :

Nous constatons l’indisponibilité de notre machine.

nomad@client:~$ ping -c 5 host.x.x
PING host.x.x (x.x.x.x: 56 data bytes

--- host.x.x ping statistics ---
5 packets transmitted, 0 packets received, 100.0% packet loss

Reboot en rescue-pro :

Via le manager OVH, il faut configurer la machine pour booter en mode rescue-pro et demander un reboot hard.

Reconnexion à la machine en mode rescue.

Une fois le mail contenant les ‘Paramètres d’accès au mode RESCUE’ reçu, nous pouvons à nouveau nous connecter en ssh.

nomad@client:~$ ssh root@cahost
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Please contact your system administrator.
Add correct host key in /home/nomad/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/nomad/.ssh/known_hosts:503
ECDSA host key for cahost.neuronfarm.net has changed and you have requested strict checking.
Host key verification failed.
nomad@client:~$

Afin d’éviter d’effacer la vrai bonne clef dans notre ~/.ssh/known_hosts nous allons nous connecter en demandant à ssh de ne pas en tenir compte :

nomad@client:~$ ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@host.x.x
Warning: Permanently added 'host.x.x' (ECDSA) to the list of known hosts.
root@host.x.x's password: 
[...]
rescue-bsd#

Importation du zpool :

rescue-bsd# zpool import -o altroot=/mnt -o cachefile=/var/tmp/zpool.cache zroot
rescue-bsd# zpool list
NAME    SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
zroot  1.81T  11.5G  1.80T     0%  3.09x  ONLINE  /mnt
rescue-bsd#

On retrouve nos volumes zfs système dans zroot/ROOT :

rescue-bsd# zfs list | grep ROOT
zroot/ROOT                        844M  1.77T    31K  none
zroot/ROOT/00-first-install       446K  1.77T   637M  legacy
zroot/ROOT/01-disable-ipv6        486K  1.77T   637M  legacy
zroot/ROOT/02-disable-sendmail    504K  1.77T   637M  legacy
zroot/ROOT/03-load-modules        413K  1.77T   637M  legacy
zroot/ROOT/04-jail                514K  1.77T   637M  legacy
zroot/ROOT/05-pkgng               384K  1.77T   637M  legacy
zroot/ROOT/06-minpkg              389K  1.77T   657M  legacy
zroot/ROOT/07-some-pkg-and-jail   784K  1.77T   814M  legacy
zroot/ROOT/08-zfs-periodic        714K  1.77T   814M  legacy
zroot/ROOT/new-09                 839M  1.77T   814M  legacy
rescue-bsd#

Volume actuellement utilisé au boot :

rescue-bsd# zpool get bootfs zroot
NAME   PROPERTY  VALUE              SOURCE
zroot  bootfs    zroot/ROOT/new-09  local
rescue-bsd#

On change le volume de boot :

rescue-bsd# zpool set bootfs=zroot/ROOT/03-load-modules zroot
rescue-bsd# zpool get bootfs zroot
NAME   PROPERTY  VALUE                       SOURCE
zroot  bootfs    zroot/ROOT/08-zfs-periodic  local
rescue-bsd#

Repasser en boot ‘hard-drive’ via le manager et rebooter la machine :

rescue-bsd# shutdown -r now

On repasse sur la machine : Elle est de nouveau fonctionnelle.

nomad@client:~$ ssh root@host.x.x
root@host:/root # beadm list
BE                   Active Mountpoint  Space Created
00-first-install     -      -            1.2M 2013-02-08 10:49
01-disable-ipv6      -      -            1.2M 2013-02-10 13:21
02-disable-sendmail  -      -            1.3M 2013-02-10 15:57
03-load-modules      NR     /            1.2M 2013-02-10 16:15
04-jail              -      -          640.2M 2013-02-10 16:26
05-pkgng             -      -          950.0K 2013-02-10 16:56
06-minpkg            -      -            3.5M 2013-02-10 17:43
07-some-pkg-and-jail -      -            6.3M 2013-02-11 08:30
08-zfs-periodic      -      -            1.5M 2013-02-17 16:19
new-09               -      -          200.2M 2013-02-18 10:37
root@host:/root # 
This entry was posted in unix and tagged , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

ERROR: si-captcha.php plugin says GD image support not detected in PHP!

Contact your web host and ask them why GD image support is not enabled for PHP.

ERROR: si-captcha.php plugin says imagepng function not detected in PHP!

Contact your web host and ask them why imagepng function is not enabled for PHP.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>