Mise à jour du Bottin provisoirement suspendue (7ème épisode)

Je reprend mon montage (je l’avais démonté hier avant de quitter et d’éteindre le PC) :
# mount -t ext3 /dev/sda1 /mnt/sda1
et mon chroot :
# chroot /dev/sda1

« Petit » aparté :
Le chroot permet d’entrer dans le système d’exploitation monté – comme si on avait démarré dessus.
C’est utile lorsque par exemple (90% de son utilisation) vous avez installé un paquet foireux qui a planté votre système : votre système ne pouvant plus démarrer, vous ne pouvez plus effectuer les corrections nécessaires, une fois votre PC remis sous tension.
Par contre si vous avez un système de démarrage alternatif (comme une clé USB ou un CD de démarrage) vous permettant d’accéder à ce disque dur, vous montez ce disque (avec la commande mount et ses paramètres) puis vous lancez un chroot dessus : le système se comportera comme si vous aviez démarré dessus (il ne va pas redémarrer, mais vous aurez le curseur et serez près à pouvoir lancer toutes les commandes de réparation nécessaires).
L’intérêt de cette opération (plutôt que de modifier vous-même directement les fichiers) est que toute installation de paquet ira aussi modifier tous les répertoires et fichiers de configuration correspondant à ce paquet.
Si vous avez pris soin de ne pas effacer le cache de vos paquets (sous Synaptic : Configuration>Préférences>onglet Fichiers>Laisser les paquets téléchargés dans le cache), vous n’aurez même pas besoin de les retélécharger.
Notez que pour ma clé USB j’ai retenu l’autre option « Supprimer les paquets téléchargés après installation » car je ne dispose pas assez de place sur ma clé pour m’offrir le luxe de les conserver.
Si vous avez repéré le paquet incriminé dans votre plantage (c’est le plus difficile lorsque l’on est novice), il vous suffit ensuite de vous placer dans le répertoire du cache d’apt,
par un : # cd /var/cache/apt/archives/
de repérer la dernière version téléchargée (pratique avec un gestionnaire de fichier, sinon en ligne de commande vous pouvez saisir un « ls -l | more », le « l » est un « L » minuscule, le « | » correspond au caractère spécial de la touche « 6 » sur votre clavier) et installée (la foireuse), et surtout le nom complet de la précédente (la viable) restée dans votre cache,
puis de lancer un : # dpkg -i nomcompletprécédenteversiondupaquet.deb
(çà muscle les p’tits doigts :))
Le problème aussi est que souvent ce paquet a des dépendances. Dans ce cas il vous dira qu’il ne peut pas l’installer parce qu’il a besoin du paquet trucmuche en version xyz. Avec dpkg il faut tout faire sois-même : il vous faudra repérer le nom exact de ce paquet trucmuche en version xyz dans ce répertoire, et tenter de l’installer avant l’autre. Là où çà devient drôle c’est que lui aussi peut avoir besoin d’un autre paquet dans une version antérieure … Il vous faudra donc réinstaller tous ces paquets dans l’ordre (heureusement dans la plupart des cas, ça ne va pas trop loin).
Après quelques galères de ce type, vous deviendrez plus prudent lors de vos installations, et éviterez d’installer les paquets importants dès qu’ils sont disponibles dans les dépôts Debian Sid (l’importance des paquets est indiqué sous Synaptic : il faut avoir coché « Afficher les propriétés du paquet dans la fenêtre principale » du menu Configuration>Préférences>onglet Général. L’importance de chaque paquet sélectionné est alors affiché au milieu de l’interface dans l’onglet « Général>Priorité »). Avec le temps vous vous ferez quand-même avoir, comme moi, mais finirez par en connaître un certain nombre :).
Notez que lorsque vous faites un chroot, le répertoire racine affiché n’est plus le répertoire racine de votre clé USB, mais le répertoire racine du disque que vous avez monté (normal puisqu’il se comporte comme si vous aviez démarré sur ce système, rappelez-vous en). Pour quitter le chroot il suffit de lancer la commande : # exit
Mais pensez à démonter les éventuels répertoires montés sous ce chroot, avant de quitter ce chroot.

Bon je reviens à mon chroot.
J’essai un : # mount -a
Pour lui dire de monter l’ensemble des partitions indiquées dans /etc/fstab sur le répertoire racine.
Arf, çà marche pô :(
J’ai le droit à des messages du type « mount: wrong fs type, bad option, bad superblock on /dev/md1″, etc… (pour chacun des /dev/md)
J’ai dû oublier quelque-chose …
Pourtant ces partitions RAID apparaissent bien dans /dev/ et je suis sûr qu’elles sont viables.
Je lance la commande :
debian:/dev# dmesg | tail
[ 1010.559427] EXT3-fs (sda1): warning: maximal mount count reached, running e2fsck is recommended
[ 1010.559550] EXT3-fs (sda1): using internal journal
[ 1010.559554] EXT3-fs (sda1): mounted filesystem with ordered data mode
[ 5447.072877] EXT4-fs (md1): unable to read superblock
[ 5447.098952] EXT4-fs (md3): unable to read superblock
[ 5447.147085] EXT4-fs (md2): unable to read superblock
[ 5447.170930] EXT4-fs (md6): unable to read superblock
[ 5447.218885] EXT4-fs (md5): unable to read superblock
[ 5447.243055] EXT4-fs (md4): unable to read superblock
[ 6314.347456] EXT4-fs (md1): unable to read superblock
La commande doit marcher, je l’ai déjà utilisée maintes fois, mais pas avec des partitions montées en RAID 1.

Je vais essayer de monter une partition RAID hors du chroot.
Je quitte par :
# umount -a
umount: /proc/sys/fs/binfmt_misc: not mounted
umount: /run/shm: not found
umount: /run/lock: not found
umount: /run: not mounted
umount: /dev: not mounted
# exit
Je créé un répertoire /mnt/md1
Je tente de monter /dev/md1 sur /mnt/md1 : # mount -t ext4 /dev/md1 /mnt/md1
mount : mauvais type de système de fichiers, option erronée, superbloc
erroné sur /dev/md1, page de code ou aide manquante, ou autre erreur
(cela pourrait-il être le périphérique IDE alors que vous utilisez
ide-scsi, de sorte que sr0, sda ou autre serait nécessaire ?)
Dans quelques cas certaines informations sont utiles dans syslog — essayez
« dmesg | tail » ou quelque chose du genre

Arf, j’aime pas çà.

Bon, tant pis, je vais tenter dans un 1er temps de monter l’un des disques de la grappe RAID – en lecture seule pour éviter de le désynchoniser, au moins pour voir si j’arrive à le lire :
Je relance gparted pour repérer les partitions :
J’ai pour sdb comme pour sdc (même schéma obligatoire pour le RAID) :
/dev/sdb1 linux-swap (6 Go)
/dev/sdb2 extended (1.36To)
/dev/sdb5 ext4 (10Go)
/dev/sdb6 ext4 (40Go)
/dev/sdb7 ext4 (50Go)
/dev/sdb8 ext4 (500Go)
/dev/sdb9 ext4 (500Go)
/dev/sdb10 ext4 (291.26Go)
non alloué non alloué (2.49Mo)

Je créé un répertoire /mnt/sdb5
Je cherche le paramètre (j’ai une petite mémoire, type ZX81 :)) pour le monter en lecture seule : sous Konqueror je tape dans la zone d’adresses : man:mount
Ok, j’ai ma commande, je lance : # mount -t ext4 /dev/sdb5 /mnt/sdb5 -r
Ca marche. Sous /mnt/sdb5 je vois à présent mon /Home
Je refais ma petite cartographie, pour les principaux :
/dev/sdb2 extended (1.36To)
/dev/sdb5 ext4 (10Go) Home
/dev/sdb6 ext4 (40Go) var
/dev/sdb7 ext4 (10Go) usr
(le reste çà me regarde :))
(Là aussi c’est plus facile à consulter qu’en console)
Je monte donc tout çà (je ne détaille pas davantage) en lecture seule, provisoirement sous des répertoires créés pour l’occasion dans /mnt (/mnt/sdb5, /mnt/sdb6, …).
J’en profite pour récupérer la dernière mise à jour du Bottin : je vous la poste demain :).

Reste que je n’ai toujours pas réparé mon PC :(
A suivre …

Laisser un commentaire