Cette manipulation va activement modifier votre table de partition de disque dur, vos données risques d'être perdues.
[Enter]
= Faire "Touche entrée" sans entrer de valeur.
Perso je me base sur mon iso custom de voidlinux, dont je posterai (ou pas) le fichier dans le thread discord.
Cet iso contient gdisk - AKA gpt-fdisk, utilitaire qui nous sera utile par la suite.
Rien ne vous empêche de vous baser sur un iso d'une autre distrib (même ubuntu).
lsblk
Ma table MBR est une installation debian classique:
/dev/sda1 - 9G - Partition root, montée sur /
- contient tout le systeme.
/dev/sda5 - 900M - Partition swap (échange RAM) - pas montée (logique) - Ça on touche pas, c'est important.
mount /dev/sda1 /mnt; df -h
Là il va falloir prendre note de la taille occupée et de l'espace libre.
Je veux gagner 1G pour la partition boot.
De ce que j'ai vu avec df -h
, j'ai utilisé que 2G d'espace sur /dev/sda1
.
Là je fais les tests sur une VM, mais vous vous doutez bien qu'avec un disque réel de centaines de gigas, vous serez en mesure de grater plus de place.
umount /mnt/
e2fsck -f /dev/sda1
Bien donc au vu de nos observations, on peut juger que réduire la taille de la partition pour la rendre à 5G de taille est raisonnable pour l'instant. C'est ce que nous allons faire. Mais si le cas change pour vous, alors il faudra prendre en compte cette façon de penser:
taille_occupée < taille_temporaire < taille_partition_moins_taille_partition_boot
Donc pour mon cas: 2G<5G<8G -> on peut donc procéder à la manip.
resize2fs /dev/sda1 5G
C'est ici qu'on rentre dans le dur. Faites attention.
Une erreur est vite arrivée.
gdisk /dev/sda
Dans gdisk, tant que vous n'avez pas validé la commande w
, votre disqu n'est pas touché.
p
Va vous montrer votre table actuelle. pour moi, la partition 1 c'est la partition root - 5 c'est le swap.
NOTEZ BIEN LE SECTEUR DE DÉMARRAGE DE LA PARTITION!!!!!!
d
On va supprimer la partition root
1
Mon numéro de partition root
n
On va recréer une partition root.
1
Même numéro, normalement,.
2048
On nous demande le secteur d'entrée de la partition. mettez le même secteur que l'ancienne partition qu'on a supprimé.
8G
On nous demande le secteur de fin. Comme dit avant, je veux gagner 1G, donc on peut mettre direct la taille réduite de la partition root.
8300
On nous demande ici le Type de partition. 8300, c'est "Linux filesystem". [Enter]
.
n
On crée désormais notre partition boot (ça change à partir d'ici pour efi et BIOS, pour les UEFI, arrêtez vous avant cette ligne et passez à l'autre partie sur EFI en bas du tuto.)
2
Partition n+1 de la root, pour moi 2. [Enter]
.
[Enter] [Enter]
On définis le secteur de démarrage et de fin de la partition sur le vide qu'on vient de créer (1G).
ef02
pour créer une partition de type "BIOS GPT".
w
Attention, après avoir fait y
on ne pourra pas revenir en arrière.
resize2fs /dev/sda1
Cette action va aggrandir la partition root sur toute sa taille disponnible (passer de 5G à 8G dans notre cas).
mount -t ext4 /dev/sda1 /mnt
for i in /dev /dev/pts /proc /sys ; do mount -B $i /mnt/$i ; done
chroot /mnt
grub-install /dev/sda; exit
umount -R /mnt/
-R
permet de démonter aussi nos partitions /dev
, /proc
, /sys
.
Donc on va presser sur n
pour créer la partition efi.
puis on fait [ENTER] [ENTER] [ENTER]
pour valider le numéro de la partition ainsi que les secteurs de début et fin (rappel, c'est automatiquement fixé entre le root et le swap)
Enfin pour le type on doit mettre ef00
(EFI System partition)
w
Pour Valider.
resize2fs /dev/sda1
mount /dev/sda1 /mnt
for i in /dev /dev/pts /proc /sys ; do mount -B $i /mnt/$i ; done
chroot /mnt
On a créé la partition EFI (qu'on va référer comme ESP en court). Mais il faut désormais créer son système de fichier (fat32)
mkfs -t vfat -v /dev/sda2
(Vérifiez bien avec votre parition à vous, pour moi c'est sda, pour vous ça peut changer)
mkdir /boot/efi
Ce dernier contiendra les composantes essentielles du système EFI, pour notre carte mère.
blkid /dev/sda2
(encore, modifiez si besoin avec votre ESP)
on va prendre la série de chiffre entre guillemets après UUID=
Cette UUID est l'identifiant unique de votre ESP. On va s'en servir pour monter l'ESP dans le fstab.
# cp /etc/fstab /root/fstab.bak
(petite backup du fstab, on ne sait jamais)
# vim /etc/fstab
À la suite de ce fichier, nous allons ajouter la ligne concernant notre ESP
UUID="XXXX-YYYY" /boot/efi vfat defaults 0 2
Il faut remplacer XXXX-YYYY
par l'UUID de votre ESP.
Ce qu'il faut retenir de cette manip (pour les débutants) c'est qu'ici, nous spécifions que l'ESP est de type fat32 et doit être monté sur /boot/efi
.
mount /boot/efi
On va installer le packet grub-efi
pour ajouter le support efi à grub (note: le nom peut changer en fonction de votre distro).
apt install grub-efi
Une fois tout celà fait, on va installer grub (le mettre à jour) sur notre disque, ce qui va écrire les données dans notre ESP
.
grub-install --target=x86_64-efi /dev/sda
update-grub
exit
jusqu'à revenir sur le live-usb.
for i in /dev /dev/pts /proc /sys ; do umount -r /mnt/$i ; done
umount /mnt/boot/efi
umount /mnt
Dans votre bios, désactivez le support LEGACY mode (aussi appelé CSM chez Asus), pour éviter tout conflit.
Normalement si vous êtes sous debian, DPKG va noter grub-pc-bin
comme désinstallable, il s'agit du paquet qui permettait l'installation de grub sur BIOS. Vous pouvez le dégager.
# apt autoremove
ou # apt remove grub-pc-bin
Si jamais il est écrit "no bootable device" (Notemment chez HP) mettez dans le boot order un mode custom, puis dans le chemin sélectionnez -> EFI
-> Votre_distro
-> grubx64.efi
. ça devrait ressembler à \EFI\votredistro\grubx64.efi
chez HP, de mémoire.
grub-install
Resources:
- The author of
gdisk
has a verbose description of MBR, GPT, and UEFI. - https://serverfault.com/questions/765778/clonezilla-restore-mbr-disk-to-4tb-disk-convert-to-gpt-linux-not-windows covers the first part of the process.