Cet article décrit comment mettre en oeuvre un environnement rescue sur le serveur DRBL.
Le serveur déployé comporte
Le dossier /tftpboot
contient :
/tftpboot/nbi_img/
contenant le système d'ammorce PXE:pxelinux.cfg/default
vmlinuz-pxe
initrd-pxe.img
Deux types d'export sont déclarés dans le fichier de configuration /tftpboot/node_root/etc/exports
:
/tftpboot/node_root
/tftpboot/nodes/xxx.xxx.xxx.xxx
Copier les fichiers du noyau rescue dans les répertoire d'ammorce:
cp /home/petra/txxa1/initramfs-0-rescue-20aa28ba84a14b598632dce463c0538f.img /tftpboot/nbi_img/initrd-rescue.img cp /home/petra/txxa1/vmlinuz-0-rescue-20aa28ba84a14b598632dce463c0538f /tftpboot/nbi_img/vmlinuz-rescue
les fichiers initramfs & vmlinuz peuvent être générés pour le noyau de secours avec le noyau actuel du serveur à secourir:
/etc/kernel/postinst.d/51-dracut-rescue-postinst.sh $(uname -r) /boot/vmlinuz-$(uname -r)
Créer un fichier de configuration kickstart (ks.cfg) et le placer dans l'un des sous répertoires de l'export partagé (par exemple /tftpboot/node_root/tmp
) du serveur NFS.
# Fichier de configuration Kickstart en mode de secours CentOS 4.4 # # Langue du système # lang fr_FR.UTF-8 # # Modules de langue à installer # #langsupport --default=fr_FR.UTF-8 fr_FR.UTF-8 # #Clavier système # keyboard fr # #Souris système # mouse none # # Récupérer le système de secours de NFS # nfs --server=xx.xxx.xxx.xx --dir=/tftpboot/nodes_root/tmp # # Récupérer le système de secours de http # # url --url http://$yourwebserver/directory/that/contains/disc1/CentOS/RPMS/ # Informations réseau # #network --bootproto=dhcp
Configurer l'entrée dans le menu PXE ainsi :
LABEL CentOS 7 Rescue via NFS KERNEL vmlinuz-rescue MENU LABEL CentOS 7 Rescue via NFS IPAPPEND 2 APPEND initrd=initrd-rescue.img ramdisk_size=10000 text rescue ks=nfs:xx.xxx.xxx.xx:/tftpboot/node_root/tmp/ks.cfg
Démarrer le système en mode rescue en utilisant l'entrée ajoutée dans le menu PXE CentOS 7 Rescue via NFS
Afin de réparer un système de fichier endommagé il faut le monter dans l'arbre du système de secours.
Un environnement chrooté est nécessaire dans la pluspart des cas parcequ'on a besoins des bibliothèques dynamiques.
Si l’on souhaite accéder à une partition LVM en mode secours, les manipulations suivantes sont nécessaires:
pour monter les partitions logiques LVM
mkdir /mnt/LVM
Récupérer les noms des volumes group de la partition LVM :
lvm vgscan
Note: Si les nodes n'aparaissent pas sous /dev relancer la commande avec lvm vgscan --mknodes
Activer les volumes group de la partition LVM :
lvm vgchange -ay <VolName>
Récupérer les noms dees volumes logiques de la partition LVM :
lvm lvs
Monter les volumes logiques de la partition LVM sur le répertoire local :
mount /dev/<VolName>/<LogName> /mnt/LVM
Afin de disposer d'un système de fichier autonome, monter le système de fichier racine sur le répertoire /mnt
mount -t xfs /dev/mapper/vg00-lvroot /mnt mount -t xfs /dev/mapper/vg00-lvproduits /mnt/produits mount -t xfs /dev/mapper/vg01-lvvar /mnt/var mount -t xfs /dev/mapper/vg01-lvvar_log /mnt/var/log mount -t proc proc proc/ mount --rbind /sys sys/ mount --rbind /dev dev/
Il faut maintenant pratiquer l'échange de clefs avec le serveur PXE afin de permmettre les sauvegardes restaurations avec l'authentification par clef (sans devoir saisir le mot de passe):
Générer le trousseau de clef dans l'environnment chrooté du serveur:
chroot /mnt ssh-keygen
Implémenter la clef dans le fichier authorized_keys
du serveur PXE:
ssh-copy-id -f -i /root/.ssh/id_rsa.pub <user>@<adresse-ip-serveur-pxe>
Tester une connexion sans mot de passse:
ssh <user>@<adresse-ip-serveur-pxe>
Important: après les opérations de secours penser à faire le ménage dans le fichier authorized_keys
du serveur PXE
Le chargeur de démarrage GRUB peut parfois être endommagé, compromis ou supprimé en raison de divers problèmes, tels que des défaillances liées au matériel ou aux logiciels, ou peut parfois être remplacé par d'autres systèmes d'exploitation, en cas de double amorçage. Un chargeur de démarrage Grub corrompu empêche un système CentOS / RHEL de démarrer et de transférer le contrôle au noyau Linux.
La première étape du chargeur d'amorçage Grub est installée sur les 448 premiers octets au début de chaque disque dur, dans une zone généralement appelée enregistrement de démarrage principal (MBR).
La taille maximale du MBR est de 512 bytes. Si, pour une raison quelconque, les 448 premiers octets sont écrasés, CentOS ou Red Hat Enterprise Linux ne peuvent être chargés que si on démarre en mode de secours que l'on réinstalle le chargeur d'amorçage MBR GRUB.
Identifier le disque dur en exécutant la commande ci-dessous dans l'invite de secours.
# ls /dev/sd*
Si l'ordinateur utilise un ancien contrôleur RAID physique sous-jacent, les disques porteront d'autres noms, tels que /dev/cciss
. De plus, si le système CentOS est installé sur une machine virtuelle, les disques durs peuvent être nommés /dev/vda
ou /dev/xvda
.
Après avoir identifié le disque dur de la machine, on peut commencer à installer le chargeur de démarrage GRUB en lançant les commandes ci-dessous.
Dans le chroot installer grub sur le secteur d'ammorçage
/sbin/grub2-install /dev/sda
Redémarrer
reboot
Dans le chroot faire un snapshot des dump xfs
$ xfsdump -l0 - <chemin-vers-le-fs-xfs> | gzip -c | ssh user@host dd of=/backup.dgz
Dans le chroot faire xfsrestore
des sauvegardes distantes:
$ ssh user@host "dd if=/somewhere/backup.dgz" | gunzip -c | xfsrestore - /