EC2 Ubuntu インスタンスのデフォルトの MBR パーティションスキームを GPT に変換して、EBS ボリュームの MBR パーティションの 2 TiB の制限を回避する方法を教えてください。
私の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスは Ubuntu 16.04、18.04、または 20.04 を実行しています。MBR パーティションには 2 TiB の制限があります。この制限を回避するために、Amazon Elastic Block Store (Amazon EBS) ボリュームのパーティションスキームを GPT パーティションスキームに変換したいと考えています。
解決策
**警告:**インスタンスを停止して起動する前に、次の点を考慮してください。
- インスタンスがインスタンスストアベースの場合や、データを含むインスタンスストアボリュームがある場合、インスタンスを停止するとデータは削除されます。詳細については、「インスタンスのルートデバイスタイプの判別」を参照してください。
- インスタンスが Amazon EC2 Auto Scaling グループの一部である場合、インスタンスを停止するとインスタンスが終了する可能性があります。Amazon EMR、AWS CloudFormation、または AWS Elastic Beanstalk を使用してインスタンスを起動した場合、そのインスタンスは AWS Auto Scaling グループにある可能性があります。この場合、インスタンスの終了は、Auto Scaling グループのインスタンススケールイン保護設定によって異なります。インスタンスが Auto Scaling グループの一部である場合は、解決手順を開始する前に Auto Scaling グループから一時的にインスタンスを削除します。
- インスタンスを停止および再開すると、インスタンスのパブリック IP アドレスが変更されます。外部トラフィックをインスタンスにルーティングする場合は、パブリック IP アドレスの代わりに Elastic IP アドレスを使用するのがベストプラクティスです。Amazon Route 53 を使用している場合は、パブリック IP が変更されたときに Route 53 の DNS レコードを更新しなければならない場合があります。
- インスタンスのシャットダウン動作が [終了] に設定されている場合、停止するとインスタンスは終了します。この問題を回避するには、インスタンスのシャットダウン動作を変更してください。
**注:**解決手順を開始する前に、EBS ボリュームのバックアップを作成するのがベストプラクティスです。
1. Amazon EC2 コンソールを開きます。
2. Ubuntu を実行している Amazon マシンイメージ (AMI) からインスタンスを起動します。
3. 最初のインスタンスと同じアベイラビリティーゾーンで、3 TiB のルートボリュームを持つ同じ Ubuntu AMI から 2 番目のインスタンスを起動します。
4. ルートボリュームが 3 TiB のインスタンスを停止します。
5. 停止したインスタンスからルートボリューム (/dev/xvda または /dev/sda1) をデタッチします。次に、ステップ 2 で作成したインスタンスに /dev/sdf としてアタッチします。
6. SSH を使用して、実行中のインスタンス (ステップ 2 で作成) に接続します。
7. / dev/sdf のルートパーティションを表示するには、lsblk コマンドを使用します。/dev/sdf のルートパーティションのサイズは、次の例のようにわずか 2 TiB です。
# 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)
注: Nitro インスタンスタイプでは、ブロックデバイス名は次の例のようになります: /dev/nvme1n1。
8. パーティションテーブルを MBR から GPT に変換するには、gdisk ツールを使用します。
注: gdisk に間違ったコマンドを入力した場合は、q を使用して変更を保存せずに gdisk を終了するか、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. [エキスパート] モードに入り、セクターアライメント値を設定するには、プロンプトで次のコマンドを入力します。
注:****セクターアライメントの値をデフォルトの 8 から **1 **に変更してください。8 バイトのアライメントを使用すると、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. GPT パーティションを作成するには、プロンプトで次のコマンドを入力します。デフォルトのセクター番号 2047 を使用するには、[最後のセクター] プロンプトでEnterを入力します。
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'
**注:**この例では、ef02 は BIOS ブートパーティション番号です。
11. ルートパーティションを削除するには、プロンプトで次のコマンドを入力します。
Command (? for help): d Partition number (1-128): 1
12. ルートパーティションを 3-TiB に再作成するには、プロンプトで次のコマンドを入力します。[最初のセクター]、[最後のセクター]、および [16 進コードまたは GUID] プロンプトで、Enter を入力してデフォルト設定を使用します。
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. 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.
新しいボリューム情報を表示するには、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. デバイス /dev/xvdf1 のファイルシステムが正しいことを確認するには、fsck ツールを使用します。fsck ツールの詳細については、Ubuntu ウェブサイトの「fsck」を参照してください。
注: e2fsck コマンドに -y スイッチを追加すると、すべての質問に [はい] とみなされます。
# 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. ファイルシステムのサイズを変更して 3 TiB に拡張するには、resize コマンドを実行します。
**注:**ファイルシステムのサイズ変更には 10~20 秒かかることがあります。
# 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. Grub をデバイス /dev/xvdf1 にインストールし、次のコマンドを使用して設定します。
Ubuntu 16.04 または 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. ボリューム /dev/xvdf を実行中のインスタンスから デタッチします。
18. ボリューム /dev/xvdfを /dev/xvda または /dev/sda1 として元の値に戻します。
19. 元のインスタンスを SSH で起動します。
20. 元のインスタンスのルートボリュームに 3 TiB の容量があることを確認するには、lsblk コマンドを実行します。
関連情報
関連するコンテンツ
- 質問済み 13日前lg...
- 承認された回答質問済み 22日前lg...
- 質問済み 4年前lg...
- 質問済み 1年前lg...