En utilisant AWS re:Post, vous acceptez les AWS re:Post Conditions d’utilisation

Comment puis-je convertir le schéma de partitionnement MBR par défaut de mon instance CentOS EC2 au format GPT afin de pouvoir contourner la limite de 2 Tio pour les partitions MBR sur mon volume EBS ?

Lecture de 10 minute(s)
0

Mon instance Amazon Elastic Compute Cloud (Amazon EC2) exécute CentOS 7 depuis AWS Marketplace par centos.org. 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

Important : Avant d'arrêter et de démarrer votre instance, assurez-vous de vérifier les points suivants :

  • Les données du stockage d'instance sont perdues lorsque vous arrêtez et démarrez une instance. Si votre instance est basée sur le stockage d'instance ou si ses volumes de stockage d'instance contiennent des données, les données sont perdues lorsque vous arrêtez l'instance. Pour plus d'informations, consultez la section Volumes racine pour vos instances Amazon EC2.
  • Si votre instance fait partie d'un groupe Amazon EC2 Auto Scaling, elle peut se résilier lorsque vous l'arrêtez. Si vous lancez l'instance avec Amazon EMR, AWS CloudFormation ou AWS Elastic Beanstalk, l’instance fait probablement partie d'un groupe AWS Auto Scaling. Dans ce scénario, la résiliation de l’instance dépend des paramètres de protection d'instance contre la mise à l'échelle pour votre groupe Auto Scaling. Si votre instance fait partie d'un groupe Auto Scaling, supprimez-la temporairement du groupe Auto Scaling.
  • Lorsque vous arrêtez et démarrez l'instance, son adresse IP publique change. Il est 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 Route 53 lorsque l'adresse IP publique change.

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

Pour convertir le schéma de partitionnement MBR par défaut d'une instance CentOS EC2 en GPT, procédez comme suit :

  1. Ouvrez la console Amazon EC2.

  2. Lancez une instance depuis une Amazon Machine Image (AMI) AWS Marketplace qui exécute CentOS 7.

  3. Dans la même zone de disponibilité que la première instance, lancez une deuxième instance à partir de la même AMI CentOS qui inclut un volume racine de 3 Tio.
    Remarque : Si vous possédez déjà une instance CentOS 7, vous n'avez pas besoin d'en lancer une nouvelle. Pour CentOS 7, modifiez le volume racine pour étendre sa taille à plus de 2 Tio.

  4. Arrêtez l'instance contenant le volume racine de 3 Tio, puis arrêtez l'instance que vous avez créée à l'étape 2.
    Remarque : CentOS 7 étant issu d'une AMI AWS Marketplace, vous devez arrêter votre instance avant d’attacher un volume contenant des codes AWS Marketplace. Si vous n'arrêtez pas l'instance, l'erreur suivante se produit : « Error attaching volume: Cannot attach volume 'vol-#################' with Marketplace codes as the instance 'i-################' is not in the 'stopped' state. »

  5. Détachez le volume racine (/dev/xvda ou /dev/sda1) de l'instance arrêtée. Ensuite, attachez-le à l'instance que vous avez créée à l'étape 2 sous le nom /dev/sdf.
    Remarque : Si vous utilisez le type d'instance Xen, le nom du périphérique apparaît sous la forme /dev/sdf ou /dev/sda. Si vous utilisez le type d'instance Nitro, le nom du périphérique apparaît sous la forme /dev/nvme0n1 ou /dev/nvme1n1.

  6. Démarrez l'instance que vous avez lancée à l'étape 2, puis connectez-vous à celle-ci avec SSH.

  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 : /dev/xvdf1 peut être monté en tant que système de fichiers racine « / », comme illustré dans l'exemple suivant. Dans ce cas, arrêtez et redémarrez l'instance jusqu'à ce que /dev/xvda1 soit monté en tant que système de fichiers racine.

    # lsblk
    NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    xvda    202:0    0   8G  0 disk
    └─xvda1 202:1    0   8G  0 part /
    xvdf    202:80   0   3T  0 disk
    └─xvdf1 202:81   0   2T  0 part
  8. Pour convertir la table de partition MBR au format GPT, utilisez l'outil gdisk :

    # 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!

    Remarque : Pour installer l'outil gdisk, exécutez la commande suivante :

    sudo yum install gdisk -y
  9. Pour créer une partition GPT, exécutez les commandes suivantes quand vous y êtes invité. Saisissez enter dans l'invite 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.

  10. Pour supprimer la partition racine, exécutez les commandes suivantes quand vous y êtes invité :

Command (? for help): d
Partition number (1-128): 1
  1. Pour recréer la partition racine de 3 Tio, exécutez les commandes suivantes lorsque vous y êtes invité. 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'
  1. Pour enregistrer la table de partition GPT, exécutez les commandes suivantes lorsque vous y êtes invité :
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 sur la nouvelle partition, exécutez la commande suivante :

sudo gdisk -l /dev/xvdf
GPT fdisk (gdisk) version 0.8.10
Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
Disk /dev/xvda: 6291456000 sectors, 2.9 TiB
Logical sector size: 512 bytes
Disk identifier (GUID): 35D6B819-1C79-4EC0-920F-4D1191609505
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 6291455966
Partitions will be aligned on 8-sector boundaries
Total free space is 0 sectors (0 bytes)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048      6291455966   2.9 TiB     8300  Linux filesystem
 128              34            2047   1007.0 KiB  EF02  BIOS boot partition
  1. Pour vérifier que le système de fichiers du périphérique /dev/xvdf1 est correct, exécutez l'outil de vérification et de réparation du système de fichiers.
    CentOS 7 :
# sudo xfs_repair /dev/xvdf1
Phase 1 - find and verify superblock...
        - reporting progress in intervals of 15 minutes
Phase 2 - using internal log
        - zero log...
        - scan filesystem freespace and inode maps...
        - 05:27:07: scanning filesystem freespace - 1025 of 1025 allocation groups done
        - found root inode chunk
Phase 3 - for each AG...
        - scan and clear agi unlinked lists...
        - 05:27:07: scanning agi unlinked lists - 1025 of 1025 allocation groups done
        - process known inodes and perform inode discovery...
        - agno = 960
        - agno = 0
        - agno = 240
        - agno = 480

(snip)
        - agno = 238
        - agno = 239
        - 05:27:08: process known inodes and inode discovery - 25856 of 25856 inodes done
        - process newly discovered inodes...
        - 05:27:08: process newly discovered inodes - 1025 of 1025 allocation groups done
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - 05:27:08: setting up duplicate extent list - 1025 of 1025 allocation groups done
        - check for inodes claiming duplicate blocks...
        - agno = 0
        - agno = 1
        - agno = 2
        - agno = 3
        - agno = 4

(snip)
        - agno = 1021
        - agno = 1022
        - agno = 1023
        - agno = 1024
        - 05:27:08: check for inodes claiming duplicate blocks - 25856 of 25856 inodes done
Phase 5 - rebuild AG headers and trees...
        - 05:27:08: rebuild AG headers and trees - 1025 of 1025 allocation groups done
        - reset superblock...
Phase 6 - check inode connectivity...
        - resetting contents of realtime bitmap and summary inodes
        - traversing filesystem ...
        - traversal finished ...
        - moving disconnected inodes to lost+found ...
Phase 7 - verify and correct link counts...
        - 05:27:08: verify and correct link counts - 1025 of 1025 allocation groups done
done

CentOS 6 :

# sudo e2fsck -f /dev/xvdf1
e2fsck 1.41.12 (17-May-2010)
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
/dev/xvdf1: 18734/524288 files (0.2% non-contiguous), 284948/2096896 blocks
  1. Pour redimensionner le système de fichiers afin de l'étendre à 3 To, exécutez la commande xfs_growfs ou resize2fs.
    CentOS 7 :
# sudo mount -o nouuid /dev/xvdf1 /mnt
# sudo xfs_growfs /dev/xvdf1
meta-data=/dev/xvdf1             isize=512    agcount=1025, agsize=524224 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=536870656, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 536870656 to 786431739

CentOS 6 :

# sudo resize2fs /dev/xvdf1
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/xvdf1 to 786431739 (4k) blocks.

The filesystem on /dev/xvdf1 is now 786431739 blocks long.
  1. Installez Grub sur le périphérique /dev/xvdf1 et configurez-le à l'aide des commandes suivantes.
    Remarque : L'installation de Grub n'est pas requise pour CentOS 6. Si vous utilisez CentOS 6, passez à l'étape 15.
    CentOS 7 :
sudo mount --bind /proc /mnt/procsudo mount --bind /sys /mnt/sys
sudo mount --bind /dev /mnt/dev
sudo chroot /mnt /bin/bash
grub2-install /dev/xvdf
exit
sudo umount -l /mnt/dev
sudo umount -l /mnt/sys
sudo umount -l /mnt/proc
sudo umount -l /mnt
  1. Arrêtez l'instance.
  2. Détachez le volume /dev/xvdf de l'instance arrêtée.
  3. Attachez le volume /dev/xvdf à son instance d'origine sous la forme /dev/sda1.
  4. Démarrez l'instance d'origine, puis connectez-vous à celle-ci via SSH.
  5. 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 :
lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0   3T  0 disk
└─xvda1 202:1    0   3T  0 part /

Informations connexes

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

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