Forum Linux.général Réplication VirtualBox → machine physique avec tar.gz ?

Posté par  (site web personnel) . Licence CC By‑SA.
4
13
déc.
2019

Bonjour,

PS: Merci de ne pas me proposer d'autres solutions telles que Clonezilla. Je souhaite trouver la solution à mon problème, pas le contourner.

Introduction

J’installe un système GNU/Linux sur une machine virtuelle. Je configure aux petits oignons, mise à jour, installation de logiciels, personnalisation du bureau, etc.

Je fais une "image" de la manière suivante :

  • démarrage .iso (live) sur la machine virtuelle :

sudo -s
mkdir /mnt/nas && mount -t cifs //serveur/nas /mnt/nas
mkdir /mnt/sda1 && mount /dev/sda1 /mnt/sda1 && cd /mnt/sda1
tar --xattrs --xattrs-include=* -czf /mnt/nas/gnu$(date +"%Y%m%d%H%M").tar.gz *

Sur la machine physique, je "déploie" cette image de la manière suivante :

  • démarrage clé usb live :

sudo -s
mkdir /mnt/nas && mount -t cifs //serveur/nas /mnt/nas
mkfs.ext4 -L gnu /dev/sda2
mkdir /mnt/sda2 && mount /dev/sda2 /mnt/sda2 && cd /mnt/sda2
tar --xattrs -xpzf /mnt/nas/gnu201912131155.tar.gz
mount -B /dev ./dev && mount -B /sys ./sys && mount -t proc none ./proc && chroot .
grub-install --force /dev/sda2
update-grub
sed -i 's|opxx|opyy|g' /etc/hosts
sed -i 's|opxx|opyy|g' /etc/hostname
hostnamectl set-hostname opyy
blkid
exit
pluma /mnt/sda2/etc/fstab 2>/dev/null

’ mettre à jour les UUID / et swap

Ça marchait !

Cela fait des années que cela fonctionne. ’pas de problème !
J'ai ainsi fait avec un système Mint, puis Manjaro 17.

Ça marche plus :(

D’abord, la commande hostnamectl (sous chroot) me retournait un message d’erreur en lien systemd. Donc je devais déjà renommer la machine après un vrai redémarrage.

Puis, depuis peu, ça marche plus du tout :(
Après un redémarrage, ça coince sur un écran noir. Je me connecter en mode texte, tty2, utilisateur ou root. Mais pas moyen de démarrer startx, et il semble même que le réseau ne soit pas opérationnel, pas de dns.

Que faire de plus ?

D’où ma question, sans remettre en question mon tar.gz comme image, que pourrais-je faire de plus ? Prendre des précautions avant de faire l’image ? Effectuer quelques autre commandes en chroot avant de redémarrer ?

Merci d'avance pour vos idées, conseil, etc. :)

  • # nettoyer les fichiers

    Posté par  . Évalué à 4.

    y a parfois des bout de fichier à supprimer quand on clone une machine
    par ex le /etc/udev/rules.d/70-persistent….
    qui bloque la carte reseau sur une adresse MAC.

    sur debian à une époque il fallait supprimer ce fichier
    sinon la nouvelle carte reseau passait en eth1, la eth0 étant l'ancienne carte de la machine précédente.

    pour l'écran noir, ca peut venir d'un pilote non VESA/VGA dan le VirtualBox,
    il faut desintaller les vboxlinuxadditions avant ton clone (ou après l'avoir fait, sur la nouvelle machine)

  • # Des messages d'erreur ?

    Posté par  . Évalué à 3.

    Hello,

    Est-ce que tu obtiens un ou des messages d'erreur quand tu essaie de lancer le serveur X par exemple ? Ou bien quand tu essaie de configurer le réseau ?

    Julien_c'est_bien (y'a pas que Seb)

  • # Forum Linux.général Réplication VirtualBox → machine physique avec tar.gz ?

    Posté par  . Évalué à 2.

    j'ai failli posté la même question! Les réponses données m'ont bien déçu, j'aurai espéré avoir plus d'explication pour ce genre d'installation…

  • # tar et uid ?

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

    Désolé, il n'y a pas de message d'erreur particulier, facile à trouvé, …

    Par contre, là, juste avant de devoir rentrer chez moi, je suis sur une piste…

    Se pourrait-il qu'il y ai un cafouillage du côté des uid de fichiers vs /etc/passwd ?

    En effet, l'un des messages que j'ai trouve, dans /var/log/lightdm/seat0-greeter.log indique des erreur de lecture écriture sur le fichier /var/lib/lightdm/.Xauthority . Or, c'est tout le dossier qui devrait appartenir à lightdm 620 et qui appartiennent côté machine physique à systemd-timesync 972 !?

    Quelqu'un peut-il confirmer et explique les genre de problème que l'on peut ainsi rencontré suite à un tar.gz ?

    • [^] # Re: tar et uid ?

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

      Là, je dois vraiment y aller… Mais il se pourrait qu'il y ai un problème du fait d'un changement d'uid entre différentes version de Manjaro, 620 → 972 pour lightdm. Il se pourrait que tar soit super simpat’ et cherche à restaurer le uid en fonction d'une table user-name/uid (se trouvant dans l'archive) croisée avec le /etc/passwd local (clé live). Je dois trouver le moyen de désactiver ça.

      • [^] # Re: tar et uid ?

        Posté par  . Évalué à 5.

        L'option --numeric-owner de tar permet de s'affranchir de ce genre de problème.
        Il faut quasi toujours l'utiliser pour des sauvegardes/restaurations complètes.

  • # Résolu, ça fonctionne bien :)

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

    Après quelques recherches, solutions trouvées, voici la procédure qui fonctionne bien à présent :)

    Avant d’éteindre la machine virtuelle, bien sûr penser à bien tout régler, vider les caches dans Firefox, le cache des packages, etc.

    Penser, éventuellement à installer les pilotes de cartes graphiques réelles pouvant se trouver sur les machines cibles.

    Pour moi, ici :

    pacman -Sy xf86-video-amdgpu xf86-video-ati xf86-video-intel xf86-video-nouveau

    Faire l’image à parti de la machine virtuelle :

    • démarrage .iso (live) sur la machine virtuelle :

    sudo -s
    mkdir /mnt/nas && mount -t cifs //serveur/nas /mnt/nas
    mkdir /mnt/sda1 && mount /dev/sda1 /mnt/sda1 && cd /mnt/sda1
    tar --xattrs --xattrs-include=* -czf /mnt/nas/gnu$(date +"%Y%m%d%H%M").tar.gz *

    Déployer l’image sur une machine physique :

    (sda2 car il y a un NFS Windows sur sda1 et GAG sur le mbr)

    • démarrage clé usb live :

    sudo -s
    mkdir /mnt/nas && mount -t cifs //serveur/nas /mnt/nas
    mkfs.ext4 -L gnu /dev/sda2
    mkdir /mnt/sda2 && mount /dev/sda2 /mnt/sda2 && cd /mnt/sda2
    tar --xattrs --numeric-owner -xpzf /mnt/nas/gnu201912131155.tar.gz
    mount -B /dev ./dev && mount -B /sys ./sys && mount -t proc none ./proc && chroot .
    pacman -R $( pacman -Qqs virtualbox-guest | xargs )
    grub-install --force /dev/sda2
    update-grub
    sed -i 's|opxx|opyy|g' /etc/hosts
    sed -i 's|opxx|opyy|g' /etc/hostname
    blkid
    exit
    pluma /mnt/sda2/etc/fstab 2>/dev/null

    ’ mettre à jour les UUID / et swap par copier-coller.

    • [^] # Re: Résolu, ça fonctionne bien :)

      Posté par  . Évalué à 3.

      Pour résumer tes 20 lignes, tu as juste ajouté --numeric-owner ?
      Et le paquet virtualbox-guest, mais qui n'était pas ce qui te posait problème.

Suivre le flux des commentaires

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