Forum Linux.debian/ubuntu "Cloner" une ubuntu 18.04 LTS

Posté par  . Licence CC By‑SA.
Étiquettes :
1
3
nov.
2019

Bonjour,
J'ai passé pas mal de temps à configurer une machine sous Ubuntu 18.04 LTS. Maintenant, j'ai besoin de déployer cette config sur plusieurs autres machines mais je n'ai pas envie de tout refaire depuis zéro sur chacune des machines.

Aussi, j'aimerai trouver une solution pour "cloner" cette machine sur d'autres machines mais je ne suis pas sûr de la solution à adopter.

Que me conseillez-vous ?
Je pense me tourner vers LVM mais je ne suis pas sûr que ce soit vraiment fait pour ça.

Merci pour vos conseils !

  • # cloner vers quoi et comment ?

    Posté par  (site web personnel) . Évalué à 2.

    Bonjour,

    Est ce que les machines cibles sont identiques ?
    Peut on utiliser le réseau local ?
    Par un cd/dvd/clé usb ?

    • [^] # Re: cloner vers quoi et comment ?

      Posté par  . Évalué à 1.

      Bonjour,

      Est ce que les machines cibles sont identiques ?

      Non pas forcement

      Peut on utiliser le réseau local ?

      c'est possible mais cela demanderait des emménagements un peu lourd

      Par un cd/dvd/clé usb ?

      Je préfère la soluce de la clé usb (par rapport à la solution réseau local)

  • # clonezilla ?

    Posté par  . Évalué à 2.

    • [^] # Re: clonezilla ?

      Posté par  . Évalué à 1.

      Est-ce que cela fonctionne facilement sur des machines différentes ?

      • [^] # Re: clonezilla ?

        Posté par  . Évalué à 3.

        https://clonezilla.org/clonezilla-live/doc/02_Restore_disk_image/advanced/09-advanced-param.php

        Je ne l'ai plus utilisé depuis longtemps … MAis qu'entends-tu par "machines différentes" ?

        Parce que d'une façon ou d'une autre tu vas devoir reconfigurer certaines choses (au moins la conf réseau).

        • [^] # Re: clonezilla ?

          Posté par  . Évalué à 1.

          Avec ton lien, je viens de voir qu'il existe plein d'options intéressantes (notamment la gestion de grub) !

          qu'entends-tu par "machines différentes" ?

          J'entends par machine différente = machine avec du matériel différent

          Je recherche juste une solution facile à mettre en œuvre (je ne suis pas expert) qui minimise le temps passé en évitant de refaire trop de config.

        • [^] # Re: clonezilla ?

          Posté par  . Évalué à 3.

          Parce que d'une façon ou d'une autre tu vas devoir reconfigurer certaines choses (au moins la conf réseau).

          Pas s'il fait du DHCP simple….
          Oui Clonezilla marche sur des machines différentes. En fait, c'est le noyau Linux surtout qui sait charger les pilotes du matériel détecté à la volée.

          ⚓ À g'Auch TOUTE! http://afdgauch.online.fr

          • [^] # Re: clonezilla ?

            Posté par  . Évalué à 3. Dernière modification le 03 novembre 2019 à 22:04.

            En fait, c'est le noyau Linux surtout qui sait charger les pilotes du matériel détecté à la volée.

            Pas sur que ce soit aussi simple pour la carte graphique. Et parfois les chipsets wifi peuvent etre un peu compliqués à gérer. Enfin il y a aussi le démarrage (acpi/bios).: Je ne sais pas si clonezilla gère la restauration d'un un systeme acpi sur une machine Bios, et ce sans parler du 32/64 bits ( si le master est en 64 bits, ça ne marchera pas sur du 32 bits).

            • [^] # Re: clonezilla ?

              Posté par  . Évalué à 2.

              ( si le master est en 64 bits, ça ne marchera pas sur du 32 bits)

              Encore plus problématique si le parc contient des architectures du genre PowerPC ou ARM. Mais bon, vu qu'il parle de Grub ça laisse supposer du x86.

              • [^] # Re: clonezilla ?

                Posté par  . Évalué à 1.

                Oui, uniquement des architectures x86

                • [^] # Re: clonezilla ?

                  Posté par  . Évalué à 2.

                  Pour ma part, je fais du clonezilla manuel :
                  - simple tar compressé du contenu de la partition unique du système
                  - un script qui fait

                  1. création des partitions ext4 et swap avec le même UUID que dnas le système source (lire le /etc/fstav)
                  2. montage de la partition ext4
                  3. extraction du tar compressé dans cette partition
                  4. chroot dans cette partition
                  5. on lance grub2-install
                  6. on démonte la partition
                  7. on reboote

                  ⚓ À g'Auch TOUTE! http://afdgauch.online.fr

                  • [^] # Re: clonezilla ?

                    Posté par  . Évalué à 2.

                    Merci pour ces infos ! serais-tu d'accord pour partager ce script ?

                    • [^] # Re: clonezilla ?

                      Posté par  . Évalué à 2. Dernière modification le 12 novembre 2019 à 11:42.

                      Voici le script, valable pour des machines dont le disque dur n'est pas plus petit que la source. Pour ma part, il n'a été testé qu'avec Mageia de 1 à 7.

                      # partitions crées par copie du premier secteur du disque dur
                      dd if=mbr of=/dev/sda
                      
                      # pour que le noyau prenne en compte la nouvelle table de partitions
                      (echo w) | fdisk /dev/sda
                      
                      # création du seul système de fichiers
                      mkfs.ext4 -L PARTITION -U db28e295-790a-45c7-87d4-ffdf58856459 /dev/sdaX
                      
                      # décompactage de la copie du fs
                      mount /dev/sda2 /mnt
                      cd /mnt
                      tar jxvf /usb/mga7.tar.bz2
                      
                      # préparation du chroot
                      mount -o bind /proc /mnt/proc
                      mount -o bind /dev /mnt/dev
                      mount -o bind /sys /mnt/sys
                      
                      # travail en chroot : création du swap
                      chroot /mnt mkswap -L SWAP -U dd55c27d-2800-4c38-b646-80b4507ee6ac /dev/sda1
                      # travail en chroot : installation de grub
                      chroot /mnt /boot/grub2/install.sh
                      
                      # nettoyage
                      cd /
                      umount /mnt/proc
                      umount /mnt/dev
                      umount /mnt/sys
                      umount /mnt

                      ⚓ À g'Auch TOUTE! http://afdgauch.online.fr

          • [^] # Re: clonezilla ?

            Posté par  . Évalué à 1.

            Pas s'il fait du DHCP simple….

            De nos jours, les noms des interfaces réseau sont "prévisible", générées à partir d'inforamtions techniques. Du coup, le fichier /etc/network/interfaces doit être patché. Les fichiers /etc/hosts (pour associer le hostname à 127.0.1.1 qui est utilisé par sudo) et /etc/hostname (le nom de la machine) également.
            Encore que, pour le fichier interfaces, si un gestionnaire réseau graphique est utilisé, c'est inutile, puisqu'ils remplacent le fichier interfaces me semble.

            Enfin, je dirais que si:

            • les machines ne disposent que d'une seule interface réseau filaire;
            • les machines disposent d'au moins un disque SATA;
            • avoir un hostname généré n'est pas gênant;

            alors y'a moyen de scripter ça vite fait mal fait (code pas testé donc a vérifier et corriger sur machine non nécessaire avant usage):

            test -e /var/firstboost.sh && . /var/firstboost.sh
            
            NEW_IFACE=$(ip -o link | grep -v '\<lo\>' | cut -f2 -d:)
            OLD_IFACE=$(grep inet /etc/network/interfaces|tail -n1 | cut -f2 -d' ')
            sed -i "s/\\<$OLD_IFACE\\>/$NEW_IFACE/g" /etc/network/interfaces
            NEW_HOST=$(printf "%s-%s\n" $(hostname) $(udevadm info --query=all --name=sda | awk -F'=' '/ID_SERIAL=/{n=split(tolower($2),array,"_"); print array[n]}'))
            OLD_HOST=$(hostname)
            echo $NEW_HOST > /etc/hostname
            hostname $NEW_HOST
            sed -i "s/\\<$OLD_HOST\\>/NEW_HOST/g" /etc/hosts
            rm /var/firstboot.sh
            

            En gros, ce script altère les fichiers hosts, hostname et interface pour remplacer le nom de l'interface réseau Éthernet filaire (dans mon cas enpXsY, YMMV) et les noms de la machine par le nom de la dernière interface interface réseau trouvée sur la nouvelle machine (si n'y en a pas, ça pète!) et un nom composé de celui du modèle ainsi que du numéro de série du disque dur sda (idem, s'il n'y en a pas, ça pète, cas qui se présenteras notamment sur des beaglebone black qui n'ont pas de carte mémoire, leurs "disques" internes étant notés "mmcblkX").

            Encore une fois, lire, comprendre et tester sur machine pas critique: certaines données sur lesquelles je me suis basé peuvent varier en fonction des logiciels systèmes utilisés ou du hardware!

      • [^] # Re: clonezilla ?

        Posté par  . Évalué à 2.

        oui c'est fait pour.

        si ton réseau fournit un DHCP,
        tu vires le fichier
        /etc/udev/rules.d/70-persistent-net.rules

        puis tu boites sur la clé usb clonezilla
        tu sauvegardes ta machine sur un autre support (reseau, disque dur usb, etc) en choisissant disque vers image

        la seule contrainte ?

        • le disque de destination doit être aussi grand ou plus grand que la source
        • ne pas utiliser de LVM car sinon il doit cloner tout le disque => prend trop de temps et de la place sur le disque de sauvegarde

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.