Différences
Ci-dessous, les différences entre deux révisions de la page.
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 2 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 1 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 2 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__: |