Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 27/02/2021, à 22:36

nicobzz

Cloner une install linux en copiant une partie des fichiers

Je demandais dans ce post comment copier une installation de linux dans un autre disque dur et pouvoir booter dessus, tout en gardant certains dossier dans l'ancien disque dur.

modifcation: J'y suis arrivé, il y a l'explication dans la suite du post.

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, 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?

Modification: Oui ça marche smile

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

Dernière modification par nicobzz (Le 01/03/2021, à 02:56)

Hors ligne

#2 Le 27/02/2021, à 23:37

jpoc

Re : Cloner une install linux en copiant une partie des fichiers

Pour la racine 35 à 40 Go sont suffisants
est-ce que les partitions / et /home sont séparées sur l'ancien disque ?
ce serait plus facile
Sinon copier tout les réperrtoires et quelques fichiers ou raccourcis de la racine sauf /home
faudra modifier /etc/fstab avec les nouveaux UUID des partitions à monter
à savoir la nouvelle partition / sur le disque SSD
et la partition /home de l'ancien disque

Hors ligne

#3 Le 28/02/2021, à 00:02

nicobzz

Re : Cloner une install linux en copiant une partie des fichiers

les partitions / et /home ne sont pas séparé, ça pourrait compliqué un peu le travail.

Oui c'est ce que je pensait pour le fichier fstab. ainsi que le fichier de grub, il faut que je recherche dans la doc comment faire.

Sur un autre forum j'ai posé la même question, on m'a dit que certaines donnée seraient pas copiable (du moins par CP je suppose) tu as une idée là dessus?

Merci

Hors ligne

#4 Le 28/02/2021, à 00:10

Qid

Re : Cloner une install linux en copiant une partie des fichiers

jpoc a écrit :

Pour la racine 35 à 40 Go sont suffisants
est-ce que les partitions / et /home sont séparées sur l'ancien disque ?
ce serait plus facile

Perso j'arrondis à 50go pour le principe... Mais clairement mettre presque 4 fois plus est ridicule car ce sera de la place perdu...

Mais ce qui m'interroge le plus c'est...

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 symoblique situé à /home/bourdon redirigera vers /mnt/ancien_DD/home/bourdon

C'est simplement pas clair du tout...

Sinon pour finir et c'est surtout pour ça que j'intervien aussi : je vais avoir à faire à une situation similaire :
J'ai déplacé un disque dur avec son installation monopartition d'une ancienne tour vers une nouvelle... Jusque là pas de souci... Sauf que la neuve a un SSD dont j'aimerais profiter en y déplaçant tout sauf le home et je ne sais pas trop quelle stratégie adopter...


"GNU/Linux c'est que du bon mais M$ Windows ce n'est pas si mal"
Référent technique Ubuntu d'un Groupe d'Utilisateur du Libre
plus d'info sur mon profil

Hors ligne

#5 Le 28/02/2021, à 00:42

nicobzz

Re : Cloner une install linux en copiant une partie des fichiers

Qid, en tout cas pour moi c'est clair, le lien symbolique permettra de donner l'impression que le contenu de /mnt/ancien_DD/home/bourdon est à la place de /home/bourdon/ .
Autrement le contenu qu'il y a dans le premier disque dur dans le dossier /home/bourdon, pour le nouveau système paraitra aussi etre dans /home/bourdon.

Je ne sais pas si tu t'y connais ou non sur linux, je connais un peu sans etre un pro. les liens symboliques permettre de, entre guillemet, donner l'impression qui fichier ou un dossier est à un autre endroit.

Hors ligne

#6 Le 28/02/2021, à 03:36

Coeur Noir

Re : Cloner une install linux en copiant une partie des fichiers

Si la racine système est sur SSD tandis que le stockage de data perso est sur disque mécanique, il y a tout intérêt à laisser /home comme un dossier normal dans la racine / sur le SSD, afin de faire bénéficier les « config's perso » de logiciels de sa vitesse. Ces config's perso sont les fichiers et dossiers cachés dans chaque /home/$USER.

C'est donc avant de « migrer » vers vos nouveaux systèmes qu'il faut déjà réorganiser les anciens - si possible, si place disponible pour créer une partition pour les data perso ( organisée comme un /home mais sans les fichiers cachés, un dossier par utilisateur, avec dedans uniquement Bureau, Documents, Images et compagnie ) ou via une sauvegarde sur disque externe.

Ensuite copie de ce système ( allégé des data perso, et donc éventuellement partition réajustée ) vers le nouveau disque : sachant que même via clonage de partition, il manquera toujours quelques fichiers nécessaires au boot ( cow généralement ) donc prévoyez une live-usb et boot-repair pour réparer ensuite le boot sur le nouveau disque ( en plus des manip's déjà évoquées sur fstab ).

Sinon oui c'est possible de remplacer /home par un lien qui cible un /home ailleurs. Mais comme évoqué, c'est pas forcément le plus « efficace », c'est plutôt chaque

/home/$USER/Documents
/home/$USER/Bureau
/home/$USER/Images
/home/$USER/…etc…etc

qu'il faut remplacer par des liens qui cibleront

/media/la_grosse_partition_sur_disque_mécanique/$USER/Documents
/media/la_grosse_partition_sur_disque_mécanique/$USER/Bureau
/media/la_grosse_partition_sur_disque_mécanique/$USER/Images
/media/la_grosse_partition_sur_disque_mécanique/$USER/…etc…etc

Attention : si usage potentiel de logiciels au format snap, les points de montage doivent obligatoirement se trouver dans
/media ou /run/media ou /home ou /mnt et nulle part ailleurs ( ce sont les seuls endroits du système auxquels les snap peuvent accéder ).


DébuterDocBien rédigerRetour commandeInsérer image | illustrations & captures d'écran <>

Hors ligne

#7 Le 28/02/2021, à 09:54

Qid

Re : Cloner une install linux en copiant une partie des fichiers

@ nicobzz : mais donc toi tu as 2 home à fusionner ? C'est ça que je ne comprends pas... Le home il est dans home et point barre il n'a absolument pas lieu d'être dans media

Quant-à cette question :

on m'a dit que certaines donnée seraient pas copiable (du moins par CP je suppose) tu as une idée là dessus?

Il n'y a que windows qui autorise, et ça vaut mieux d'ailleurs, sous peine de surprise au redémarrage, à couper la branche sur laquelle on est assis : Il est bien sûr évident que la manipulation que l'on veut faire devra se faire via un live

@ Coeur Noir : ouais mais là tu nous amène un nouveau problème qu'on s'était simplifié : si les datas n'ont pas été isolées du home dès le départ pour ma part il y avait une raison : simplifier les choses pour l'utilisateur final sans trop me donner de boulot d'administration système... Et là maintenant isoler le home qui est un seul et unique dossier du système est aussi bien plus facile que de désimbriquer tout le bordel perso de l'utilisateur qui est un peu partout dans le home... Quant-à savoir si pour ma part j'ai la place pour faire le découpage dans un premier temps sur le disque sur lequel est le système... Ça me paraît être vachement plus long que de juste déplacer tout sauf home d'un disque à un autre puis de réajuster les points de montage


En fait pour moi si ça avait été ma discussion j'avais déjà mon idée derrière la tête de comment le faire mais pour être clair ce que je voudrais savoir c'est : comment d'autres ferait pour dissocier un home du reste du système suite à l'arrivée d'un nouveau disque dur dans la machine ?

Effectivement dans ma tête un simple copier-coller puis modif du fstab comme je l'ai déjà dit devrait suffire... Mais peut-être que je me trompe...


"GNU/Linux c'est que du bon mais M$ Windows ce n'est pas si mal"
Référent technique Ubuntu d'un Groupe d'Utilisateur du Libre
plus d'info sur mon profil

Hors ligne

#8 Le 28/02/2021, à 11:26

geole

Re : Cloner une install linux en copiant une partie des fichiers

Bonjour
Je comprends que ton O.S. Ubuntu est installé dans un disque dur dans une seule partition et que tu souhaites le transférer  dans un nouveau SSD que tu viens d'acheter fin d'améliorer les performances

Voici une idée de réalisation
1) Créer une partition EXT4 dans le SSD. Une taille de 40 Go devrait suffire
2) Tranférer tous les répertoires  Sauf le /home  dans cette nouvelle partition
3) Transférer tous les sous-répertoires de /home sauf ceux contenant   tes données
4) Mettre à jour le nouveau  fichier /etc/fstab  il doit contenir le nouvel UUID
5) Lancer boot-repair  pour mettre à jour la structure de boot (contexte LEGACY ou EFI) ou  faire manuellement si compétence.
6) Booter avec le nouveau SSD et vérifier que c'est OK
7) Faire le montage automatique de la partition du disque dur voir paragraphe 2.11  de https://doc.ubuntu-fr.org/gnome-disk-utility
8) Faire des liens symboliques  pour tes données  vers l'ancienne partition.
9) Vérifier que tout fonctionne bien
10) Epurer ce qui devient inutile sans se tromper ou conserver afin d'avoir un O.S. de secours!!!!!

Pour t'aide, voici  ce qui pourrait te servir pour la première copie (commande non testée mais pouvant se faire plusieurs fois) Je propose deux commandes pour simplification de codification.   A mon avis, cela peut se faire avec le système opérationnel.

sudo rsync -v -o -g -r -u -l -p -h -x --times --stats     --exclude '*.log' --exclude '.Trash*'  --exclude '/mnt' --exclude '/media'   --exclude '/home/bourdon  /   /media/DupliUbuntu

et la même pour home

sudo rsync -v -o -g -r -u -l -p -h -x --times --stats     --exclude '*.log' --exclude '.Trash*'    --exclude 'Téléchargements'  --exclude 'Documents'  --exclude 'Images'    --exclude 'Vidéos' --exclude 'Musique'   --exclude 'Public'  /home/bourdon   /media/DupliUbuntu/home/bourdon

qui est à adapter en fonction des noms de répertoires de tes données personnelles.

Ou, plus simplement, ne copier que les répertoires cachés.

rsync -a $HOME/.[^.]*    /media/DupliUbuntuBis$HOME

Puis les commandes de liens (exemple de bluc)

 
ln -s /media/data/Documents && ln -s /media/data/Images && ln -s /media/data/Musique && ln -s /media/data/Public && ln -s /media/data/Téléchargements && ln -s /media/data/Vidéos

Rectification...   Il n'y a effectivement pas besoin de faire les commandes mv!!!!!

Dernière modification par geole (Le 01/03/2021, à 13:06)


Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit,  utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir  https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248

Hors ligne

#9 Le 28/02/2021, à 11:34

nicobzz

Re : Cloner une install linux en copiant une partie des fichiers

merci beaucoup pour tes conseil coeurs noirs, je vais donc faire ça si ça accélère le démarrage du système que de mettre les fichiers de config dans le ssd.
je ne devrais pas avoir trop de difficulté à créer tout les liens symbolique, bien que je n'aime pas le scritpt bash, je devrais arriver à en faire un pour créer tout ces liens.

oui Qid, je suis en train de faire ça a partir d'une clef ou je viens d'installer linux ubuntu en live,

Qid: ce que je veux c'est laisser le contenu du dossier /home/bourdon sur mon vieux disque dur, car ce dossier est beaucoup trop volumineux(550Go) pour passer dans mon petit ssd, et tout le reste du système soit 40go sur mon nouveau SSD. Il faut alors une astuce, c'est à dire utiliser des liens symboliques, pour quand les programmes linux veulent accéder aux dossiers et sous dossier de /home/bourdon/ il n'aille pas les chercher dans le SSd, mais dans mon ancien disque dur.

Non il n'y a pas de fusion des dossiers.

Le fait que les fichiers système sont utilisés au démarrage, et que je les passe sur le ssd devrait permettre d'accélérer le démarrage: 10 seconde au lieu d1m40s

Dernière modification par nicobzz (Le 28/02/2021, à 11:36)

Hors ligne

#10 Le 28/02/2021, à 11:40

Qid

Re : Cloner une install linux en copiant une partie des fichiers

Ah oui rsync est aussi une bonne idée et vu l'exemple faciliterait la sortie juste des données et non de tout le home en effet... Je prend note de mon côté même si :
- la commande rsync mériterait peut-être d'être expliquée vu la quantité d'attribu non explicite présent
- j'ai des doutes sur l'exactitude de la commande mv proposée
En tous cas merci geole pour ton intervention


"GNU/Linux c'est que du bon mais M$ Windows ce n'est pas si mal"
Référent technique Ubuntu d'un Groupe d'Utilisateur du Libre
plus d'info sur mon profil

Hors ligne

#11 Le 28/02/2021, à 11:45

Qid

Re : Cloner une install linux en copiant une partie des fichiers

Ok nicobzz... Ta dernière intervention est bien plus clair et donc on a bien exactement la même demande finalement... C'est la façon dont tu l'a expliquée, peut-être dû au fait que tu visualises moins bien que moi le résultat, qui fait que tu n'étais pas clair... mais ce n'est pas grave... En tous cas je pense vraiment que c'est l'idée de geole qu'il faut suivre...

Édition faite pour clarification de mes propos...

Dernière modification par Qid (Le 28/02/2021, à 11:47)


"GNU/Linux c'est que du bon mais M$ Windows ce n'est pas si mal"
Référent technique Ubuntu d'un Groupe d'Utilisateur du Libre
plus d'info sur mon profil

Hors ligne

#12 Le 28/02/2021, à 18:25

Coeur Noir

Re : Cloner une install linux en copiant une partie des fichiers

Je crois aussi que geole a très très bien résumé l'affaire !

Et comme QiD j'ai un doute concernant la mv → là elle suppose que les dossiers dans ~ [ = /home/$USER ] étaient bien remplis de fichiers, qu'on les déplace alors vers /media/… pour enfin créer les liens vers ces choses qu'on vient de déplacer OR n'est ce pas contradictoire avec la deuxième commande rsync ( celle pour /home/$USER qui exclue justement les data Téléchargements, Documents, etc ) ???

Note : penser à toujours lever le doute lors de l'utilisation du mot home :
⋅ soit il s'agit du dossier système qui contient les dossiers personnels des divers humains enregistrés comme utilisateurs du système → /home → contient pierre, paula, jacquie
⋅ soit il s'agit du dossier personnel d'un utilisateur, qui contient ses datas à lui, ses config's cachées + ses data perso à lui-seul → ~/home/$USER → contient Bureau, documents, Images, etc…etc + fichiers cachés
⋅ on emploie facilement le même mot pour désigner ces 2 emplacements différents, aux fonctions différentes :
Et là maintenant isoler le home qui est un seul et unique dossier du système est aussi bien plus facile que de désimbriquer tout le bordel perso de l'utilisateur qui est un peu partout dans le home
→ le bordel perso de l'utilisateur Jacquie n'est pas un peu partout dans le home, le bordel perso de Jacquie, c'est seulement les fichiers et dossiers visibles dans /home/jacquie/
→ ça n'est donc éventuellement pas très compliqué de désimbriquer le foutoir lol

Dernière modification par Coeur Noir (Le 28/02/2021, à 18:26)


DébuterDocBien rédigerRetour commandeInsérer image | illustrations & captures d'écran <>

Hors ligne

#13 Le 28/02/2021, à 18:39

Coeur Noir

Re : Cloner une install linux en copiant une partie des fichiers

@geole : pas testé les commandes rsync mais attention aux guillemets simples / doubles, la première finit par

--exclude '/home/bourdon  /   /media/DupliUbuntu

je suppose que c'est plutôt

--exclude '/home/bourdon'  /   /media/DupliUbuntu

la seconde finit par

--exclude ''Public" /home/bourdon   /media/DupliUbuntu

je suppose que c'est plutôt

--exclude 'Public'   /home/bourdon   /media/DupliUbuntu

Et partant de ces commandes, est-ce que la suivante ferait ce que je crois, c'est à dire copier dans /media/HUMAN-DATA les affaires de tous les utilisateurs SAUF leurs dossiers et fichiers cachés ???

sudo rsync -v -o -g -r -u -l -p -h -x --times --stats   --exclude '.*'   /home   /media/HUMAN-DATA

DébuterDocBien rédigerRetour commandeInsérer image | illustrations & captures d'écran <>

Hors ligne

#14 Le 28/02/2021, à 23:43

nicobzz

Re : Cloner une install linux en copiant une partie des fichiers

Re bonsoir!!

Je viens de réussir, avec beaucoup beaucoup de mal, mais ça y est, c'est fait, du coup, je vais faire un petit tuto, ça devrait aider d'autre personnes!

Donc voici un tuto pour copier une installation de linux dans un autre disque dur et pouvoir booter dessus, tout en gardant certains dossier dans l'ancien disque dur.

-1) si jamais cette méthode est trop compliqué un personne sur un autre forum:
https://linuxfr.org/forums/general-gene … nt-1843065
m'a suggéré de réinstaller linux dans la nouvelle partition et de réinstaller les package que j'ai installé sur l'ancien disque dur par les commandes

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

Ce qui n'est pas bête non plus et surement beaucoup plus simple, a vous de décidez de réinstaller linux ou de cloner linux, ce que j'explique ci dessous:

0.1 )Sauvegardez par prudence les fichiers que vous ne voulez pas perdre.

0.2) Créer une clef usb d'un linux bootable, si je ne dis pas de bétise les image d'ubuntu actuelles permettent à la fois l'installation d'ubuntu, aussi l'utilisation en live d'ubuntu , c'est à dire qu'on peut lancer ubuntu depuis la clefs. Indispensable pour certaines étapes et Indispensables si on fait une erreur de manipulation entre autre des fichiers GRUB. on trouve des tuto sur internet pour créer ces clefs.

1) Créer une partition EXT4 dans le SSD. Une taille de 40 Go devrait suffire, j'ai fait une partition trop grosse: 160Go cependant 40Go est pour moi trop petit, 80Go m'aurait fait l'affaire.
  pour estimer l'espace nécessaire si vous voulez transférer tout les fichiers sauf /home faite:

  cd /home
  du -h -d 1

là vous obtenez la taille du dossier /home/

  puis faites un

df -h

  vous obtenez l'espace utilisé sur le disque racine

  vous faites la soustraction "taille utilsée sur le disque racine" - "taille du dossier /home" et vous obtenez un estimation de la taille nécessaire pour votre nouvelle partition.

  L'application gnome-disks en mode graphique a fait l'affaire pour moi
  Penser aussi à créer une partition swap sur votre SSD, il faut mieux que le swap soit sur un SSD que sur un disque dur, surtout si vous avez peu de mémoire vive. moi j'ai pas pensé à le faire

2) Transférer tous les répertoires  Sauf le /home  dans cette nouvelle partition

Pour cela il faut utiliser l'utilitaire rsync car il permet de conserver les paramètres particuliers des fichiers. mais à partir d'une live clef, car il ne faut pas que le système actuel utilise les fichiers pendant qu'on les copie.
Booter sur la clef usb, en mode test de linux.
Pour obtenir l'uuid et le chemin /dev/sd* de votre partition, sur la ligne de commande faites:

sudo blkid

ou/ et

sudo lsblk

ou lancer
gnome-disks

Ca vous permettra d'identifier l'ancien disque dur et le nouveau SSD avec leur uuid.

Créez les dossiers /mnt/vieux_dd et /mnt/nouveau_dd
puis faites un

sudo mount -t ext4 /dev/sd(vieux disque dur) /mnt/vieux_dd

et

sudo mount -t ext4 /dev/sd(noveau disque dur) /mnt/nouveau_dd

Vérifiez que les disque sont bel et bien monté et contiennent bien ce qu'ils doivent contenir.

ensuite il faut utiliser l'utilitaire rsync pour transférer les fichiers:
si je me trompe pas il faut faire:

rsync --exclude '/home/utilisateur/' -aAHX /mnt/vieux_dd /mnt/nouveau_dd

ou mieux:

rsync --exclude '/home/utilisateur/*' -aAHX /mnt/vieux_dd /mnt/nouveau_dd

ce qui permet que rsync copie le dossier utilisateur sans son contenu, hors c'est important car le dossier /home et /home/utilisateur ont des droits particuliers

Les fichiers se copient.

3) Transférer tous les sous-répertoires de /home sauf ceux contenant tes données
pour copier les fichiers, ça, ça devrait fonctionner!

cd /mnt/vieux_dd/home/utilisateur
find . -maxdepth 1 -not -type d -exec sudo rsync -aAHX  /mnt/vieux_dd/home/utilisateur/{}  /mnt/nouveau_dd/home/bourdon/  \;

(j'ai fait un peu différent mais à moins d'une erreur de syntaxe ça doit marcher)


pour copier les dossiers que vous désirez et faire des liens symboliques vers le vieux dd voici ce que j'ai fait:

cd /mnt/vieux_dd/home/utilisateur
find . -maxdepth 1 -type d > fichier_texte_de_votre_choix  

Ce fichier texte il faut l'éditer pour sélectionner les dossier à copier sur le nouveau disque dur et ceux dont il faut créer un liens symbolique car trop volumineux.
Dans un fichier j'ai mis la liste des dossier à copier et dans un autre la liste des dossier dont il faut créer un lien symbolique.

J'ai alors lancer les scripts:

#!/bin/bash
cd dossier_avec_les_fichiers_text
FILES_LIST="$(cat liste_des_dossiers_a_faire_en_symlink)"
OLDIFS="$IFS"
IFS="
"

cd /mnt/vieux_dd/home/utilisateur

for FILE in $FILES_LIST
 do
 	echo sudo ln -s "/mnt/futur_point_de_montage_vieux_dd/home/bourdon/$FILE" "/mnt/nouveau_dd/home/bourdon/$FILE"
 	sudo ln -s "/mnt/futur_point_de_montage_vieux_dd/home/bourdon/$FILE" "/mnt/nouveau_dd/home/bourdon/$FILE"
 	echo sudo chown -P -h 1000:1000 "/mnt/nouveau_dd/home/utilisateur/$FILE"
 	sudo chown -P -h 1000:1000 "/mnt/nouveau_dd/home/utilisateur/$FILE"
done
IFS="$OLDIFS" # on remet la valeur d'origine

1000 étant mon numéro d'utilisateur, mais si le vôtre est différent, il faut renseigner le vôtre.


puis je copie les dossiers à copier par le script:

#!/bin/bash
cd dossier_avec_les_fichiers_text
FILES_LIST="$(cat liste_des_dossiers_a_copier)"
OLDIFS="$IFS"
IFS="
"

cd /mnt/vieux_dd/home/utilisateur

for FILE in $FILES_LIST
 do
 	echo sudo rsync -aAHX  "/mnt/vieux_dd/home/utilsateur/$FILE"  /mnt/nouveau_dd/home/utilsateur/
 	sudo rsync -aAHX  "/mnt/vieux_dd/home/utilsateur/$FILE"  /mnt/nouveau_dd/home/utilsateur/
done
IFS="$OLDIFS" # on remet la valeur d'origine

voila.

J'ai peur que les scripts que je viens de retoucher soient buguées, dite le moi je corrigerai.


4) Mettre à jour le nouveau  fichier /etc/fstab  il doit contenir le nouvel UUID

Ainsi lors du démarrage de linux avec pour racine le nouveau disque dur, l'ancien disque dur et le swap seront monté aux bons endroits.

cd /mnt/nouveau_dd/etc/
sudo cp fstab /mnt/nouveau_dd/home/utilisateur/savegarde_fstab
sudo gedit fstab

pour ma part j'ai changé la ligne mount du dossier racine et le vieux disque dur, si vous avez créé un nouveau swap, pensez à le changer

UUID=cf320fa7-7ab0-4d06-8b0f-ca4aea0e6dd6 /               ext4    errors=remount-ro 0       1
/dev/mapper/ubuntu--vg-root /mnt/futur_point_de_montage_vieux_dd               ext4    errors=remount-ro 0       1

5) Lancer boot-repair  pour mettre à jour la structure de boot (contexte LEGACY ou EFI) ou  faire manuellement si compétence.

Pour ma part j'ai eu du mal ici, et je n'ai pas utilisé boot-repair.

comment fonctionne grub: le firmware uefi de l'ordi charge grub à partir de la partition EFI du disque dur au démarrage.
grub alors lancé charge le fichier EFI/ubuntu/grub.cfg de la partition EFI qui indique à grub de charge le fichier grub.cfg de la partition linux dans /boot/grub/
Ce deuxième fichier grub.cfg donne les indications sur comment charger les noyaux linux avec quel paramètre etc...

il faut donc déjà indiquer au premier fichier grub.cfg dans l'EFI le bon disque dur:

pour ça j'ai d'abord modifié le fichier grub.cfg dans la partition EFI:

mkdir /mnt/efi
mount -t vfat /dev/sd-partition_EFI /mnt/efi
cd /mnt/efi/EFI/ubuntu/
sudo cp grub.cfg /mnt/nouveau_dd/home/utilisateur/grub_save.cfg
sudo gedit grub.cfg

pour que grub charge le fichier de configuration, le nouveau et l'initramfs à partir du nouveau dd, il faut donc changer cette ligne pour qu'elle pointe vers l'uuid du nouveau disque dur:

search.fs_uuid cf320fa7-7ab0-4d06-8b0f-ca4aea0e6dd6 root

enfin

J'ai modifié le deuxième fichier grub.cfg dans /mnt/nouveau_dd/boot/grub/grub.cfg en faisant une sauvegarde pour qu'il précise de charger le bon noyau linux avec les bons paramètres dont celui de la partition root à monter.

J'ai ainsi dupliqué un bloc de menu dans lequel j'ai changé l'uuid du disque root pour l'uuid du nouveau_dd

menuentry 'Ubuntu2' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-cf320fa7-7ab0-4d06-8b0f-ca4aea0e6dd6' {
	insmod part_gpt
	insmod ext2
	set root='UUID=cf320fa7-7ab0-4d06-8b0f-ca4aea0e6dd6'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt4 --hint-efi=hd0,gpt4 --hint-baremetal=ahci0,gpt4  cf320fa7-7ab0-4d06-8b0f-ca4aea0e6dd6
	else
	  search --no-floppy --fs-uuid --set=root cf320fa7-7ab0-4d06-8b0f-ca4aea0e6dd6
	fi
	linux /boot/vmlinuz-5.4.0-66-generic root=UUID=cf320fa7-7ab0-4d06-8b0f-ca4aea0e6dd6 ro  $vt_handoff
	initrd /boot/initrd.img-5.4.0-66-generic
}

Je vous conseil donc de ne pas copier mon petit texte dans grub.cfg , mais de dupliquer une des menuentry qui fonctionne chez vous et de la modifier.

6) Booter avec le nouveau SSD et vérifier que c'est OK

Je reboote, et là après moulte correction ça marche!

Je n'ai plus qu'à lancer un

sudo update-grub2

qui est un script qui permet de générer à partir de plein de fichier dans /etc/grub, le deuxième fichier grub.cfg dans /boot/grub/ pour que ce fichier redevienne plus propre.

Je ne l'ai pas encore fait, j'espère que ça plantera pas smile .... Après redémarrage: si ça fonctionne! youpi


7) Faire le montage automatique de la partition du disque dur voir paragraphe 2.11  de https://doc.ubuntu-fr.org/gnome-disk-utility
8) Faire des liens symboliques  pour tes données  vers l'ancienne partition.
9) Vérifier que tout fonctionne bien

Espérant être utile!

Dernière modification par nicobzz (Le 01/03/2021, à 10:27)

Hors ligne

#15 Le 01/03/2021, à 00:08

MicP

Re : Cloner une install linux en copiant une partie des fichiers

Bonjour

… Ca vous permettra d'identifier l'ancien disque dur et le nouveau SSD. …

Les noms de fichier de périphérique peuvent changer d'un démarrage à l'autre, surtout quand on ajoute un nouveau disque sur une machine,
mais pour être sûr de ne pas se faire avoir, utilise le numéro de série du disque qui est aussi noté sur l'étiquette qui est collée sur le disque.

Tu retrouves aussi ce numéro de série dans les noms de liens qui sont dans le répertoire /dev/disk/by-id
et dans le retour de la commande udisksctl

Dernière modification par MicP (Le 01/03/2021, à 00:09)

Hors ligne

#16 Le 01/03/2021, à 00:24

nicobzz

Re : Cloner une install linux en copiant une partie des fichiers

oui la commande sudo blkid la donne aussi, par contre pas la commande lsblk. je connaissais pas udiskctl, c'est vachement complet!


Est ce qu'un admin pourrait changer le nom de ce topic, par exemple en
"Cloner une installation linux vers un nouveau disque dur et pouvoir booter dessus, tout en conservant des fichiers sur l'ancien disque dur"

Ca permettrait au autres qui veulent faire pareil de mieux s'y retrouver!

Merci

Dernière modification par nicobzz (Le 01/03/2021, à 00:26)

Hors ligne

#17 Le 01/03/2021, à 02:10

MicP

Re : Cloner une install linux en copiant une partie des fichiers

Il doit y avoir un malentendu :

Je parlais du numéro de série du disque, pas de l'UUID du système de fichiers.

L'UUID du système de fichiers n'est pas indiqué dans les noms des liens qui sont dans le répertoire /dev/disk/by-id/
mais il est indiqué dans les liens qui sont dans le répertoire /dev/disk/by-uuid/

Le numéro de série dont je parle n'est pas retourné par la commande blkid

Le numéro de série dont je parle est dans le champ SERIAL
du retour de la commande udisksctl

michel@xubu:~$ udisksctl status 
MODEL                     REVISION  SERIAL               DEVICE
--------------------------------------------------------------------------
SAMSUNG MZ7LN256HCHP-000L7 EMT03L6Q  S20HNXBG423884       sda     
Kingchuxing 512GB         S0424A0   2019122000224        sdb     
michel@xubu:~$ 
michel@xubu:~$ ls -l /dev/disk/by-id/ata* | grep -v "[0-9]$"
lrwxrwxrwx 1 root root  9 févr. 28 21:08 /dev/disk/by-id/ata-Kingchuxing_512GB_2019122000224 -> ../../sdb
lrwxrwxrwx 1 root root  9 févr. 28 21:08 /dev/disk/by-id/ata-SAMSUNG_MZ7LN256HCHP-000L7_S20HNXBG423884 -> ../../sda
michel@xubu:~$ 

Ce numéro de série ne changera pas,
par contre l'UUID d'un système de fichiers est créé en même temps que le système de fichiers <=> formatage
et si tu fais une copie d'une partition formatée sur un autre disque, et que ce disque reste connecté à la machine,
tu vas te retrouver avec deux UUID exactement pareils sur deux disques différents.
Et si ces disques sont de la même marque, type et modèle,
la seule façon d'identifier le disque à coup sûr sera alors son numéro de série

Tu peux d'ailleurs utiliser ces noms de lien à la place du nom de fichier de périphérique
comme par exemple dans ces deux lignes de commandes qui feront la même chose sur la même partition du même disque :

sudo fsck /dev/disk/by-id/ata-SAMSUNG_MZ7LN256HCHP-000L7_S20HNXBG423884-part2
sudo fsck /dev/sda2

Mais si la première ligne de commandes sera appliqué à coup sûr sur la deuxième partition de mon disque SAMSUNG dont le numéro de série est S20HNXBG423884
c'est bien moins sûr pour la deuxième ligne de commande si la machine a été redémarrée entre temps après ajout d'un autre disque
et que le nom du fichier de périphérique qui était /dev/sda2 a changé pour par exemple /dev/sdc2

=======
Tu pourras changer le titre de ce fil de discussion en éditant le premier message de ce fil de discussion.
Pour l'éditer, clique sur le mot Modifier qui est en bas et à droite de ton premier message dans ce fil de discussion,
et tu verras en haut une zone de saisie dans laquelle tu pourras modifier le titre du fil de discussion

Dernière modification par MicP (Le 01/03/2021, à 02:26)

Hors ligne

#18 Le 01/03/2021, à 02:55

nicobzz

Re : Cloner une install linux en copiant une partie des fichiers

je ne savais pas du tout cela, merci pour les informations.

merci aussi pour l'astuce pour changer le nom du fil.

Hors ligne

#19 Le 01/03/2021, à 03:47

MicP

Re : Cloner une install linux en copiant une partie des fichiers

Un autre truc intéressant avec la commande udisksctl c'est l'option monitor

Ouvre deux fenêtres de terminal, et fait en sorte qu'elles soient toutes les deux agrandies au maximum et côte à côte sur ton écran
Dans une des fenêtres, lance la ligne de commande suivante :

udisksctl monitor

et dans l'autre, lance la commande :

udevadm monitor

puis connecte une clef USB ou autre disque ou support de données
et tu verras pas mal de choses intéressantes se passer.

Hors ligne

#20 Le 01/03/2021, à 10:10

nicobzz

Re : Cloner une install linux en copiant une partie des fichiers

je connaissais pas ces commandes, il y a plein de trucs intéressant sous linux, c'est sympa de voir qu'on peut tout reconfigurer.

Ce que je trouve dommage c'est qu'il faut beaucoup de temps pour apprendre tout ces trucs et que la documentation est parfois, je trouve pas très clair.

regardez  ça:

bourdon@fixe:~$ systemd-analyze 
Startup finished in 5.991s (firmware) + 3.151s (loader) + 4.360s (kernel) + 8.863s (userspace) = 22.366s 
graphical.target reached after 8.831s in userspace

ça boot en 22s au lieu d'1m40, cool!

Dernière modification par nicobzz (Le 01/03/2021, à 10:10)

Hors ligne

#21 Le 01/03/2021, à 10:27

MicP

Re : Cloner une install linux en copiant une partie des fichiers

…la documentation est parfois, je trouve pas très clair. …

Je suis autodidacte, et c'est justement parce que j'y avais trouvé énormément de documentation de qualité que j'ai apprécié Linux.
Mais je suis quand même plus sur debian que sur ubuntu, et plutôt que les traductions,
je préfère lire les documentations originales qui sont souvent en anglais ou plutôt américain.
Même chose pour WiKipédia,
par exemple, il n'y a que deux lettres qui changent dans le nom des deux liens suivants :
https://en.wikipedia.org/wiki/Ext4   https://fr.wikipedia.org/wiki/Ext4
mais le premier est beaucoup plus complet.

Parfois, je trouve des informations beaucoup plus précises sur des sites d'autres distributions
comme par exemple dans les pages du wiki d'Arch Linux

=======
Un truc intéressant à faire parce qu'il permet de tout tester sans prendre aucun risque pour son système,
c'est d'apprendre à utiliser les machines virtuelles comme par exemple qemu/kvm (voir virt-manager)
et de faire tous les tests qu'on veut dans une machine virtuelle.

Dernière modification par MicP (Le 01/03/2021, à 10:45)

Hors ligne

#22 Le 01/03/2021, à 12:59

geole

Re : Cloner une install linux en copiant une partie des fichiers

Bonjour
Je viens de voir que finalement l'opération est réussie.
Tu as fais fort pour te passer de boot-repair. Cela t'a permis de découvrir toute sa mécanique...
Personnellement,  en EFI je m'en passe et j'utilise REFIND qui détecte les O.S. qui ont présents dans la machine  tels qu'ils sont actuellement (  (pas d'utilisation du  répertoire /boot/grub)

J'ignorais que tu avais tant de répertoires de premier niveau à  ne pas dupliquer ou alors  tu en as profité pour faire une réorganisation....

Ce matin j'ai cherché un peu dans internet pour trouver une commande qui ne copierait que les répertoires cachés  et leur contenu. J'ai fini par trouver et j'ai testé.

rsync -a $HOME/.[^.]*    /media/DupliUbuntuBis$HOME

ls -als   /media/DupliUbuntuBis$HOME
total 184
20 drwx------ 12 a a 20480 mars   1 11:50 .
 4 drwxrwxr-x  3 a a  4096 mars   1 11:40 ..
60 -rw-------  1 a a 60315 févr. 28 19:58 .bash_history
 4 -rw-r--r--  1 a a   220 août   2  2020 .bash_logout
 4 -rw-r--r--  1 a a  3771 août   2  2020 .bashrc
 4 drwx------ 31 a a  4096 févr. 28 13:03 .cache
 4 drwxr-xr-x 21 a a  4096 mars   1 10:13 .config
20 drwx------  3 a a 20480 mars   1 10:20 .gnupg
 4 drwx------  2 a a  4096 sept.  6 17:13 .grsync
 4 -rw-------  1 a a    43 nov.  10 17:57 .lesshst
 4 drwxr-xr-x  3 a a  4096 août   3  2020 .local
 4 drwxrwxr-x  4 a a  4096 févr. 28 13:17 .metamorphose2
 4 drwx------  5 a a  4096 août   3  2020 .mozilla
 4 -rw-r--r--  1 a a   807 août   2  2020 .profile
 4 -rw-rw-r--  1 a a    66 sept.  6 14:59 .selected_editor
 4 drwx------  2 a a  4096 août   3  2020 .ssh
 0 -rw-r--r--  1 a a     0 août   3  2020 .sudo_as_admin_successful
 4 drwx------  6 a a  4096 sept.  6 23:02 .thunderbird
 4 -rw-------  1 a a   851 nov.   2 17:42 .viminfo
 4 -rw-rw-r--  1 a a   277 févr. 25 19:19 .wget-hsts
 4 -rw-rw-r--  1 a a  1933 sept. 15 18:23 .wsl-config
 4 -rw-rw-r--  1 a a    80 sept. 15 18:23 .wslrun
 4 drwxr-xr-x  3 a a  4096 nov.   7 08:22 .xbindkeys_config
 4 -rw-rw-r--  1 a a   935 nov.   7 08:28 .xbindkeysrc
 4 -rw-rw-r--  1 a a    26 nov.  27 12:58 .xbindkeysrc1 

NOTA: je vais rectifier les  " et les ' mal placées.

Dernière modification par geole (Le 01/03/2021, à 13:08)


Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit,  utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir  https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248

Hors ligne

#23 Le 01/03/2021, à 13:27

geole

Re : Cloner une install linux en copiant une partie des fichiers

nicobzz a écrit :

Pour ma part j'ai changé la ligne mount du dossier racine et le vieux disque dur, si vous avez créé un nouveau swap, pensez à le changer

UUID=cf320fa7-7ab0-4d06-8b0f-ca4aea0e6dd6 /               ext4    errors=remount-ro 0       1
/dev/mapper/ubuntu--vg-root /mnt/futur_point_de_montage_vieux_dd               ext4    errors=remount-ro 0       1

Bonjour
J'ai du mal à comprendre cette partie, je crains une adhérence dans le disque dur.
Pourrais-tu faire un boot-info. https://doc.ubuntu-fr.org/tutoriel/boot-info et poster l'l'URL qui sera générée


Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit,  utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir  https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248

Hors ligne

#24 Le 01/03/2021, à 19:42

nicobzz

Re : Cloner une install linux en copiant une partie des fichiers

Qu'appelle tu une adhérence dans le disque dur?

Le périphérique : /dev/mapper/ubuntu--vg-root correspond à mon ancienne partition linux sur mon vieux disque dur, elle porte ce nom et non un UUID, je crois car elle est contenue dans une partition lvm.

J'essaie de te faire le boot info, voila:
https://paste.ubuntu.com/p/GTq9XRX8jK/

Si tu veux parler par 'adhérence dans le disque' dur que je boot grub d'abord sur mon vieux disque dur, qui lui meme va continuer à boot sur le nouveau, je suis au courant, peut etre si c'est pas propre je peux arranger ça.

Dernière modification par nicobzz (Le 01/03/2021, à 19:57)

Hors ligne