#1 Le 27/02/2021, à 21: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
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, à 01:56)
Hors ligne
#2 Le 27/02/2021, à 22: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 27/02/2021, à 23: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 27/02/2021, à 23:10
- Qid
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
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 27/02/2021, à 23: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, à 02: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ébuter ⋅ Doc ⋅ Bien rédiger ⋅ Retour commande ⋅ Insérer image | illustrations & captures d'écran < ⋅ >
Hors ligne
#7 Le 28/02/2021, à 08: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, à 10: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, à 12: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, à 10: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, à 10:36)
Hors ligne
#10 Le 28/02/2021, à 10: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, à 10: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, à 10: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, à 17: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
Dernière modification par Coeur Noir (Le 28/02/2021, à 17:26)
Débuter ⋅ Doc ⋅ Bien rédiger ⋅ Retour commande ⋅ Insérer image | illustrations & captures d'écran < ⋅ >
Hors ligne
#13 Le 28/02/2021, à 17: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ébuter ⋅ Doc ⋅ Bien rédiger ⋅ Retour commande ⋅ Insérer image | illustrations & captures d'écran < ⋅ >
Hors ligne
#14 Le 28/02/2021, à 22: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 .... 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, à 09:27)
Hors ligne
#15 Le 28/02/2021, à 23: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 28/02/2021, à 23:09)
Hors ligne
#16 Le 28/02/2021, à 23: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 28/02/2021, à 23:26)
Hors ligne
#17 Le 01/03/2021, à 01: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, à 01:26)
Hors ligne
#18 Le 01/03/2021, à 01: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, à 02: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, à 09: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, à 09:10)
Hors ligne
#21 Le 01/03/2021, à 09: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, à 09:45)
Hors ligne
#22 Le 01/03/2021, à 11: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, à 12: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, à 12:27
- geole
Re : Cloner une install linux en copiant une partie des fichiers
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, à 18: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, à 18:57)
Hors ligne