Comment convertir le schéma de partitionnement MBR par défaut en GPT pour mon instance Ubuntu EC2 ?

Lecture de 8 minute(s)
0

Mon instance Ubuntu Amazon Elastic Compute Cloud (Amazon EC2) 16.04, 18.04 ou 20.04 possède un quota maximum de partitions MBR de 2 tébioctets (TiB). Pour contourner le quota, je souhaite passer à un schéma de partitionnement GPT sur mon volume Amazon Elastic Block Store (Amazon EBS).

Brève description

Les versions 22.04 et ultérieures d'Ubuntu utilisent le partitionnement GPT par défaut. Cependant, vous devez configurer manuellement le partitionnement GPT pour les versions 16.04, 18.04 et 20.04 d'Ubuntu.

Résolution

Important : Avant d'arrêter et de démarrer votre instance, effectuez les actions suivantes :

Remarque : Lorsque vous arrêtez et démarrez une instance, son adresse IP publique change. Une bonne pratique consiste à utiliser une adresse IP Elastic pour acheminer le trafic externe vers votre instance au lieu d'une adresse IP publique. Si vous utilisez Amazon Route 53, vous devrez peut-être mettre à jour les enregistrements DNS Route 53 lorsque l'adresse IP publique change.

Pour convertir le schéma de partitionnement MBR par défaut de votre instance Ubuntu en GPT, procédez comme suit :

  1. Ouvrez la console Amazon EC2.

  2. Lancez une instance à partir d'une IMA (Amazon Machine Image) qui exécute Ubuntu.

  3. Lancez une deuxième instance à partir de la même AMI Ubuntu avec un volume racine de 3 TiB dans la même zone de disponibilité.

  4. Arrêtez la deuxième instance.

  5. Détachez le volume racine /dev/xvda ou /dev/sda1 de la deuxième instance. Puis, attachez le volume racine en tant que /dev/sdf à la première instance.

  6. Utilisez SSH pour vous connecter à la première instance.

  7. Pour afficher la partition racine de /dev/sdf, exécutez la commande lsblk suivante :

    sudo lsblk

    Exemple de sortie :

    NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    (snip)
    xvdf    202:80    0   3T  0 disk
    └─xvdf1 202:81    0   2T  0 part
    (snip)

    Remarque : Dans l'exemple précédent, la partition racine de /dev/sdf est de 2 téraoctets (To). Sur les types d'instances Nitro, le nom du périphérique de blocage est similaire à /dev/nvme1n1.

  8. Pour convertir la table de partition de MBR en GPT, utilisez l'outil gdisk pour exécuter la commande suivante :

    sudo gdisk /dev/xvdf

    Remarque : Si vous entrez des commandes incorrectes dans gdisk, appuyez sur q ou sur Ctrl-C pour quitter gdisk et ne pas enregistrer les modifications.
    Exemple de sortie :

    GPT fdisk (gdisk) version 1.0.1
    
    Partition table scan:
      MBR: MBR only
      BSD: not present
      APM: not present
      GPT: not present
    
    ***************************************************************
    Found invalid GPT and valid MBR; converting MBR to GPT format
    in memory. THIS OPERATION IS POTENTIALLY
        DESTRUCTIVE! Exit by
    typing 'q' if you don't want to convert your MBR partitions
    to GPT format!
  9. Pour passer en mode Expert et définir la valeur d'alignement des secteurs, saisissez les valeurs suivantes aux invites :

    Command (? for help): x                                            
    Expert command (? for help): l                                     
    Enter the sector alignment value (1-65536, default = 2048): 1      
    Expert command (? for help): m

    Remarque : Appuyez sur Entrée après chaque invite. La configuration précédente modifie la valeur d’alignement des secteurs de la valeur par défaut 8 à 1. Si vous utilisez l'alignement de 8 octets (B), vous risquez de rencontrer des problèmes lors de la création de la partition GPT.

  10. Pour créer une partition GPT, saisissez les valeurs suivantes aux invites :

Command (? for help): n                                                                                                        
Partition number (2-128, default 2): 128                                                                                
First sector (34-6291455966, default = 4294967296) or {+-}size{KMGTP}: 34                     
Last sector (34-2047, default = 2047) or {+-}size{KMGTP}:                                              
Hex code or GUID (L to show codes, Enter = 8300): ef02                                                     

Remarque : Appuyez sur Entrée après chaque invite. Lorsque vous appuyez sur Entrée pour l'invite Dernier secteur, vous recevez la sortie Le type actuel est « Système de fichiers Linux ». Dans l'exemple précédent, ef02 est le numéro de partition de démarrage du BIOS.
Exemple de sortie :

Changed type of partition to 'BIOS boot partition'
  1. Pour supprimer la partition racine, saisissez les valeur suivantes aux invites :
Command (? for help): d                                                                                                         
Partition number (1-128): 1

Remarque : Appuyez sur Entrée après chaque invite. Pour recréer la partition racine de 3 Tio, saisissez les valeurs suivantes aux invites :

Command (? for help): n                                                                                                         
Partition number (1-128, default 1): 1                                                                                     
First sector (2048-6291455966, default = 2048) or {+-}size{KMGTP}:                                  
Last sector (2048-6291455966, default = 6291455966) or {+-}size{KMGTP}:                       
Hex code or GUID (L to show codes, Enter = 8300):

Remarque : Appuyez sur Entrée après chaque invite. Lorsque vous appuyez sur Entrée pour l'invite Dernier secteur, vous recevez la sortie Le type actuel est « Système de fichiers Linux ». Pour utiliser les paramètres par défaut, saisissez Entrée dans les invites Premier secteur, Dernier secteur et Code Hex ou GUID.
Exemple de sortie :

Changed type of partition to 'Linux filesystem'
  1. Pour enregistrer la table de partition GPT, saisissez les valeurs suivantes aux invites :
Command (? for help): w                                                                                                        
Do you want to proceed? (Y/N): y

Important : Cette action remplace les partitions existantes.
Exemple de sortie :

OK; writing new GUID partition table (GPT) to /dev/xvdf.
The operation has completed successfully.
  1. Pour afficher les informations du nouveau volume, exécutez la commande lsblk suivante :
sudo lsblk

Exemple de sortie :

NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvdf    202:80   0   3T  0 disk
└─xvdf1 202:81   0   3T  0 part
  1. Pour vérifier si le système de fichiers du périphérique /dev/xvdf1 est correct, utilisez l'outil fsck pour exécuter la commande suivante :
sudo e2fsck -f /dev/xvdf1

Remarque : Pour répondre oui à toutes les questions, ajoutez un commutateur -y à la commande e2fsck. Pour plus d'informations sur l'outil fsck, consultez la page fsck.8.gz sur le site Web d'Ubuntu.
Exemple de sortie :

e2fsck 1.42.13 (17-May-2015)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
cloudimg-rootfs: 57524/262144000 files (0.0% non-contiguous), 16648272/536870655 blocks
  1. Pour redimensionner le système de fichiers à 3 TiB, exécutez la commande resize suivante :
sudo resize2fs /dev/xvdf1

Remarque : Le redimensionnement du système de fichiers peut prendre de 10 à 20 secondes.
Exemple de sortie :

resize2fs 1.42.13 (17-May-2015)
Resizing the filesystem on /dev/xvdf1 to 786431739 (4k) blocks.
The filesystem on /dev/xvdf1 is now 786431739 (4k) blocks long.
  1. Installez Grub sur le périphérique /dev/xvdf1, puis utilisez les commandes suivantes pour configurer Grub en fonction de votre version d'Ubuntu :
    Ubuntu 16.04 ou 18.04 :
sudo mount /dev/xvdf1 /mnt
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo mount --bind /dev /mnt/dev
sudo chroot /mnt /bin/bash
grub-install /dev/xvdf
grub-mkdevicemap
update-grub
exit
sudo umount -l /mnt/dev
sudo umount -l /mnt/sys
sudo umount -l /mnt/proc
sudo umount -l /mnt

Ubuntu 20.04 :

sudo mount /dev/xvdf1 /mnt
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo mount --bind /dev /mnt/dev
sudo chroot /mnt /bin/bash
grub-install /dev/xvdf
grub-mkdevicemap
echo "GRUB_DISABLE_OS_PROBER=true" >> /etc/default/grub
echo "GRUB_FORCE_PARTUUID=" >> /etc/default/grub.d/40-force-partuuid.cfg
update-grub
exit
sudo umount -l /mnt/dev
sudo umount -l /mnt/sys
sudo umount -l /mnt/proc
sudo umount -l /mnt-l /mnt/dev sudo umount -l /mnt/sys sudo umount -l /mnt/proc sudo umount -l /mnt`
  1. Détachez le volume /dev/xvdf de l'instance en cours d'exécution.
  2. Rattachez le volume /dev/xvdf à la première instance sous la forme /dev/xvda ou /dev/sda1.
  3. Utilisez SSH pour vous connecter à la première instance, puis démarrez l’instance.
  4. Pour vérifier que le volume racine de votre instance d'origine dispose désormais de 3 Tio d'espace, exécutez la commande lsblk :
sudo lsblk

Informations connexes

Contraintes de volume Amazon EBS

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 mois