web-dev-qa-db-fra.com

Problème de démarrage de LUKS initramfs: "/ dev / mapper / ubuntu-root n'existe pas." Comment puis-je le réparer en utilisant une sauvegarde?

Premier demandeur, relativement nouveau pour Ubuntu/Linux. N'a pas eu beaucoup de chance avec la fonction de recherche. S'il vous plaît pardonnez l'essai ci-dessous - le problème est un peu unique, je pense ...

J'utilise 12.04 sur un ordinateur portable (avec BIOS UEFI), avec le cryptage intégral du disque configuré à l'aide du CD Alternate. J'ai récemment créé une image de sauvegarde de l'intégralité du disque dur à l'aide de dd, sur un disque dur externe USB. Ayant récemment apporté des modifications à l'ordinateur portable, j'ai essayé de brancher le clone USB externe pour y copier les fichiers. Bien que l'invite de mot de passe soit affichée et qu'elle apparaisse dans l'utilitaire de disque en tant que groupe de volumes logiques, le lecteur externe ne sera pas monté, ce qui signifie qu'il ne s'agit pas d'un système de fichiers montable. Essayé sur mon bureau, et il a bien monté (une fois que j'ai installé LVM2).

En utilisant pvdisplay, j'ai remarqué que le lecteur externe et le lecteur interne pour ordinateur portable avaient le même UUID (c'est un clone!). Donc, sur le bureau, j’ai utilisé pvchange -u pour changer l’aide du disque dur externe. Branché sur l'ordinateur portable, hélas, toujours pas de joie. Abandonné, éteint l'ordinateur portable (le lecteur est toujours branché), alla dîner. Entré en arrière, lecteur externe débranché de l'ordinateur portable maintenant éteint, a essayé de démarrer. Problèmes!

Il démarre à l'écran d'invite de mot de passe bien. Entrez le mot de passe et, après une longue attente, une invite initramfs s'affiche, avec le message d'erreur "ALERT!/Dev/mapper/ubuntu-root n'existe pas." Caca.

Si je redémarre et que je rebranche le lecteur externe, il redémarre, fonctionnant apparemment en root sur le lecteur USB. J'ai essayé la solution ici , en entrant/dev/sda3 (et encore plus de variantes) à la place. Pas de bingo, recevez toujours exactement les mêmes messages. Le fait que j'utilise LUKS avec un LVM semble compliquer les choses. Je pense avoir confondu un fichier de configuration quelque part, probablement en y branchant deux lecteurs avec le même UUID (stupide!) Et il pense maintenant que/root est sur le lecteur externe. Je suis perplexe quant à la façon de le récupérer.

3
jdeks

JE L'AI CORRIGÉ!! Pour les références des générations futures, voici comment:

Le problème était qu'en branchant le clone du système que je rencontrais, j'avais "confondu" mon système en ce qui concerne le lecteur sur lequel écrire et en quelque sorte neutralisé les métadonnées du groupe de volumes du lecteur interne d'origine. Heureusement, j'avais toujours les métadonnées du clone que j'avais créé.

Cela signifiait que je pouvais brancher la sauvegarde active, la déverrouiller et utiliser vgcfgbackup pour créer une copie de ses métadonnées.

~$ Sudo vgcfgbackup -f /tmp/trousers
  Volume group "ubuntu" successfully backed up.

Cela crée un fichier texte avec les métadonnées dans/tmp appelé pants (appelé comme vous voulez, cela ne fait aucune différence)

Ensuite, j'ai démonté et débranché le clone de sauvegarde opérationnel et branché le lecteur interne bouché. Déverrouillé comme je l'ai fait la sauvegarde, puis exécutez:

 Sudo vgcfgrestore -f /tmp/trousers ubuntu
  Restored volume group ubuntu

Ce faisant, le groupe de volumes a soudainement pris vie dans l’utilitaire de disque, et l’interne interne bouchée était déballé, montable et lisible à nouveau!

Le point critique ici est que "Ubuntu" était le nom du groupe de volumes d'origine. Vous pouvez le vérifier en ouvrant le fichier 'pants' dans gedit et en regardant l'entrée sur la ligne située sous "creation_time".

Il convient également de noter que cela n'a fonctionné que parce que la sauvegarde était un clone exact du fichier interne d'origine et que, par conséquent, le fichier métatdata VG contenait tous les UUID corrects en place. En fait, j'ai reçu un message d'erreur la première fois, car j'avais initialement modifié manuellement l'un des UUID du disque externe. J'ai dû utiliser pvdisplay sur le disque interne d'origine pour trouver son UUID, puis éditer manuellement le fichier 'pants' pour le faire fonctionner.

Quoi qu'il en soit, espérons que cela aidera quelqu'un un jour.

4
jdeks