Comment réparer l'UUID dans Grub après la restauration à partir d'une autre machine?

22

Je veux restaurer une sauvegarde tar complète d'Ubuntu 12.04 avec toutes mes personnalisations, documents, logiciels installés, etc. sur une autre machine.

J'ai fait la sauvegarde avec les commandes suivantes:

sudo su
cd /
tar cvpzf ububackup.tgz --exclude=/ububackup.tgz --exclude=/proc --exclude=/lost+found --exclude=/sys --exclude=/mnt --exclude=/tmp --exclude=/media /

Sur le nouvel ordinateur, j'ai fait une nouvelle installation d'Ubuntu 12.04, déplacé le fichier de sauvegarde vers celui-ci, puis restauré avec le fichier de sauvegarde avec ce qui suit:

tar xvpfz backup.tgz -C /

Comme prévu (voir la réponse de Mike Wwhat à cette question: Copier la distribution Ubuntu avec tous les paramètres d'un ordinateur à un autre ), cette rupture a éclaté. Lorsque j'allume l'ordinateur, j'obtiens une erreur:

error: no such device: ...

press any key to continue ...

Je crois que la raison pour laquelle Grub est cassé est que l'UUID qu'il recherche correspond sur l'ancien disque dur et non sur le disque dur de l'ordinateur.

Comment puis-je réparer mon grub pour reconnaître le nouveau disque dur? J'ai cherché en ligne de l'aide "Fix GRUB UUID" mais les étapes semblaient obsolètes ou complexes. La réponse de Mike que j'ai liée à ci-dessus me donne l'espoir qu'il existe un moyen assez simple de réparer cela.

snowguy
la source
1
Pourquoi n'utilisez-vous pas clonezilla (clonezilla.org) pour créer un instantané de votre ancien ordinateur et le restaurer sur le nouveau? Je pense que ce serait vraiment plus facile parce que vous semblez vouloir absolument tout garder tel quel. Sinon, faire une sauvegarde (/ home, / etc, / usr / local, / var) et restaurer vos données et personnalisations, à l'exception des logiciels, est aussi très facile ... Pour résoudre votre problème actuel, vous devrez changer l'UUID (s) dans / etc / fstab et /boot/grub/menu.lst. Vous pouvez utiliser le CD d'installation d'Ubuntu pour obtenir le ou les UUID [gparted ou ligne de commande] et apporter les modifications.
Golboth

Réponses:

19

Pour résoudre votre problème actuel, vous devrez changer les UUID dans "/ etc / fstab" et "/boot/grub/grub.cfg" (très délicat).

Vous pouvez utiliser le CD d'installation d'Ubuntu pour obtenir le ou les UUID avec gparted (il vous suffit de cliquer avec le bouton droit sur la partition pour laquelle vous souhaitez obtenir l'UUID et de cliquer sur "Informations", puis de sélectionner l'UUID et de le copier avec CTRL + C) ou en ligne de commande ( sudo blkid).

Ensuite, vous devez éditer "/ etc / fstab" sur le bon volume avec gedit, nano ou autre.

Dans un terminal, saisissez:

gksudo gedit /etc/fstab

et remplacer les anciens UUID par les nouveaux.

IMPORTANT: Bien sûr, si vous utilisez un CD de démarrage pour cela, vous devrez ajouter "/ media / xxxxx" avant "/ etc / fstab": "/ media / xxxxx / etc / fstab". Vous pouvez également utiliser gksudo geditet ouvrir le fichier pour vous modifier vous-même.

AVERTISSEMENT: la modification de "/boot/grub/grub.cfg" est très délicate. Il doit normalement être généré avec la commande sudo update-grub.

Remplacez les anciens UUID par les nouveaux dans "/boot/grub/grub.cfg" en saisissant ce qui suit dans un terminal:

gksudo gedit /boot/grub/grub.cfg

IMPORTANT: Bien sûr, si vous utilisez un CD de démarrage pour cela, vous devrez ajouter "/ media / xxxxx" avant "/boot/grub/grub.cfg": "/ media / xxxxx / boot / grub / grub. cfg ". Vous pouvez également utiliser gksudo geditet ouvrir le fichier pour vous modifier vous-même.

Si vous utilisez la solution délicate, je vous recommande de lancer sudo update-grubune fois que vous avez réussi à démarrer le système.

Un moyen plus propre mais simple de reconfigurer correctement grub peut être d'utiliser un disque de réparation de démarrage comme "Boot-Repair-Disk": http://sourceforge.net/p/boot-repair-cd/home/Home/

J'espère que cela vous aidera à résoudre votre problème.

Cependant, vous pourriez envisager d'utiliser Clonezilla pour répliquer l'ancien ordinateur sur le nouveau, comme indiqué dans mon commentaire.

Golboth
la source
Merci Golboth. J'ai fini par utiliser votre suggestion d'utiliser le disque de réparation de démarrage et cela a fonctionné.
snowguy
veuillez noter que clonezilla pourrait ne pas résoudre ce problème. je viens de copier mon disque dur entier (via clonezilla) sur un SSD et j'avais exactement le même UUID pour le disque dur et le SSD, j'ai fini par changer manuellement l'uuid sur le ssd puis dans les fichiers mentionnés ci-dessus sur le ssd pour avoir toujours le hdd de secours comme OS de démarrage possible
Dennis Nolte
3

Vraisemblablement, cela signifie que grub démarre et affiche une option pour démarrer sur Ubuntu, mais lorsque vous sélectionnez qu'il ne démarre pas?

Il y a deux options, je pense:

  1. Utilisez l'éditeur de ligne GRUB pour modifier l'option de démarrage linux afin de charger correctement linux (puis exécutez grub-install en tant que root pour définir de manière permanente la configuration correcte).
  2. Démarrez à partir d'une clé USB Ubuntu, montez la partition de disque ubuntu, chrootez dessus, puis exécutez grub-install.

Le premier cas devrait être plus facile si vous ne disposez que d'Ubuntu et ne disposez que d'un seul disque dur, auquel cas sélectionnez l'option "Récupération Ubuntu" et appuyez sur "e" pour modifier:

L'entrée doit ressembler à:

insmod gzio
insmod part_msdos
insmod ext2
set root=('hd0,msdos0')
search --no-floppy --fs-uuid --set=root XXXXXX
linux /boot/vmlinuz-YYYYY root=UUID=XXXXXX ro recovery nomodeset
initrd /boot/initrd.img-YYYYY

Supprimez la ligne "recherche" et remplacez "root = UUID = XXXXX" dans la ligne "linux" par "root = / dev / sda1". Essayez de démarrer cela et, espérons-le, après un court laps de temps, il vous donnera le menu de récupération Ubuntu, qui devrait avoir une option grub, qui devrait réinstaller correctement grub.

Sinon, ou si vous préférez ne pas jouer avec grub directement (qui devrait porter un avertissement de santé, utilisez une clé CD / USB comme indiqué dans https://help.ubuntu.com/community/Grub2/Installing#Reinstalling_GRUB_2

chronite
la source
Pour info, quand j'ai commencé, je n'ai pas vu l'option de démarrage de grub (peut-être parce qu'il démarre juste directement dans Ubuntu car c'était le seul OS). En tout cas j'apprécie votre aide. J'ai fini par créer un disque de réparation de démarrage.
snowguy
Merci beaucoup! Votre réponse m'a sauvé d'une mauvaise fin, quand j'ai changé bêtement l'UUID de mon fstab et Ubuntu ne pouvait plus démarrer!
reexmonkey
0

Dans mon cas, l'UUID installé par grub était différent de mon UUID actuel ( sudo blkid) pour ma partition Windows (confirmé dans grub.cfg). J'ai essayé diverses méthodes sans succès. Enfin, j'ai monté la partition Windows avec le gestionnaire de fichiers et j'ai exécuté à update-grubnouveau et l'UUID a été mis à jour avec succès dans grub.cfg.

Tavo
la source
Le programme est appelé update-grubet non grub-update. Ce n'est pas évident car la plupart des commandes grub commencent par grub-....
Fa11enAngel
0

Ce que j'ai fait au lieu de modifier fstab et grub:

  1. J'ai sauvegardé ces fichiers sur la nouvelle installation d'ubuntu ( tar -cvf /somedir/boot.tar /etc/fstab /boot/grub/grub.cfg)
  2. Restauré à partir de la sauvegarde ( tar -xvpf /mnt/remotebk/full.tar)
  3. copier le fichier fstab restauré ( cp /etc/fstab /somedir/fstab.restored)
  4. restaurer mes nouveaux fichiers de démarrage d'installation ( tar -xvpf /somedir/boot.tar -C /)
  5. Redémarré et cela a fonctionné.

J'utilise des machines virtuelles vmware, j'ai fait ce processus pour déplacer un serveur linux d'un hôte à un autre hôte.

Roberto Dimas
la source