J'utilise Ubuntu 10.04 et viens d'installer Linux Mint 13. Je peux utiliser Linux Mint à plein temps, mais pour l'instant je voulais l'installer sur la première partition, tout en maintenant Ubuntu amorçable.
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 58593279 29295616 83 Linux
/dev/sda2 58595326 976768064 459086369+ 5 Extended
/dev/sda5 959980140 976768064 8393962+ 82 Linux swap / Solaris
/dev/sda6 58595328 898696186 420050429+ 83 Linux
/dev/sda7 898697216 959963135 30632960 83 Linux
sda6 est une partition de données avec tous mes documents. sda7 a été ajouté pour créer la configuration à double démarrage. J'ai cloné sda1 en sda7 avec
dd if=/dev/sda1 of=/dev/sda7
Bien sûr, cela a également cloné l’UUID; j’ai donc créé un nouvel UUID pour sda7 avec
tune2fs /dev/sda7 -U random
Quand je liste les UUID avec blkid
cela a bien changé. J'ai ensuite installé Linux Mint sur sda1. J'ai également installé fstab pour monter sda7 afin de pouvoir copier les fichiers de configuration sur le nouveau système d'exploitation. Je démarre bien dans Linux Mint, mais lorsque j'essaie de démarrer dans Ubuntu, je reçois un message (de mémoire, il peut être incomplet) indiquant que le chargeur ne peut pas trouver /dev/disk/by-uuid/<old UUID>
.
À ce stade, j'ai consulté le fichier grub.cfg et, bien entendu, l'ancien UUID est répertorié, ainsi que le nouveau:
### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Ubuntu, with Linux 2.6.32-41-generic (on /dev/sda7)" --class gnu-linux --class gnu --class os {
insmod part_msdos
insmod ext2
set root='(hd0,msdos7)'
search --no-floppy --fs-uuid --set=root 3869f8c2-dcf8-4522-bc8b-91b0ce0040fa #This is the new UUID
linux /boot/vmlinuz-2.6.32-41-generic root=UUID=72a5e117-9a39-4de1-9d28-53791d055ff5 ro quiet splash #This is the old UUID
initrd /boot/initrd.img-2.6.32-41-generic
}
J'ai ensuite essayé de résoudre ce problème avec Sudo update-grub
, mais je reçois toujours la même entrée avec le mélange de nouveaux et anciens UUID. J'ai également essayé de modifier manuellement grub.cfg pour remplacer l'ancien par le nouvel UUID, mais je reçois toujours le même message, à savoir que le chargeur ne peut pas trouver un périphérique avec l'ancien UUID.
Alors, où est update-grub
qui lit l'ancien UUID? Et comment puis-je réparer grub afin qu'il puisse démarrer la partition clonée?
J'imagine que vous ne visualisez/modifiez pas le même fichier grub.cfg que le programme d'amorçage recherche. Rappelez-vous que vous avez maintenant deux différents répertoires /boot/grub
, et le chargeur de démarrage doit savoir lequel rechercher. update-grub
met à jour le fichier grub.cfg dans le fichier /boot/grub/grub.cfg
actuellement monté. Je devine que le chargeur de démarrage cherche sur l'autre partition. Après avoir terminé ma première tasse de café, je pourrai peut-être confirmer cela en parcourant votre message et peut-être prendre des notes, mais pour le moment, il faut que ce soit une supposition éclairée.
Je crois que ce que vous devez faire est de lancer Sudo grub-install --root-directory=/ /dev/sda
. Je donne la version complète pour plus d’informations - le paramètre --root-directory
par défaut est /
.
Cette commande réinstallera le chargeur de démarrage sur/dev/sda, en lui demandant de regarder dans le paramètre "répertoire-racine" (/ boot/grub) pour grub.cfg. Si vous voulez que votre fichier grub.cfg se trouve dans une autre distribution, vous pouvez le monter et spécifier un "répertoire racine" différent, tel que, par exemple, /mnt/my_other_distro/
s'il était monté dans /mnt/my_other_distro
.
Faites-moi savoir si vous avez des problèmes pendant que je bois mon café. :)
Edit: ( après le café ) Je vois maintenant un problème important ... vous auriez dû changer l'UUID pour sda1, pas sda7. Ensuite, lorsque vous installerez Mint sur sda1, cela changerait quand même si vous reformatiez, mais si vous ne le changiez pas, cela risquerait de devenir confus. En modifiant l'UUID de l'ancienne installation Ubuntu, vous avez invalidé tous les paramètres de montage de son fichier/etc/fstab, ainsi que le menu GRUB. Je suppose que Mint ne régénère pas le menu, mais ne copie que les entrées, donc peu importe que ce soit correct ou non.
L'exécution de update-grub corrige grub.cfg, mais pas le code grub dans le MBR; ceci est changé uniquement avec grub-install.
Et Linux Mint ne sait pas ce que les entrées de grub.cfg signifient réellement, car il peut faire référence à un lecteur qui n'est même pas présent à ce moment-là. Cela ajoute simplement la nouvelle entrée au sommet de celles existantes, je pense.
D'accord, j'ai imaginé une solution, ce qui est probablement ce que j'aurais dû (ou n'aurais pas dû) faire en premier lieu.
Après dd
clonage de la partition Ubuntu, avant d’installer Linux Mint, j’ai démarré sous Ubuntu. C'est alors que j'ai réalisé (en regardant la table de partition) que l'UUID avait été dupliqué. J'ai donc généré un nouvel UUID. Mais lorsque j'ai installé Linux Mint, il a quand même formaté la partition d'origine et généré un nouvel UUID. En gros, j'ai couru
Sudo tune2fs /dev/sda7 -U <old UUID>
Sudo grub-update
et réinitialiser les fstabs correctement, et tout a fonctionné. Jamais aurait dû modifier l'UUID de la partition clonée en premier lieu.
Cela dit, il peut être utile de savoir comment modifier l’UUID d’une partition tout en laissant le chargeur de démarrage le trouver. Merci donc à Marty pour la réponse ci-dessus.
Cela restera utile pour les autres et pour moi et pour moi aussi.
edit # 1 --------------------
http://www.linuxjournal.com/content/copy-your-linux-install-different-partition-or-drive
j'ai trouvé tout en regardant ..... et juste après m'être déconnecté après avoir ajouté ceci ci-dessous .....
--------------- fin de montage # 1
Et je dois ajouter ceci;
L'UUID restera toujours le même, peu importe le formatage. Il NE PEUT changer, si nécessaire, que si vous utilisez Dban ou SecureDelete (que tout le monde peut trouver en utilisant HaremsBootCD pour tous les systèmes d’exploitation ou UltimateBootCD pour Windows) (car il se déconnecte/déconnecte du système d’exploitation pour exécuter ces programmes). Seul SecureDelete peut parler directement sur le disque dur. Aucun format effectué via le système d'exploitation/ne peut effacer l'UUID, pas même via un liveCD ordinaire (comme expliqué/dit ci-dessus).
Donc oui, comme je l’aurais supposé, si la partition clonée a cloné l’uuid (ce qui est une très mauvaise idée et une mauvaise gestion de la part du logiciel devart ...), il serait prudent de garder une trace du uuid des deux disques et table de partition afin de corriger le futur fstab (en utilisant n'importe quel live CD pour le modifier en tant que racine ofcourse) pour que Linux puisse démarrer. Mais je ne pense ni ne vois pas comment le cloné aurait une partie de la table de partition racine. Partition et partition-table sont deux choses différentes, l'une se superpose à une couche sur la table. Donc, l'UUID devrait rester le même ..... sauf s'il y a une nouvelle partition ajoutée sur cette table (ether primaire, logique ou étendue)
Donc, hors du sujet ici maintenant ... Linux est amusant parce que nous pouvons le faire, mais aussi, Linux est pénible parce que nous devons savoir que nous devons faire et devons faire toutes ces choses "délicates".
Et j'AIME/AIME les forums Ubuntu/Mint/Debian/CrunchBang/Slackware car nous pouvons échanger l'ancienne et la nouvelle solution. Pas comme comme (pas aimé/aimé par la plupart et moi) dans les forums Arch où tout "résolu" est très obsolète après seulement 12 jours ou pire, et/ou tout utilisateur même se faire réprimander pour essayer de dire "merci" (même après avoir lu Arch-manuals) (peut-être devrais-je commencer à créer mon propre système d’exploitation à partir de LFS - linux-from-scratch;) pourrait être plus facile à compiler que de demander aux autres comment leur travail fonctionne, qui sait (?)
Quoi qu’il en soit, j’ai atterri ici à partir d’une recherche google pour/si un moyen de cloner une installation Linux. Non seulement j'ai trouvé que cela pouvait être fait, mais je devais m'assurer que le code UUID était correct, ce à quoi je n'avais pas pensé en plus de le cloner et de démarrer.