# CentOS: Dépannage en mode de secours {{INLINETOC}} Le mode Rescue offre la possibilité de démarrer un petit environnement Red Hat Enterprise Linux entièrement à partir d'un CD-ROM ou d'une autre méthode de démarrage, au lieu du disque dur du système. Comme son nom l'indique, le mode `rescue` est fourni pour sauver de quelque chose.En fonctionnement normal, le système utilise des fichiers situés sur le disque dur pour tout faire: exécuter des programmes, stocker vos fichiers, etc. L'utilisation de `rescue` permet d'accéder aux fichiers du disque dur du système, même si on ne peut pas les exécuter. ## Mode rescue vs. mode emergency * Le mode `rescue` équivaut au mode mono-utilisateur et nécessite le mot de passe root. Le mode `rescue` permet de réparer votre système dans des situations où il est impossible de terminer un processus de démarrage régulier. Le mode `rescue` essaiera de monter tous les systèmes de fichiers locaux et de démarrer certains services système importants, mais il n'active pas les interfaces réseau et ne permet pas la connexion de plusieurs utilisateurs. * Le mode `emergency` fournit l'environnement le plus minimal possible et permet de réparer votre système, même dans les situations où il est incapable de passer en mode de secours. En mode `emergency` , le système monte le système de fichiers racine en lecture seule, ne tente pas de monter d'autres systèmes de fichiers locaux, n'active pas les interfaces réseau. # Récupération d'un système Linux Le noyau doit être capable de trouver ces choses lui-même sans lire plus de détails de configuration, car ils seraient stockés dans le volume logique. Le fichier ci-dessus correspond au fichier de configuration d'un système en fonctionnement. Mais en cas de problème, ce système ne démarrera pas tout seul. Il faut démarrer le système à partir d’un DVD contenant un noyau `rescue` et une image du système de fichiers, par exemple Knoppix ou peut-être un DVD live CentOS. Pour démarrer en mode de secours, il faut être en mesure de démarrer le système à l'aide d'une des méthodes suivantes : * En démarrant le système installé en mode rescue. * En démarrant le système à partir d'un CD-ROM ou d'autres médias d'installation, tels que les périphériques flash USB. * En démarrant le système à partir du . ## Démarrage du système en mode secours depuis le système Pour démarrer en mode secours il suffit d'ajouter le mot-clé `rescue` ou `emergency` en tant que paramètre du noyau: * Lors du démarrage, lorsque le menu GRUB2 apparaît, appuyer sur la touche `e` pour modifier les options de démarrage grub2 * Ajouter le paramètre suivant : * pour un démarrage en mode `emergency`: `systemd.unit=emergency.target` * pour un démarrage en mode `rescue`: `systemd.unit=rescue.target` * Appuyer sur `Ctrl + a` (ou Accueil) et sur `Ctrl + e` (ou End) pour sauter au début et à la fin de la ligne. * Appuyer sur `Ctrl + x` pour démarrer le système avec le paramètre. On peut basculer d'un mode à l'autre. Pour basculer vers le mode `emergency`, exécuter simplement la commande `systemctl emergency `, pour basculer vers le mode `rescue`, exécuter simplement la commande `systemctl rescue`. Pour empêcher `systemd` d’envoyer un message informatif: ``` # systemctl --no-wall emergency # systemctl isolate emergency.target ``` ou ``` # systemctl --no-wall rescue # systemctl isolate rescue.target ``` ## Démarrage du système en mode secours depuis un server PXE Les systèmes basés sur Redhat offrent un mode "de secours", généralement utilisé pour essayer d'analyser et de récupérer après un problème majeur de système d'exploitation. La manière habituelle de procéder consiste à démarrer à partir d’un DVD et à sélectionner le mode «sauvetage» au point approprié. Mais il est également possible de le faire via Cobbler. En effet, si la machine ne dispose pas d’un lecteur de DVD, de telles solutions sont essentielles pour les tentatives de sauvetage. **RISQUE**: étant donné qu'on utilise le système de déploiement Cobbler qui installe généralement des machines, il existe un risque que cette procédure écrase la machine qu'on tente de sauver. Il est donc vivement recommandé, dans le cadre de votre flux de travail normal, de développer et de vérifier périodiquement cette procédure dans un environnement sûr, hors production et sans urgence. L'exemple ci-dessous repose sur les prérequis suivants: * Le déploiement réseau Cobbler de la machine cible est pris en charge par un seul serveur DHCP actif. * Les machines déployées sont déjà présentes dans Cobbler à des fins de déploiement antérieures. * Le paramètre `kopts` d'une machine déployée est généralement nul. * Le paramètre `netboot-enabled` est `false` en dehors du temps de déploiement. Sur le serveur Cobbler: ``` cobbler system edit --name=sick-machine --kopts='rescue' cobbler system edit --name=sick-machine --netboot-enabled=true cobbler sync ``` Sur la "machine malade" du client, faire un démarrage réseau normal, de type déploiement. Au cours de cela, on doit éventuellement voir: * **Écran bleu habituel: Loading SCSI driver** . Il peut y avoir quelques écrans similaires. * **Écran bleu habituel: Sending request for IP information for eth0** (La valeur exacte de cet "eth0" dépend de votre machine.) * **Écran bleu habituel: répéter Sending request for IP** , mais cette fois, le Rescue Mode devrait être ajouté à la barre d'en-tête en haut. * **Retour au noir habituel: running anaconda** et quelques lignes connexes. * **Écran bleu avec barre d’en-tête Rescue** et options "Continuer", "Lecture seule", "Ignorer". En particulier, si le deuxième écran Sending request for IP... ne dit pas que le Rescue Mode , il est vivement recommandé d’abandonner immédiatement le processus pour éviter tout risque d’écrasement de la machine. À ce stade, sélectionner l’option appropriée pour le sauvetage et suivre les procédures de sauvetage Redhat. (Le détail est indépendant et dépasse le cadre de cette procédure Cobbler.) Lorsqu'on a terminé, sur le serveur Cobbler, annuler le sauvetage: ``` cobbler system edit --name=sick-machine --kopts='' cobbler system edit --name=sick-machine --netboot-enabled=false cobbler sync ``` # Récupération d'un système en mode rescue ## L'environnement secouru ### Partitionnement Généralement avec un partitionnement LVM on a les éléments suivants: * Le disque aura deux partitions,`/dev/sda1` sera du type Linux Native et `/dev/sda2` sera du type LVM La première partition, * `/dev/sda1`, sera assez petite et contiendra un système de fichiers Ext4fs. Les chargeurs de démarrage peuvent lire les systèmes de fichiers mais ne peuvent pas gérer les volumes logiques, on a donc besoin d’un système de fichiers traditionnel pour le noyau et l’image de disque RAM initiale, ce qui n’a pas besoin d’être volumineux, * les autres disques auront une partition de type Linux LVM. Voici un exemple de système avec trois disques: ``` # ls -l /dev/sd* Brw-rw ----. 1 disque racine 8, 0 20 nov. 09h36 /dev/sda Brw-rw ----. 1 disque racine 8, 1 nov 20 09:36 /dev/sda1 Brw-rw ----. 1 disque racine 8, 2 novembre 20 09:36 /dev/sda2 Brw-rw ----. 1 disque racine 8, 16 nov. 20 09h36 /dev/sdb Brw-rw ----. 1 disque racine 8, 17 nov. 20 09h36 /dev/sdb1 Brw-rw ----. 1 disque racine 8, 32 nov. 20 09:36 /dev/sdc Brw-rw ----. 1 disque racine 8, 33 nov. 20 09h36 /dev/sdc1 ``` ``` # fdisk -l /dev/sd? Disque/dev/sda: 6442 Mo, 6442450944 octets Identificateur de disque: 0x0000613a Périphérique d'amorçage Début Fin Bloque l'id du système /dev/sda1 * 1 64 512000 83 Linux /dev/sda2 65 784 5778432 8e Linux LVM Disque/dev/sdb: 6442 Mo, 6442450944 octets Identificateur de disque: 0x000383b1 Périphérique d'amorçage Début Fin Bloque l'id du système /dev/sdb1 1 784 6290432 8e Linux LVM Disque /dev/sdc: 6442 Mo, 6442450944 octets Identifiant de disque: 0x00068690 Périphérique d'amorçage Début Fin Bloque l'id du système /dev/sdc1 1 784 6290432 8e Linux LVM ``` ### Volumes physiques et du groupe de volumes Tous les périphériques LVM ont été initialisés en tant que volumes physiques LVM et un groupe de volumes `vg_server` a été créé à partir de ces derniers. ``` # pvscan PV /dev/sda2 VG vg_server lvm2 [5,51 Gio/0 gratuit] PV /dev/sdb1 VG vg_server lvm2 [6,00 Gio/0 gratuit] PV /dev/sdc1 VG vg_server lvm2 [6,00 Gio/0 gratuit] Total: 3 [17,50 Gio]/en cours d'utilisation: 3 [17,50 Gio]/sans VG: 0 [0] ``` ``` # vgscan Analyse tous les volumes physiques, cela peut prendre un certain temps ... Le groupe de volumes trouvé "vg_server" utilisant le type de métadonnées lvm2 ``` ``` # ls -l /dev/vg_server Total 0 Lrwxrwxrwx. 1 racine racine 7 novembre 20 09:36 lv_root -> ../dm-0 Lrwxrwxrwx. 1 racine racine 7 novembre 20 09:36 lv_swap -> ../dm-1 ``` On peut utiliser les commandes `pvdisplay` et `vgdisplay` pour plus de détails sur ces volumes physiques et ce groupe de volumes. ### Volumes logiques Deux volumes logiques ont été créés à partir de ce groupe, nommés `lv_swap` et `lv_root`. Le premier contient une partition de `swap` et taillé en fonction de la quantité de RAM détectée lors de l'installation.Le deuxième volume logique, `lv_root`, utilise Tout l'espace restant. Pour secourir le système il faut donc ajouter d'autres disques, en faire des volumes physiques avec pvcreate, puis étendre le groupe de volumes avec `vgextend`, étendre le volume logique `lv_root` avec `lvextend` et développer le système de fichiers avec `resize2fs`. On peut utiliser le nouveau disque entier lui-même comme volume physique ou créer une partition complète à l’aide de `fdisk` en sélectionnant le type de partition `8e` pour `Linux LVM`. Ici, nous examinons les volumes logiques, ``` # lvscan ACTIVE '/dev/vg_server/lv_root' [15,53 Gio] hériter ACTIVE '/dev/vg_server/lv_swap' [1,97 Gio] hériter ``` ### Mappeur de périphériques ``` # ls -l /dev/mapper/ Total 0 Crw-rw ----. 1 racine racine 10, 58 novembre 20 09:36 contrôle Lrwxrwxrwx. 1 racine racine 7 nov 20 20:36 vg_server-lv_root -> ../dm-0 Lrwxrwxrwx. 1 racine racine 7 novembre 20 09:36 vg_server-lv_swap -> ../dm-1 ``` ### Systèmes de fichiers montés ``` # df -h Taille du système de fichiers utilisée Utilisation utilisée% Monté sur /dev/mapper/vg_server-lv_root 16G 4.4G 11G 30% / Tmpfs 499M 420K 499M 1%/dev/shm /dev/sda1 485M 30M 430M 7%/boot ``` ``` # swapon -s Nom de fichier Type Taille Utilisé Priorité Partition /dev/dm-1 2064376 872 -1 ``` ### Fichier /etc/fstab ``` # cat /etc/fstab # #/etc/fstab # Créé par anaconda # # Les systèmes de fichiers accessibles, par référence, sont conservés sous '/ dev/disk' # Voir les pages de manuel fstab (5), findfs (8), mount (8) et/ou blkid (8) pour plus d'informations. # /dev/mapper/vg_server-lv_root / ext4 default 1 1 UUID=3f4183a2-3485-4642-9fd7-afb1d66eead2 /boot ext4 default 1 2 /dev/mapper/vg_server-lv_swap swap swap default 0 0 /dev/shm tmpfs default 0 0 /dev/pts devpts gid=5, mode = 620 0 0 /sys sysfs default 0 0 /proc proc default 0 0 ``` Dans cette version du système on utilise le nom de périphérique LVM pour le système de fichiers/et le périphérique d'échange, et l'UUID pour le système de fichiers/boot. ### Fichier de configuration GRUB Le fichier de configuration **GRUB** ci-dessous est créé par le programme d'installation. ``` # more /boot/grub/menu.lst # grub.conf généré par anaconda # # Notez qu'il n'est pas nécessaire de relancer grub après avoir modifié ce fichier. # AVIS: Vous avez une partition/boot, cela signifie que # tous les chemins du noyau et initrd sont relatifs à/boot /, par exemple. # root (hd0,0) # kernel/vmlinuz-version ou root =/dev/mapper/vg_server-lv_root # initrd /initrd-[generic-]version.img # boot =/dev/sda default = 0 Délai d'attente = 5 Splashimage= (hd0,0) /grub/splash.xpm.gz Menu caché Titlee Red Hat Enterprise Linux (2.6.32-71.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-71.el6.x86_64 \ Ro root =/dev/mapper/vg_server-lv_root \ rd_LVM_LV = vg_server/lv_root \ rd_LVM_LV = serveur_gv/lv_swap \ rd_NO_LUKS rd_NO_MD rd_NO_DM LANG = en_US.UTF-8 \ SYSFONT = latarcyrheb-sun16 KEYBOARDTYPE = pc \ KEYTABLE = nous crashkernel = auto rhgb quiet Initrd /initramfs-2.6.32-71.el6.x86_64.img ``` **GRUB** ne peut pas Manipuler les volumes logiques, donc `/boot` est un petit système de fichiers contenant un module "stage 1.5" pour gérer cette structure de données du système de fichiers, le programme GRUB principal "stage 2", le fichier de configuration ci-dessus, ainsi que le noyau et le disque RAM initial. Le chargeur d’amorçage de **GRUB** recherche et charge le noyau et l’image disque dans la RAM, puis démarre le noyau en lui transmettant cette longue liste de paramètres. Le mappeur de périphériques du noyau doit être identifié comme étant le système de fichiers root, qui doit également rechercher deux volumes logiques, dont l’un avec le système de fichiers root. ### Description de la séquence de boot Le support de secours ne disposera donc d'aucune information sur les volumes logiques, il ne s'attendra même pas à ce qu'ils existent. ** ALors comment le noyau détecte-t-il automatiquement les systèmes de fichiers LVM?** Le BIOS trouve le support de démarrage dans le lecteur de DVD et son chargeur de démarrage récupère le noyau du DVD dans la RAM et le démarre, ce qui permet de détecter les disques, qui sont tous présents même s’ils sont connectés dans un ordre aléatoire. Les disques sont découverts et des fichiers spécifiques à un périphérique apparaissent -`/dev/sda`, `/dev/sdb` et `/dev/sdc`. Le noyau lit le premier bloc de 512 octets de chaque, où il peut découvrir une table de partition IBM traditionnelle ou le Etiquette de disque plus moderne contenant une table de partition GPT ou GUID Si tel est le cas, les périphériques des partitions apparaissent, par exemple,`/dev/sdb1` et `/dev/sdb2`, et le noyau lit le premier bloc de 512 octets de chacun de ceux-ci. `/etc/lvm` contient normalement les métadonnées sur les volumes physiques, les groupes de volumes et les volumes logiques LVM, mais que ces méta-données se trouvent dans le système de fichiers qu'on essaye de trouver. En outre, cette méta-donnée même peut être été perdue ou corrompue. Le noyau peut toujours récupérer le système de fichiers, car les métadonnées sont stockées dans les périphériques `LVM`. Ci-dessous figure un vidage hexadécimal partiel d’une partition de disque faisant partie d’un volume logique. Aprés les premiers 0x200 (soit 512 octets), on voit un en-tête LVM2. Il suffit de regarder plus loin pour voir que cette partition fait partie d'un des trois répertoires physiques composant un groupe de volumes nommé `vg_server` à partir duquel un volume logique nommé `lv_root` a été créé sur un système exécutant le noyau `2.6.32-71.el6.x86_64`. Le noyau lit ces informations et ses modules LVM et le mappeur de périphériques crée un fichier spécial de périphérique `/dev/dm-0` vers lequel pointent des liens symboliques avec les noms d'origine:`/dev/vg_server/lv_root` . ``` $ hexdump -C /dev/sdb2 ``` 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000200 4c 41 42 45 4c 4f 4e 45 01 00 00 00 00 00 00 00 |LABELONE........| 00000210 fe b5 f2 9a 20 00 00 00 4c 56 4d 32 20 30 30 31 |.... ...LVM2 001| 00000220 42 32 42 4e 66 78 44 54 41 79 55 67 57 65 77 41 |B2BNfxDTAyUgWewA| 00000230 70 4e 32 42 57 4e 4f 64 52 36 6e 74 55 6f 44 4d |pN2BWNOdR6ntUoDM| 00000240 00 00 f0 7f 01 00 00 00 00 00 10 00 00 00 00 00 |................| 00000250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000260 00 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 |................| 00000270 00 f0 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00001000 69 ad d3 c6 20 4c 56 4d 32 20 78 5b 35 41 25 72 |i... LVM2 x[5A%r| 00001010 30 4e 2a 3e 01 00 00 00 00 10 00 00 00 00 00 00 |0N*>............| 00001020 00 f0 0f 00 00 00 00 00 00 10 00 00 00 00 00 00 |................| 00001030 fe 06 00 00 00 00 00 00 4b ae 3d 19 00 00 00 00 |........K.=.....| 00001040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00001200 76 67 5f 73 65 72 76 65 72 20 7b 0a 69 64 20 3d |vg_server {.id =| 00001210 20 22 32 64 49 75 36 58 2d 46 69 73 50 2d 35 36 | "2dIu6X-FisP-56| 00001220 32 66 2d 32 6c 36 7a 2d 55 4b 4a 31 2d 65 6e 43 |2f-2l6z-UKJ1-enC| 00001230 62 2d 6f 42 4e 6e 73 4f 22 0a 73 65 71 6e 6f 20 |b-oBNnsO".seqno | 00001240 3d 20 31 0a 73 74 61 74 75 73 20 3d 20 5b 22 52 |= 1.status = ["R| 00001250 45 53 49 5a 45 41 42 4c 45 22 2c 20 22 52 45 41 |ESIZEABLE", "REA| 00001260 44 22 2c 20 22 57 52 49 54 45 22 5d 0a 66 6c 61 |D", "WRITE"].fla| 00001270 67 73 20 3d 20 5b 5d 0a 65 78 74 65 6e 74 5f 73 |gs = [].extent_s| 00001280 69 7a 65 20 3d 20 38 31 39 32 0a 6d 61 78 5f 6c |ize = 8192.max_l| 00001290 76 20 3d 20 30 0a 6d 61 78 5f 70 76 20 3d 20 30 |v = 0.max_pv = 0| 000012a0 0a 6d 65 74 61 64 61 74 61 5f 63 6f 70 69 65 73 |.metadata_copies| 000012b0 20 3d 20 30 0a 0a 70 68 79 73 69 63 61 6c 5f 76 | = 0..physical_v| 000012c0 6f 6c 75 6d 65 73 20 7b 0a 0a 70 76 30 20 7b 0a |olumes {..pv0 {.| 000012d0 69 64 20 3d 20 22 42 43 65 72 7a 75 2d 36 79 4b |id = "BCerzu-6yK| 000012e0 7a 2d 7a 6c 32 78 2d 44 64 6c 50 2d 52 43 32 57 |z-zl2x-DdlP-RC2W| 000012f0 2d 30 31 4d 6b 2d 4b 31 6a 32 44 5a 22 0a 64 65 |-01Mk-K1j2DZ".de| 00001300 76 69 63 65 20 3d 20 22 2f 64 65 76 2f 73 64 61 |vice = "/dev/sda| 00001310 32 22 0a 0a 73 74 61 74 75 73 20 3d 20 5b 22 41 |2"..status = ["A| 00001320 4c 4c 4f 43 41 54 41 42 4c 45 22 5d 0a 66 6c 61 |LLOCATABLE"].fla| 00001330 67 73 20 3d 20 5b 5d 0a 64 65 76 5f 73 69 7a 65 |gs = [].dev_size| 00001340 20 3d 20 31 31 35 35 36 38 36 34 0a 70 65 5f 73 | = 11556864.pe_s| 00001350 74 61 72 74 20 3d 20 32 30 34 38 0a 70 65 5f 63 |tart = 2048.pe_c| 00001360 6f 75 6e 74 20 3d 20 31 34 31 30 0a 7d 0a 0a 70 |ount = 1410.}..p| 00001370 76 31 20 7b 0a 69 64 20 3d 20 22 42 32 42 4e 66 |v1 {.id = "B2BNf| 00001380 78 2d 44 54 41 79 2d 55 67 57 65 2d 77 41 70 4e |x-DTAy-UgWe-wApN| 00001390 2d 32 42 57 4e 2d 4f 64 52 36 2d 6e 74 55 6f 44 |-2BWN-OdR6-ntUoD| 000013a0 4d 22 0a 64 65 76 69 63 65 20 3d 20 22 2f 64 65 |M".device = "/de| 000013b0 76 2f 73 64 62 31 22 0a 0a 73 74 61 74 75 73 20 |v/sdb1"..status | 000013c0 3d 20 5b 22 41 4c 4c 4f 43 41 54 41 42 4c 45 22 |= ["ALLOCATABLE"| 000013d0 5d 0a 66 6c 61 67 73 20 3d 20 5b 5d 0a 64 65 76 |].flags = [].dev| 000013e0 5f 73 69 7a 65 20 3d 20 31 32 35 38 30 38 36 34 |_size = 12580864| 000013f0 0a 70 65 5f 73 74 61 72 74 20 3d 20 32 30 34 38 |.pe_start = 2048| 00001400 0a 70 65 5f 63 6f 75 6e 74 20 3d 20 31 35 33 35 |.pe_count = 1535| 00001410 0a 7d 0a 0a 70 76 32 20 7b 0a 69 64 20 3d 20 22 |.}..pv2 {.id = "| 00001420 7a 32 4d 4a 61 4d 2d 53 6c 66 56 2d 78 4e 6f 70 |z2MJaM-SlfV-xNop| 00001430 2d 71 66 57 6a 2d 4c 76 37 6d 2d 4e 30 42 70 2d |-qfWj-Lv7m-N0Bp-| 00001440 74 33 6c 6f 4b 63 22 0a 64 65 76 69 63 65 20 3d |t3loKc".device =| 00001450 20 22 2f 64 65 76 2f 73 64 63 31 22 0a 0a 73 74 | "/dev/sdc1"..st| 00001460 61 74 75 73 20 3d 20 5b 22 41 4c 4c 4f 43 41 54 |atus = ["ALLOCAT| 00001470 41 42 4c 45 22 5d 0a 66 6c 61 67 73 20 3d 20 5b |ABLE"].flags = [| 00001480 5d 0a 64 65 76 5f 73 69 7a 65 20 3d 20 31 32 35 |].dev_size = 125| 00001490 38 30 38 36 34 0a 70 65 5f 73 74 61 72 74 20 3d |80864.pe_start =| 000014a0 20 32 30 34 38 0a 70 65 5f 63 6f 75 6e 74 20 3d | 2048.pe_count =| 000014b0 20 31 35 33 35 0a 7d 0a 7d 0a 0a 7d 0a 23 20 47 | 1535.}.}..}.# G| 000014c0 65 6e 65 72 61 74 65 64 20 62 79 20 4c 56 4d 32 |enerated by LVM2| 000014d0 20 76 65 72 73 69 6f 6e 20 32 2e 30 32 2e 37 32 | version 2.02.72| 000014e0 28 32 29 20 28 32 30 31 30 2d 30 37 2d 32 38 29 |(2) (2010-07-28)| 000014f0 3a 20 4d 6f 6e 20 4e 6f 76 20 31 39 20 31 35 3a |: Mon Nov 19 15:| 00001500 31 30 3a 35 39 20 32 30 31 32 0a 0a 63 6f 6e 74 |10:59 2012..cont| 00001510 65 6e 74 73 20 3d 20 22 54 65 78 74 20 46 6f 72 |ents = "Text For| 00001520 6d 61 74 20 56 6f 6c 75 6d 65 20 47 72 6f 75 70 |mat Volume Group| 00001530 22 0a 76 65 72 73 69 6f 6e 20 3d 20 31 0a 0a 64 |".version = 1..d| 00001540 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 22 22 0a |escription = "".| 00001550 0a 63 72 65 61 74 69 6f 6e 5f 68 6f 73 74 20 3d |.creation_host =| 00001560 20 22 6c 6f 63 61 6c 68 6f 73 74 2e 6c 6f 63 61 | "localhost.loca| 00001570 6c 64 6f 6d 61 69 6e 22 09 23 20 4c 69 6e 75 78 |ldomain".# Linux| 00001580 20 6c 6f 63 61 6c 68 6f 73 74 2e 6c 6f 63 61 6c | localhost.local| 00001590 64 6f 6d 61 69 6e 20 32 2e 36 2e 33 32 2d 37 31 |domain 2.6.32-71| 000015a0 2e 65 6c 36 2e 78 38 36 5f 36 34 20 23 31 20 53 |.el6.x86_64 #1 S| 000015b0 4d 50 20 57 65 64 20 53 65 70 20 31 20 30 31 3a |MP Wed Sep 1 01:| 000015c0 33 33 3a 30 31 20 45 44 54 20 32 30 31 30 20 78 |33:01 EDT 2010 x| 000015d0 38 36 5f 36 34 0a 63 72 65 61 74 69 6f 6e 5f 74 |86_64.creation_t| 000015e0 69 6d 65 20 3d 20 31 33 35 33 33 35 35 38 35 39 |ime = 1353355859| 000015f0 09 23 20 4d 6f 6e 20 4e 6f 76 20 31 39 20 31 35 |.# Mon Nov 19 15| 00001600 3a 31 30 3a 35 39 20 32 30 31 32 0a 0a 00 00 00 |:10:59 2012.....| 00001610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * Pour accéder aux fichiers dans le contexte du système d’exploitation démarré, il suffit de monter le périphérique. Dans le système d’exploitation de secours: ``` # mkdir/tmp/sauvé # mount/dev/vg_server/racine_lv/tmp/secouru ``` # Exemples de récupération en mode rescue L’initialisation d’une machine physique ou d’une machine virtuelle depuis une image ISO DVD CentOS 7 en mode de récupération peut aider les administrateurs système à effectuer diverses tâches de dépannage pour un système défectueux, telles que la récupération de données ou celles décrites ci-dessous. ## Récupérer ou sauver un chargeur de démarrage Grub corrompu Dans ce scenario, on abordera le processus de récupération d’un chargeur de démarrage corrompu dans CentOS 7 ou Red Hat Enterprise Linux 7, ainsi que la récupération du mot de passe root oublié. Le chargeur de démarrage GRUB peut parfois être endommagé, compromis ou supprimé dans CentOS 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 qu'en utilisant une méthode de chargement décrite ci-dessus. ### Etape 1: télécharger la dernière version de l’image ISO de CentOS 7 Graver la sur un DVD ou créer une clé USB amorçable et placer l’image amorçable dans le lecteur approprié de votre ordinateur et redémarrez-la. Pendant que le BIOS effectue les tests POST, appuyer sur une touche spéciale (Esc, F2, F11, F12, Suppr en fonction des instructions de la carte mère) pour entrer les paramètres du BIOS et modifier la séquence de démarrage de sorte que l'image de DVD/ USB de démarrage soit démarrée en premier. Au démarrage de la machine. ### Etape 2: Choisr le mode dépannage Une fois le support de démarrage CentOS 7 détecté, le premier écran apparaît dans la sortie du moniteur de la machine.A partir du premier menu, sélectionner l'option Dépannage et appuyer sur la touche [Entrée] pour continuer. ### Etape 3: Choisir l'option Sauver un système CentOS Sur l'écran suivant, choisir l'option `Sauver un système CentOS` et appuyer sur la touche [Entrée] pour aller plus loin. Un nouvel écran s'affichera avec le message «Appuyer sur la touche Entrée pour lancer le processus d'installation». Appuyer sur la touche [Entrée]. Encore une fois pour charger le système CentOS en mémoire. ### Etape 4: Chargement du mode rescue Une fois le logiciel d’installation chargé dans la mémoire vive de l'ordinateur, l’invite relative à l’environnement de secours apparaît sur l'écran. Taper `1` afin de poursuivre le processus de récupération du système. ### Etape 5: Montage du système à récupérer À l'invite suivante, le programme de secours vous informera que votre système a été monté dans le répertoire `/mnt/sysimage`. Taper `chroot /mnt/sysimage` afin de changer la hiérarchie de l'arborescence Linux à partir de l'image ISO. Vers la partition racine montée depuis le disque. ### Etape 6: Identification du 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`. ### Etape 7: Réparation du chargeur de démarrage Après avoir identifié le disque dur de la machine, on commencer à installer le chargeur de démarrage GRUB en lançant les commandes ci-dessous. ``` # ls /sbin | grep grub2 # Identify GRUB installation command # /sbin/grub2-install /dev/sda # Install the boot loader in the boot partition of the first hard disk ``` * Identifier l'installation de GRUB ``` # ls /sbin | grep grub2 ``` * Installer le chargeur de démarrage dans la partition de démarrage du premier disque dur ``` # /sbin/grub2-install /dev/sda ``` * Vérifier le fichier `/boot/grub/grub.conf` car des entrées additionnelles peuvent être nécessaires à GRUB qu'il puisse contrôler les systèmes d'exploitation supplémentaires. ### Etape 8: Redémarrer Une fois le chargeur d'amorçage GRUB2 installé avec succès dans la zone MBR du disque dur, taper `exit` pour revenir à l'arborescence des images ISO de démarrage CentOS, puis redémarrer l'ordinateur en saisissant `init 6` dans la console. Après le redémarrage de la machine, il faut d'abord entrer les paramètres du BIOS et modifier le menu de la commande de démarrage (placer le disque dur contenant le chargeur de démarrage MBR installé en première position dans l'ordre du menu de démarrage). Sauvegarder les paramètres du BIOS, puis redémarrer la machine pour appliquer la nouvelle commande de démarrage. Après le redémarrage, la machine devrait démarrer directement dans le menu GRUB. ## Récupérer le mot de passe root Lorsqu'on on a oublié le mot de passe root et qu'on ne peut pas se connecter au système CentOS 7, on peut réinitialiser le mot de passe (vierge) en démarrant l’image de DVD ISO CentOS 7 en mode de restauration et en suivant les étapes décrites ci-dessus, jusqu’à ce que Vous atteignez l'étape 6. ### Etape 9: supprimer l'ancien mot de passe Une fois connecté au système de fichiers de l'installation CentOS, exécuter la commande suivante afin de modifier le fichier de mots de passe des comptes Linux. ``` # vi /etc/shadow ``` Identifier la ligne du mot de passe root (généralement la première ligne), entrer en mode d'édition et supprimer la chaîne entière entre le premier deux-points ":" et le second ":", une fois terminé, enregistrer le fichier. ### Etape 10. Redémarrer Quitter la console chrootée et taper `init 6` pour redémarrer l'ordinateur. Après le redémarrage, on peut se connecter au système CentOS avec le compte root, sans qu'aucun mot de passe n'ait été configuré. Configurer un nouveau mot de passe pour l'utilisateur root en exécutant la commande `passwd`. ,