Comment convertir le schéma de partitionnement MBR par défaut de mon instance EC2 Ubuntu au format GPT afin de contourner la limite de 2 Tio des partitions MBR sur mon volume EBS ?

Lecture de 7 minute(s)
0

Mon instance Amazon EC2 (Elastic Compute Cloud) exécute Ubuntu 16.04, 18.04 ou 20.04. Les partitions MBR sont limitées à 2 Tio. Pour contourner cette limite, je souhaite convertir le schéma de partitionnement de mon volume Amazon EBS (Elastic Block Store) en schéma de partitionnement GPT.

Résolution

**Avertissement :**avant d'arrêter et de démarrer votre instance, tenez compte des points suivants :

  • Si votre instance est sauvegardée par un stockage d'instances ou si ses volumes de stockage d'instances contiennent des données, les données sont perdues lorsque vous arrêtez l'instance. Pour en savoir plus, consultez la rubrique Déterminer le type de périphérique racine de votre instance.
  • Si votre instance fait partie d'un groupe Amazon EC2 Auto Scaling, un arrêt de l'instance peut entraîner sa fermeture. Si vous avez lancé l'instance avec Amazon EMR, AWS CloudFormation ou AWS Elastic Beanstalk, il se peut que votre instance fasse partie d'un groupe AWS Auto Scaling. Si tel est le cas, la fermeture d'une instance dépend des paramètres de protection intégrée de l'instance pour votre groupe Auto Scaling. Si votre instance fait partie d'un groupe Auto Scaling, supprimez-la temporairement de ce groupe avant de commencer les procédures de résolution.
  • L'arrêt et le démarrage d'une instance modifient son adresse IP publique. Lorsque vous acheminez le trafic externe vers votre instance, il est donc recommandé d'utiliser une adresse IP Elastic au lieu d'une adresse IP publique. Si vous utilisez Amazon Route 53, vous devrez peut-être mettre à jour les enregistrements DNS de Route 53 lorsque l'adresse IP publique change.
  • Si le comportement d'arrêt de l'instance est défini sur Fermer, l'instance se ferme lorsque vous l'arrêtez. Pour éviter ce problème, changez le comportement d'arrêt de l'instance.

**Remarque :**avant de commencer toute procédure de résolution, il est recommandé de créer une sauvegarde de votre volume EBS.

1.    Ouvrez la console Amazon EC2.

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

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

4.    Arrêtez l'instance de 3 Tio de volume racine.

5.    Détachez le volume racine (/dev/xvda ou /dev/sda1) de l'instance arrêtée. Associez-le ensuite à l'instance que vous avez créée à l'étape 2 sous la forme /dev/sdf.

6.    Connectez-vous en SSH à l'instance en cours d'exécution (créée à l'étape 2).

7.    Pour afficher la partition racine de / dev/sdf, utilisez la commande lsblk. La taille de la partition racine de /dev/sdf n'est que de 2 Tio, comme le montre l'exemple suivant :

# lsblk
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 : sur les types d'instance Nitro, le nom du périphérique de stockage en mode bloc ressemble à celui de l'exemple suivant : /dev/nvme1n1.

8.    Pour convertir la table de partition MBR au format GPT, utilisez l'outil gdisk :

Remarque : si vous saisissez des commandes incorrectes dans gdisk, quittez l'utilitaire sans enregistrer les modifications en tapant q ou bien appuyez sur Ctrl+C.

# sudo gdisk /dev/xvdf
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 commandes suivantes aux invites :

**Remarque :**assurez-vous de remplacer la valeur d'alignement des secteurs par défaut de 8 par 1. L'utilisation d'un alignement de 8 octets peut entraîner des problèmes lors de la création de la partition GPT.

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

10.    Pour créer une partition GPT, tapez les commandes suivantes aux invites : Tapez Entrée à l'invite pour le dernier secteur afin d'utiliser le numéro de secteur par défaut 2047 :

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}:                                                  
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): ef02                                                     
Changed type of partition to 'BIOS boot partition'

**Remarque :**dans cet exemple, ef02 est le numéro de la partition de démarrage du BIOS.

11.    Pour supprimer la partition racine, tapez les commandes suivantes aux invites :

Command (? for help): d                                                                                                         
Partition number (1-128): 1

12.    Pour recréer la partition racine de 3 Tio, tapez les commandes suivantes aux invites : Dans les champs **Premier secteur **, Dernier secteur et Code hexadécimal ou GUID, tapez Entrée pour utiliser les paramètres par défaut :

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}:                       
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300):                                                             
Changed type of partition to 'Linux filesystem'

13.    Pour enregistrer la table de partition GPT, tapez les commandes suivantes aux invites :

Command (? for help): w                                                                                                        
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed? (Y/N): y                                                                                          
OK; writing new GUID partition table (GPT) to /dev/xvdf.
The operation has completed successfully.

Pour afficher les informations du nouveau volume, exécutez la commande lsblk :

# lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvdf    202:80   0   3T  0 disk
└─xvdf1 202:81   0   3T  0 part

14.    Pour vérifier que le système de fichiers du périphérique /dev/xvdf1 est correct, utilisez l'outil fsck. Pour plus d'informations sur l'outil fsck, consultez la rubrique fsck sur le site web d'Ubuntu :

Remarque : si vous ajoutez un commutateur -y à la commande e2fsck, cela suppose que toutes les questions auront « oui » pour réponse.

# sudo e2fsck -f /dev/xvdf1
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

15.    Pour redimensionner le système de fichiers afin de l'étendre à 3 Tio, exécutez la commande redimensionner :

**Remarque :**le redimensionnement du système de fichiers peut prendre de 10 à 20 secondes.

# sudo resize2fs /dev/xvdf1
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.

16.    Installez Grub sur le périphérique /dev/xvdf1 et configurez-le à l'aide des commandes suivantes :

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

17.    Détachez le volume /dev/xvdfde l'instance en cours d'exécution.

18.    Associez le volume /dev/xvdf à son instance d'origine sous la forme /dev/xvda ou /dev/sda1.

19.    Démarrez l'instance d'origine avec SSH.

20.    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.

Informations connexes

Contraintes sur la taille et la configuration d'un volume EBS

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