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

Dernière mise à jour : 03/06/2020

Mon instance Amazon Elastic Compute Cloud (Amazon EC2) exécute la version Ubuntu 16.04, 18.04 ou 20.04. Comment convertir le schéma de partitionnement MBR par défaut sur mon volume Amazon Elastic Block Store (Amazon EBS) en schéma de partitionnement GPT pour contourner la limite de 2 Tio pour les partitions MBR ?

Résolution

Avertissement : avant d'arrêter et de démarrer votre instance, assurez-vous de bien comprendre les informations suivantes :

  • Les données de stockage d'instance sont perdues lorsque vous arrêtez et démarrez une instance. Les données sont perdues lorsque vous arrêtez l'instance si votre instance est basée sur le stockage d'instance ou dispose de volumes de stockage d'instance contenant des données. Pour plus d'informations, consultez la sectionIdentification du type de dispositif racine de votre instance.
  • L'arrêt de l'instance peut mettre fin à l'instance si votre instance fait partie d'un groupe Auto Scaling d'Amazon EC2. Votre instance peut faire partie d'un groupe Auto Scaling d'AWS si vous l'avez lancée avec Amazon EMR, AWS CloudFormation ou AWS Elastic Beanstalk. Dans ce cas, la mise hors service dépend des paramètres de protection des instances définis pour votre groupe Auto Scaling. Si votre instance fait partie d'un groupe Auto Scaling, supprimez-la temporairement du groupe avant d'exécuter les étapes de résolution.
  • L'arrêt et le redémarrage de l'instance entraînent la modification de son adresse IP publique. Il est recommandé d'utiliser une adresse IP Elastic, et non publique pour l'acheminement du trafic externe vers votre instance. Si vous utilisez Route 53, il peut être nécessaire de mettre à jour les enregistrements DNS Route 53 lorsque l'adresse IP publique change.
  • L'instance est mise hors service lorsqu'elle est arrêtée si le comportement d'arrêt de l'instance est Mettre hors service. Vous pouvez modifier le comportement d'arrêt de l'instance pour éviter cela.

Remarque : il est recommandé de créer une sauvegarde de votre volume EBS avant de commencer à suivre les étapes de résolution.

1.    Ouvrez la console Amazon EC2.

2.     Lancez une instance à partir d'une Amazon Machine Image (AMI) 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 avec le volume racine de 3 Tio.

5.    Détachez le volume racine (/dev/xvda ou /dev/sda1) de l'instance arrêtée, puis attachez-le à l'instance que vous avez créée à l'étape 2 en tant que /dev/sdf.

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

7.    Utilisez la commande lsblk pour afficher la partition racine de /dev/sdf. La partition racine de /dev/sdf a seulement une taille de 2 Tio, comme illustré dans 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)

8.    Utilisez l'outil gdisk pour convertir la table de partition de MBR en GPT.

# 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.    Saisissez les commandes suivantes dans les invites pour passer en mode Expert et définir la valeur d'alignement du secteur.

Remarque : assurez-vous de remplacer la valeur d'alignement du secteur par défaut 8 par 1. Utiliser l'alignement de 8 octets peut entraîner des problèmes lorsque vous créez 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.    Saisissez les commandes suivantes dans les invites pour créer une partition GPT. Saisissez enter dans l'invite Dernier secteur pour 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 l'exemple précédent, ef02 est le numéro de partition de démarrage BIOS.

11.    Saisissez les commandes suivantes dans les invites pour supprimer la partition racine :

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

12.    Saisissez les commandes suivantes dans les invites pour recréer la partition racine à 3 To. Dans les invites Premier secteur, Dernier secteur et Code Hex ou GUID , saisissez enter 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.    Saisissez les commandes suivantes dans les invites pour enregistrer la table de partition GPT :

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.

Exécutez la commande lsblk pour afficher les informations sur le nouveau volume :

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

14.    Utilisez l'outil fsck pour vérifier que le système de fichiers du périphérique /dev/xvdf1 est correct. Pour plus d'informations sur l'outil fsck, consultez la section fsck sur le site Web de l'utilisateur Ubuntu.

# 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.    Exécutez la commande resize pour redimensionner le système de fichiers afin de l'étendre à 3 To.

Remarque : le redimensionnement du système de fichiers peut prendre environ 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 l'appareil /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/xvdf de l'instance en cours d'exécution.

18.    Attachez le volume /dev/xvdf à son instance d'origine en tant que /dev/sda1.

19.    Démarrez l'instance d'origine à l'aide du protocole SSH.

20.    Exécutez la commande lsblk pour vérifier que le volume racine de votre instance d'origine dispose désormais de 3 Tio d'espace.


Cet article vous a-t-il été utile ?

Cette page peut-elle être améliorée ?


Vous avez besoin d'aide ?