Forum général.général tentative de configuration bizarrre: linux sur deux disques durs avec clonage du système

Posté par  . Licence CC By‑SA.
Étiquettes :
0
27
fév.
2021

bonjour, je veux faire un truc un peu compliqué dont je suis quasi sur que ça peut marcher, mais j'ai besoin d'avis éclairé pour une étape:

Je viens d'acheter un SSD de 500Go dont j'ai réservé 310go pour windows, j'ai un disque dur d'1 To rempli à environ 600 Go avec mon installation ubuntu que je souhaite cloner, ce que je souhaite faire c'est de créer une partition linux de 190GO sur le SSD, et d'y mettre tout les fichiers système nécessaire au démarrage et au bon fonctionnement d'ubuntu (environ 40G0). Le dossier /home/bourdon (mon dossier perso) faisant environ 550GO devra rester sur l'ancien disque dur.

Mon idée est donc de transférer tout les fichiers de la racine de mon disque dur de 1To vers la nouvelle partition linux du ssd, sauf le dossier /home/bourdon.
Lors du démarrage d'ubuntu sur le SSD, le système devra monter l'ancien disque dur, par exemple dans /mnt/ancien_DD, et un lien symbolique situé à /home/bourdon redirigera vers /mnt/ancien_DD/home/bourdon.

Mes questions:
Ca devrait bien fonctionner n'est ce pas? pas de soucis si le dossier /home/bourdon est un lien symbolique?

et surtout comment transférer tout les fichiers sauf /home/bourdon dans le SSD, est ce qu'un CP -RF suffit à copier tout ce qu'il y a à copier ou non?

Merci

A vrai dire j'ai posté exactement le même message sur le forum ubuntu, mais aucune réponse pour l'instant.

  • # Installer, c'est plus propre

    Posté par  . Évalué à 4 (+2/-0). Dernière modification le 27/02/21 à 22:38.

    La copie ne va pas bien fonctionner sur certains fichiers qui ne sont pas des fichiers.

    Donc, tu installes ton système, sans toucher à ton disque dur (tu le débranches, si tu veux être certain).
    Et, tu fais l'installation sur le SSD comme tu as l'habitude. Tu tests, et voilà.

    Ensuite, tu pourras modifier le /etc/fstab pour que ton disque dur soit monté.
    Soit, tu as un lien symbolique dans ton /home soit tu montes ton disque dur sur ton /home

    Comme je ne sais pas vraiment comment est ton disque dur, s'il y a des partitions ou pas, c'est difficile de te répondre, mais un lien symbolique ne posera pas de soucis si tu y tiens.

    • [^] # Re: Installer, c'est plus propre

      Posté par  . Évalué à 1 (+0/-0).

      Ah mince, c'est dommage, c'est une installation de linux qui date de longtemps, j'ai installé plein de programmes et de truc, ce serait bête de tout perdre.

      tu veux dire que certains fichiers ou données un peu inhabituelle ne peuvent être copiée avec la commande CP ?

      • [^] # Re: Installer, c'est plus propre

        Posté par  . Évalué à 5 (+3/-0).

        Ah mince, c'est dommage, c'est une installation de linux qui date de longtemps, j'ai installé plein de programmes et de truc, ce serait bête de tout perdre.

        Si tu as tout installé avec dpkg/apt/synaptic, tu peux facilement réinstaller la meme chose en utilisant
        - dpkg --get-selections > un_fichier_cool.txt

        sur ton installation actuelle, puis
        - dpkg --set-selections < un_fichier_cool.txt
        - apt -f install

        sur ta nouvelle installation.
        Attention, je te files ces commandes de tête, vérifies dans la doc tout de même.

        tu veux dire que certains fichiers ou données un peu inhabituelle ne peuvent être copiée avec la commande CP ?

        cp ne te copiera pas le bootloader sur le secteur d'amorçage par exemple.

        • [^] # Re: Installer, c'est plus propre

          Posté par  . Évalué à 2 (+1/-0).

          C'est ce que j'aurais presque recommandé aussi : récupérer la liste des paquets installés via le gestionnaire de la distribution, et dans cet exemple ne garder que les noms des paquets effectivement installés, et pas les bibliothèques

          # depart
          dpkg --get-selections | awk '/installed/{print $1}' > une_liste_sympa
          # arrivee
          apt install $(grep -v '^lib' une_liste_sympa)

          Penser à faire quelque chose de similaire pour tout ce qui a été installé avec les autres gestionnaires (pip, npm, gem, etc.)

  • # Y aller doucement

    Posté par  . Évalué à 2 (+1/-0).

    Cette page du wiki Ubuntu donne une procédure qui me semble approchante de ce que tu veux faire : https://wiki.ubuntu.com/komputes/HowToCloneFilesystem .

    C'est juste dans les paramètres rsync qu'il faut ajouter quelque chose du genre --exclude=/home/bourdon.

    Tu dois faire bien attention, comme déjà dit, au /etc/fstab et aux UUIDs (voir la commande blkid, et ne pas confondre UUID et PARTUUID).

    Si ton home n'est pas dans /home, tu peux avoir des soucis avec snap et apparmor. Le mieux est de modifier le /etc/fstab pour monter ton ancienne partition directement au lieu d'avoir un lien symbolique.

    Et surtout: fais une sauvegarde complète (du windows et du linux) avant de démarrer !

    Mais je suis d'accord avec Grégoire: c'est plus simple de réinstaller, c'est toujours l'occasion de faire un coup de propre.

    • [^] # Re: Y aller doucement

      Posté par  . Évalué à 1 (+0/-0).

      Merci
      vos deux idées ne sont pas bêtes, je vais regarder ça, je pense que je vais essayer la solution avec rsync, et en cas d'échec je me dirigerait vers celle de dpkg pas bête du tout!

      • [^] # Re: Y aller doucement

        Posté par  . Évalué à 1 (+0/-0).

        Voila j'ai réussi après beaucoup de difficulté, je met un lien de l'autre forum sur celui ci et de celui ci vers l'autre, ça pourrait aider d'autre personnes qui veulent faire la même chose.

        • [^] # Re: Y aller doucement

          Posté par  . Évalué à 1 (+0/-0).

          voici l'autre forum.

          https://forum.ubuntu-fr.org/viewtopic.php?id=2062346

          Merci pour votre aide!

          • [^] # Re: Y aller doucement

            Posté par  . Évalué à 1 (+0/-0). Dernière modification le 01/03/21 à 00:31.

            Super ! Le post est bien documenté, c'est sympa.

            J'ai trouvé quelques coquilles:

            l'option exclude de rsync est --exclude, pas -exclude

            Cette ligne semble comporter un espace de trop après vieux_dd :

            sudo ln -s /mnt/futur_point_de_montage_vieux_dd /home/bourdon/$FILE /mnt/nouveau_dd/home/bourdon/$FILE
            

            et devrait être :

            sudo ln -s /mnt/futur_point_de_montage_vieux_dd/home/bourdon/$FILE /mnt/nouveau_dd/home/bourdon/$FILE
            

            Enfin, pour les noms de fichiers avec espace, il faut faire deux choses :

            pour la boucle, il faut dire à bash de délimiter sur les retours à la ligne au lieu des espaces. La variable IFS (Input Field Separator) fait ça. Ensuite, il faut mettre des guillemets autour des noms :

            FILES_LIST="$(cat liste)"
            OLDIFS="$IFS"
            IFS="
            "
            for FILE in $FILES_LIST ; do
                sudo ln -s "/mnt/futur_point_de_montage_vieux_dd/home/bourdon/$FILE" "/mnt/nouveau_dd/home/bourdon/$FILE"
                sudo chown -P -h 1000:1000 "/mnt/nouveau_dd/home/utilisateur/$FILE"
            done
            IFS="$OLDIFS" # on remet la valeur d'origine
            
            • [^] # Re: Y aller doucement

              Posté par  . Évalué à 1 (+0/-0).

              ah merci, voila c'est corrigé!

              l'astuce pour les espaces entre les nom de fichiers, je connaissais pas, ça pourrait m'aider pour d'éventuels prochains script! cool!

Envoyer un commentaire

Suivre le flux des commentaires

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