Bonjour,
Je vous expose mon problème.
J'ai une distribution base Debian Jessie constituée de la racine (28 Go) et d'un swap (2 Go).
Ces 2 partitions ont leur propre UUID bien entendu.
Le /dev/fstab fait référence à ces 2 UUIDs.
J'ai fait un tar.bz2 de la racine (~ 7 Go).
A partir de ce "tarball" je veux pouvoir reproduire ce système sur des disques de tailles différentes.
Mais surtout je veux conserver le GRUB2 du disque original modulo le changement des UUIDs (/ et swap).
J'ai donc réalisé un script construisant le bon partitionnement. sur le disque cible.
Par contre je galère pour la restauration du GRUB2 original (disque "source") avec les nouveaux UUIDs (ceux de / et swap).
Je crois que j'approche la solution en suivant ce lien https://wiki.debian-fr.xyz/R%C3%A9installer_Grub2
Il me semble qu'il me faut faire l'opération de "chrootage" indiquée mais dans mon esprit ce n'est pas clair.
Auriez-vous un bon conseil à me prodiguer ?
Pierre ESTREM
Duplication d'un disque et modifications des UUIDs
-
- Messages : 5
- Inscription : 24 juin 2018, 00:48
- Status : Hors-ligne
Bonjour,
Le disque original n'est pas un live Debian.
Le système à dupliquer vers n'importe quel autre support est une distro base Debian Jessie nommée AccessDV Linux destinée aux bigleux ( aveugles compris).
Cette "ADVL" a son propre GRUB2 avec des items que je veux conserver sur chaque disque copié.
Outre le pbm du "portage" de GRUB2 je rencontre le pbm des nouvelles uuids sinon... message "grub rescue>" ou écran noir !
Cela peut-il vous aider dans la compréhension de mon pbm ?
Pierre E.
Le disque original n'est pas un live Debian.
Le système à dupliquer vers n'importe quel autre support est une distro base Debian Jessie nommée AccessDV Linux destinée aux bigleux ( aveugles compris).
Cette "ADVL" a son propre GRUB2 avec des items que je veux conserver sur chaque disque copié.
Outre le pbm du "portage" de GRUB2 je rencontre le pbm des nouvelles uuids sinon... message "grub rescue>" ou écran noir !
Cela peut-il vous aider dans la compréhension de mon pbm ?
Pierre E.
- piratebab
- Site Admin
- Messages : 5870
- Inscription : 24 avr. 2016, 18:41
- Localisation : sud ouest
- Status : Hors-ligne
Ce n'était pas la question. Pour créer les clones du disque ou des partitions, comment fais tu ? Tu utilises forcément un systeme fonctionnel à partir duquel tu crées des clones d'une image disque ou partitions de référence.
-
- Messages : 5
- Inscription : 24 juin 2018, 00:48
- Status : Hors-ligne
Comme je l'ai eu dit j'ai fait un "tar.bz2" de la racine (~ 7 Go).
Sur un disque cible je crée avec fdisk un partitionnement adéquat et je crée mes fs ext4 et swap (avec mkfs.ext4 et mkswap).
"
Je "désarchive" le tar.bz2 vers la partition cible (future racine).
Je fais cela depuis le disque original sur lequel j'ai booté.
Et c'est là que je me demande comment être sûr de "porter" le GRUB2 (donc du système courant) vers le disque cible (à cloner)...
Pierre E.
Sur un disque cible je crée avec fdisk un partitionnement adéquat et je crée mes fs ext4 et swap (avec mkfs.ext4 et mkswap).
"
Je "désarchive" le tar.bz2 vers la partition cible (future racine).
Je fais cela depuis le disque original sur lequel j'ai booté.
Et c'est là que je me demande comment être sûr de "porter" le GRUB2 (donc du système courant) vers le disque cible (à cloner)...
Pierre E.
-
- Contributeur
- Messages : 930
- Inscription : 05 août 2016, 20:25
- Status : Hors-ligne
Bonjour Pierre,
Je suppose que ce sujet fait suite aux messages que tu as postés sur la liste linux-31. Tu aurais pu continuer là-bas.
Le changement des UUID n'est pas un problème pour le chargeur GRUB lui-même. Il ne concerne que le contenu du fichier de configuration /boot/grub/grub.cfg du système cible.
Installer le chargeur GRUB avec grub-install ne nécessite pas de chroot. Il suffit de monter le système de fichier auquel appartient le contenu du répertoire /boot du système cible et d'exécuter grub-install en lui indiquant le chemin vers ce répertoire. Par exemple :
Mais il n'est même pas forcément nécessaire d'installer le chargeur GRUB. Si le numéro de la partition qui contient /boot ne change pas, on peut cloner la boot image et la core image de GRUB aux mêmes emplacements que sur le disque d'origine. Par exemple :
La boot image référence le secteur de début de la core image, et la core image référence le numéro de la partition qui contient le répertoire /boot (c'est pourquoi cette méthode n'est applicable que si le numéro ne change pas. Si le disque est au format GPT la core image est à un emplacement différent, de préférence dans une partition dédiée de type "BIOS boot".
Concernant grub.cfg, il y a deux approches différentes :
- le générer entièrement avec update-grub ou grub-mkconfig (le premier appelle le second), dans un chroot. Je recommande d'ajouter GRUB_DISABLE_OS_PROBER=true dans le fichier /etc/default/grub du système cible si os-prober est installé pour éviter de détecter et ajouter les autre systèmes présents au menu de démarrage généré
- ou modifier le fichier originel en remplaçant les UUID d'origine par les nouveaux UUID.
Je suppose que ce sujet fait suite aux messages que tu as postés sur la liste linux-31. Tu aurais pu continuer là-bas.
Le changement des UUID n'est pas un problème pour le chargeur GRUB lui-même. Il ne concerne que le contenu du fichier de configuration /boot/grub/grub.cfg du système cible.
Installer le chargeur GRUB avec grub-install ne nécessite pas de chroot. Il suffit de monter le système de fichier auquel appartient le contenu du répertoire /boot du système cible et d'exécuter grub-install en lui indiquant le chemin vers ce répertoire. Par exemple :
Code : Tout sélectionner
grub-install --boot-directory=/mnt/boot /dev/sdb
Code : Tout sélectionner
dd if=/dev/sda of=/dev/sdb bs=440 count=1 # boot image du MBR
dd if=/dev/sda of=/dev/sdb bs=512 seek=1 skip=1 count=127 # core image sur un disque au format DOS/MBR (pas GPT)
Concernant grub.cfg, il y a deux approches différentes :
- le générer entièrement avec update-grub ou grub-mkconfig (le premier appelle le second), dans un chroot. Je recommande d'ajouter GRUB_DISABLE_OS_PROBER=true dans le fichier /etc/default/grub du système cible si os-prober est installé pour éviter de détecter et ajouter les autre systèmes présents au menu de démarrage généré
- ou modifier le fichier originel en remplaçant les UUID d'origine par les nouveaux UUID.
-
- Messages : 5
- Inscription : 24 juin 2018, 00:48
- Status : Hors-ligne
Bonjour Pascal,
Ravi de te lire , j'ai bien remarqué que tu étais vivant sur ce wiki. :)
Si je fais court , tu m'as ce soir permis enfin! d'aboutir !
Par contre je ne sais pas quelle solution a initié cette réussite.
Pour répondre aux premiers posts , la solution "chroot" m'a amené plusieurs fois à des "grub-rescue>". :(
Ta solution avec l'option "--boot-directory" m'a laissé au niveau encore d'un "grub-rescue>". :(
Ta solution avec les 'dd' m'a enfin permis d'obteni le GRUB2 attendu , mais en texte/fond bleu et pas en mode graphique comme tu te souviens peut-être avoir vu au CULTe.
Mais impossible de démarrer sur la racine , retour au GRUB2 après quelques secondes.
Mais la lumière fut quand j'ai découvert que l'UUID de la partition racine du disque original (disque source) apparaissait encore dans /boot/grub/grub.cfg.
Je croyais que 'update-grub' modifiait ce fichier... ! je l'avais pourtant exécuté , sans doute mal.
J'ai donc changé cette ancienne UUID qui figurait en plusieurs endroits du fichier par la nouvelle UUID et pouf , au redémarrage j'ai le beau GRUB2 que j'attendais et le boot démarre bien la racine. :)))
Là se pose une question :
- est-ce le 'grub-install --boot=...' ou les 2 commandes 'dd' (+ l'interversion de l'UUID citée dessus) qui a résolu le problème ?
Ce qui me gave c'est que le désarchivage de mon "tar.bz2" (~ 7GB) prend ~ 2h !
Faire des essais "propres" prend donc un temps fou.
J'essaierai une sauvegarde de ma racine en tar.gz. Je gagnerai un peu de temps.
Cela me surprend car Clonezilla manipule des gz mais le temps de restauration est notoirement plus court.
pierre
Ravi de te lire , j'ai bien remarqué que tu étais vivant sur ce wiki. :)
Si je fais court , tu m'as ce soir permis enfin! d'aboutir !
Par contre je ne sais pas quelle solution a initié cette réussite.
Pour répondre aux premiers posts , la solution "chroot" m'a amené plusieurs fois à des "grub-rescue>". :(
Ta solution avec l'option "--boot-directory" m'a laissé au niveau encore d'un "grub-rescue>". :(
Ta solution avec les 'dd' m'a enfin permis d'obteni le GRUB2 attendu , mais en texte/fond bleu et pas en mode graphique comme tu te souviens peut-être avoir vu au CULTe.
Mais impossible de démarrer sur la racine , retour au GRUB2 après quelques secondes.
Mais la lumière fut quand j'ai découvert que l'UUID de la partition racine du disque original (disque source) apparaissait encore dans /boot/grub/grub.cfg.
Je croyais que 'update-grub' modifiait ce fichier... ! je l'avais pourtant exécuté , sans doute mal.
J'ai donc changé cette ancienne UUID qui figurait en plusieurs endroits du fichier par la nouvelle UUID et pouf , au redémarrage j'ai le beau GRUB2 que j'attendais et le boot démarre bien la racine. :)))
Là se pose une question :
- est-ce le 'grub-install --boot=...' ou les 2 commandes 'dd' (+ l'interversion de l'UUID citée dessus) qui a résolu le problème ?
Ce qui me gave c'est que le désarchivage de mon "tar.bz2" (~ 7GB) prend ~ 2h !
Faire des essais "propres" prend donc un temps fou.
J'essaierai une sauvegarde de ma racine en tar.gz. Je gagnerai un peu de temps.
Cela me surprend car Clonezilla manipule des gz mais le temps de restauration est notoirement plus court.
pierre
-
- Contributeur
- Messages : 930
- Inscription : 05 août 2016, 20:25
- Status : Hors-ligne
Normalement le résultat est à peu près le même (dans ton cas). grub-install est plus sûr car il s'adapte à la situation alors que la méthode dd ne fonctionne que si l'organisation du système clone est identique à celle du système originel : même découpage racine/boot, même format de table de partition, même numéro de partition, même type de système de fichiers...caillou a écrit : est-ce le 'grub-install --boot=...' ou les 2 commandes 'dd' (+ l'interversion de l'UUID citée dessus) qui a résolu le problème ?
Si la cible est une clé USB, le goulot d'étranglement a de fortes chances d'être la vitesse d'écriture de celle-ci, surtout en USB 2. Quand je dois faire ce genre d'essai, j'utilise plutôt un disque (USB ou interne) comme cible, ça va plus vite et ça n'use pas la clé USB.piratebab a écrit : As tu regardé quel était le goulot d'étranglement (cpu, mémoire, accès disques ..)
-
- Messages : 5
- Inscription : 24 juin 2018, 00:48
- Status : Hors-ligne
Mon avis est que la lenteur vient simplement de la décompression "double" (tar + bz2).
Mes clés sont des Sandisk Ultre Fit : du 3.0 très rapide....
Oui je préfère la solution avec le "grub-install --boot=..." plus propre.
Mes clés sont des Sandisk Ultre Fit : du 3.0 très rapide....
Oui je préfère la solution avec le "grub-install --boot=..." plus propre.
-
- Contributeur
- Messages : 930
- Inscription : 05 août 2016, 20:25
- Status : Hors-ligne
Dans ce cas tu peux essayer d'utiliser une autre méthode de compression plus légère comme gzip au lieu de bzip2 si la vitesse de décompression compte plus que la taille de l'archive.
Note : il n'y a pas de double décompression. Le format d'archive tar n'est pas compressé.
Note : il n'y a pas de double décompression. Le format d'archive tar n'est pas compressé.