Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
migration_ubuntu_sur_ssd [Le 02/01/2023, 19:18]
geole [Comment assurer la migration d'Ubuntu vers un SSD ?]
migration_ubuntu_sur_ssd [Le 24/10/2023, 13:10] (Version actuelle)
krodelabestiole
Ligne 1: Ligne 1:
 ===== Comment assurer la migration d'​Ubuntu vers un SSD ? ==== ===== Comment assurer la migration d'​Ubuntu vers un SSD ? ====
 +
 {{tag> migration système ssd }} {{tag> migration système ssd }}
  
-<note tip>La migration de vers un SSD revient à copier le root du disque dur vers le SSD. La page [[deplacer_root|Déplacer sa racine(ou root (/))]] traite de ce point. Elle parait mieux finalisée, plus claire. </​note>​+<note tip>La migration de vers un SSD revient à copier le root du disque dur vers le SSD. La page [[deplacer_root|Déplacer sa racine(ou root (/))]] traite de ce point. Elle parait mieux finalisée, plus claire
 + 
 +À condition qu'​Ubuntu ait été installé dans cette seule partition. Il y a aussi la [[:swap]] à déplacer, qui peut être en fichier ou en partition. Et cette méthode demande à modifier la configuration de [[:GRUB]], de [[:​mount_fstab|fstab]];​ bref elle est beaucoup plus compliquée que la méthode simple par Clonezilla (voir encadré suivant).</​note>​
  
 Situation : ubuntu installé sur un HDD, et vous n'avez pas envie de réinstaller toute la configuration ! Situation : ubuntu installé sur un HDD, et vous n'avez pas envie de réinstaller toute la configuration !
  
-Le principe ​est le suivant :+<note tip>​[[:​Clonezilla]] ​est une distribution [[:​live_usb|live]] qui permet de créer une copie conforme de l'​intégralité d'un support de stockage (disque dur ou SSD) sur un autre, ou dans un fichier ''​.img''​. 
 + 
 +Avec une tour il est généralement possible de brancher ​le SSD et le disque dur simultanément.\\  
 +C'est aussi souvent possible sur un portable, sinon il suffit de brancher son SSD en USB au moyen d'une interface externe, ou inversement (on peut utiliser [[:​Clonezilla]] //après// avoir interchangé les supports, puisque c'est un système live autonome). 
 + 
 +Il suffit de démarrer sur [[:​Clonezilla]] en changeant éventuellement l'​[[:​tutoriel:​modifier_ordre_amorcage_du_bios|ordre de démarrage dans le BIOS]], puis on peut réaliser un clone parfait de son disque en quelques clics. Clonezilla conserve même l'​[[:​uuid_et_label|UUID]] des partitions (qui sert au système à les identifier) donc il ne faut plus utiliser l'​ancien disque sur le même ordi sans en changer les UUIDs (avec [[https://​manpages.ubuntu.com/​manpages/​impish/​fr/​man8/​tune2fs.8.html|tune2fs]] ou, plus simple, en [[:​partitions|repartitionnant]] cet ancien disque dur). 
 + 
 +En suivant ​cette méthode on n'a aucun changement à effectuer côté [[:​mount_fstab|fstab]] ou [[:​GRUB]]. 
 + 
 +Cette méthode simple n'est malheureusement pas décrite sur cette page.\\  
 +Voir la [[:​clonezilla#​comment_creer_une_image_de_sauvegarde_de_partition_s_ou_de_disque|documentation à ce sujet]] sur la page  de Clonezilla.</​note>​ 
 + 
 +La méthode proposé sur cette page est la suivante ​:
     * Partitionner le SSD : avec Gparted ​     * Partitionner le SSD : avec Gparted ​
       * Créer une table de partition GPT (Onglet **Périphérique**).       * Créer une table de partition GPT (Onglet **Périphérique**).
Ligne 79: Ligne 94:
 Le transfert du logiciel ne se fera pas par clonezilla mais en lignes de commandes afin de pouvoir sélectionner. Le transfert du logiciel ne se fera pas par clonezilla mais en lignes de commandes afin de pouvoir sélectionner.
 ==== Travail préparatoire ==== ==== Travail préparatoire ====
-Avec le ubuntu fonctionnant,​ installer l'​application gparted afin de pouvoir formater le SSD. Voir ci-devant les explications. ​ +Avec le ubuntu fonctionnant,​ installer l'​application gparted afin de pouvoir formater le SSD.  ​Créer: ​ 
-  *   Une table de partition GPT. +  *   Une table de partition GPT en utilisant l'​onglet **Périphérique**
-  *   Une partition de boot EFI.      Soit 36 Mo soit 512 Mo. +  *   Une partition de boot EFI.   ​Soit 36 Mo. Soit 512 Mo. Y mettre l'​étiquette **FATSSD**. Y mettre le drapeau **ESP** si le bios est EFI. Y mettre le drapeau **bios_grub** si le bios est LEGACY
-  *   Une partition de swap égale à la taille de la RAM mémoire si l'​ordinateur est capable [[:/​tutoriel/​activer_hibernation|d'​hiberner]]. Sinon, utiliser un fichier d'​[[:/​swap#​creer_un_fichier_d_echange|échange]] à créer dans la nouvelle partition. Une taille de Go semblerait ​suffisante surtout si la taille de la RAM est importante. ​  Il faut penser à de pas mettre en oeuvre le pré-swapping ​ lorsque 40% de la RAM est consommée mais attendre ​ le seuil  de 95%. +  *   ​Une ​partition EXT4 pour le logiciel avec le reste de espace disponible éventuellement diminué de l'​espace prévu pour la partition swap. Y mettre l'​étiquette **NewUbuntu**. 
-  *   Une partition ​pour le logiciel ​avec le reste de espace disponible éventuellement diminué ​de 2 Mo+  *   ​Eventuellement,​ une partition de swap égale à la taille de la RAM mémoire si l'​ordinateur est capable [[:/​tutoriel/​activer_hibernation|d'​hiberner]]. Sinon, utiliser un fichier d'​[[:/​swap#​creer_un_fichier_d_echange|échange]] à créer dans la nouvelle partition ​s'il n'​existe pas. Une taille de Go semble ​suffisante surtout si la taille de la RAM est importante. ​  Il faut penser à de pas mettre en oeuvre le pré-swapping ​ lorsque 40% de la RAM est consommée mais attendre ​ le seuil  de 95%. 
-  ​  ​Une partition ​bios-boot de 2Mo si nécessaire+  
-==== Réalisation ​==== +<​note>​Si refind est utilisé: Au lieu de créer une partition de boot EFI, il est plus pratique de copier/​coller la partition de boot-EFI puis changer son UUID et y mettre ​ une étiquette ​**FATSSD** et un drapeau ESP.</​note>​ 
-Aux dernières nouvelles, reportée à l'an prochain.+ 
 +==== Migration des données ==== 
 +  - Devenir administrateur.<​code bash>​sudo -i</​code>​ 
 +  - Monter la partition ​de réception. <code bash>​udisksctl unmount -b /​dev/​disk/​by-label/​NewUbuntu ## On ne sait jamais 
 +udisksctl mount -b /​dev/​disk/​by-label/​NewUbuntu</​code>​  
 +  - Dupliquer ​le logiciel ​de base. Possibilité d'​ajouter l'​option **progress** pour visualiser ​le transfert des fichiers. **Durée estimée: 10 minutes.**<​code bash>​time rsync -ax --delete-before --stats --exclude '/​home' ​ /  /​media/​$USER/​NewUbuntu</​code>​ 
 +  - Dupliquer les fichiers cachés du home et le répertoire snap de tous les utilisateurs et préparer certains liens symboliques. Possibilité ​de supprimer l'​option **progress** pour masquer le transfert des fichiers. **Durée estimée ​minutes par utilisateur.**<code bash>for Me in $(ls -1 /home) ; do 
 +mkdir -pv /​media/​$USER/​NewUbuntu/​home/​$Me 
 +echo  le transfert de $Me   
 +rsync -ax  --stats --progress ​  ​/​home/​$Me/​{.[^.]*,​snap} ​ /​media/​$USER/​NewUbuntu/​home/​$Me 
 +ln -s /​media/​data/​home/​$Me/​Bureau ​            /​media/​$USER/​NewUbuntu/​home/​$Me 
 +ln -s /​media/​data/​home/​$Me/​Documents ​         /​media/​$USER/​NewUbuntu/​home/​$Me 
 +ln -s /​media/​data/​home/​$Me/​Images ​            /​media/​$USER/​NewUbuntu/​home/​$Me 
 +ln -s /​media/​data/​home/​$Me/​Musique ​           /​media/​$USER/​NewUbuntu/​home/​$Me 
 +ln -s /​media/​data/​home/​$Me/​Téléchargements ​   /​media/​$USER/​NewUbuntu/​home/​$Me 
 +ln -s /​media/​data/​home/​$Me/​Vidéos ​            /​media/​$USER/​NewUbuntu/​home/​$Me  
 +chown -R $Me:$Me /​media/​$USER/​NewUbuntu/​home/​$Me;​ done </​code>​ 
 +  - Modifier le fstab en remplaçant la partition ​racine et ajout de la partition de données avec son point de montage.<​code bash>​UUIDgood=$(echo $(lsblk ​-fe7 | grep "​NewUbuntu"​)| cut -d" " -f5)  && echo $UUIDgood 
 +UUIDold=$(grep ' \/ ' /etc/fstab | grep UUID  | cut -c6-41) && echo $UUIDold  
 +sed -i "​s/​$UUIDold/#​$UUIDold/"​ /​media/​$USER/​NewUbuntu/​etc/​fstab 
 +echo UUID=$UUIDgood ​ /  ext4 errors=remount-ro 0 1 | tee -a /​media/​$USER/​NewUbuntu/​etc/​fstab 
 +echo UUID=$UUIDold ​  /​media/​data ext4 defaults 0 2 | tee -a /​media/​$USER/​NewUbuntu/​etc/​fstab 
 +mkdir /​media/​$USER/​NewUbuntu/​media/​data 
 +egrep  " / |data" /​media/​$USER/​NewUbuntu/​etc/​fstab</​code>​  
 +  - Si le boot est EFI, mettre à jour le nouvel UUID  ​de boot dans le fichier /etc/fstab et le fichier de configuration de refind <​code bash>sed -i '/​boot\/​efi/​d'​ /​media/​$USER/​NewUbuntu/​etc/​fstab 
 +echo UUID=$(lsblk -o UUID,​NAME,​LABEL ​ | grep FATSSD | cut -c-9) /​boot/​efi ​ vfat umask=0077 0 1| tee -a /​media/​$USER/​NewUbuntu/​etc/​fstab 
 +sed -i "​s/​$UUIDold/​$UUIDgood/"​ /​media/​$USER/​NewUbuntu/​boot/​refind_linux.conf </​code>​  
 +==== Installation du grub  ​==== 
 +<​note>​Action inutile lorsque [[:/​refind|refind]] est utilisé.</​note>​ 
 +Il existe 2 possibilités pour installer le bon grub dans cette nouvelle partition. 
 +  *   ​**Avec [[/​boot-repair|boot-repair]]:​** 
 +    *  Il faut demander de réinstaller le grub du ubuntu de la partition **NewUbuntu** ​ en utilisant la partition ​ de boot [[https://​doc.ubuntu-fr.org/​lib/​exe/​fetch.php?​tok=e0329e&​media=http%3A%2F%2Fpix.toile-libre.org%2Fupload%2Foriginal%2F1416027492.png|FATSSD]] ​   
 +  *    **En technique CHROOT:** 
 +  - Préparer le passage chroot et exécuter le chroot.<​code bash> 
 +mount -t proc   /proc /​media/​$USER/​NewUbuntu/​proc && mount -t sysfs  /sys /​media/​$USER/​NewUbuntu/​sys 
 +mount --bind ​   /dev  /​media/​$USER/​NewUbuntu/​dev ​ && mount --bind ​   /run /​media/​$USER/​NewUbuntu/​run 
 +mount --bind ​   /sys  /​media/​$USER/​NewUbuntu/​sys ​ && modprobe efivars  
 +chroot /​media/​$USER/​NewUbuntu </​code>​ 
 +  - Monter la partition EFI du SSD. **Ne pas faire si le boot est en LEGACY.** <code bash> 
 +mount -v /​dev/​disk/​by-label/​FATSSD ​ /​boot/​efi</​code>​ 
 +  - Réinitialiser le grub.<​code bash>​grub-install $(blkid | grep 'FATSSD'​ | head -1 | cut -c1-8 )  
 +update-grub</​code>​ 
 +  - Démonter la partition EFI et quitter le CHROOT <code bash>​umount -v /boot/efi  
 +exit</​code>​ 
 +  - Faire la mise à jour du bios efi**Ne pas faire si le boot est en LEGACY.** <code bash> 
 +DSK=$(echo /​dev/​$(lsblk -o NAME,​Label ​ | grep -B 1  FATSSD | head -1))  && echo $DSK  
 +if [[ $(bootctl) =~ "​Secure Boot: disabled"​ ]]; then  efibootmgr --create --disk $DSK --part 1 --label ubuntu --loader "​\EFI\ubuntu\grubx64.efi";​ 
 +else efibootmgr --create --disk $DSK --part 1 --label ubuntu --loader "​\EFI\ubuntu\shimx64.efi";​ fi</​code>​ 
 +  - Quitter proprement<​code bash>​umount -v /​media/​$USER/​NewUbuntu/​{run,​dev,​sys,​proc} && umount /​media/​$USER/​NewUbuntu/​sys 
 +umount -v /​media/​$USER/​NewUbuntu ​  
 +exit</​code>​ 
 +  - Rebooter ​  sans oublier ​ de modifier le BIOS LEGACY pour mettre prioritaire le disque SSD. 
 + 
 + 
 + 
 +   
 ===== Autre méthode de migration avec gparted ===== ===== Autre méthode de migration avec gparted =====
 __Cette méthode peut s'​appliquer__:​ __Cette méthode peut s'​appliquer__:​
  • migration_ubuntu_sur_ssd.1672683505.txt.gz
  • Dernière modification: Le 02/01/2023, 19:18
  • par geole