背景
AWS EC2でWindows Serverをセットアップしている際、特定のインスタンスサイズのEC2に対して2TB以上のEBSを割り当てようとすると、2TBを超える容量が認識されないという問題に遭遇しました。本記事では、その原因と解決策について解説します。
問題の概要
特定のインスタンス(例:i3.large)でWindows Serverに2TB以上のEBSボリュームを割り当てた際、以下の問題が発生しました:
- ディスク管理ツールでボリュームを確認すると、2TB以上の領域が利用できない。
- 割り当てたEBS自体は正常に作成されているが、OS側で制限されているように見える。
原因
調査の結果、問題の原因は以下の通りでした:
- EC2インスタンスがBIOS経由で起動していたこと。
-
BIOS経由で起動する場合、Windows OSのディスク形式が自動的にMBR(Master Boot Record)形式になること。
- MBR形式のディスクは最大で2TBまでの容量しかサポートしていません。詳細はWindows公式ドキュメントに記載されています。
- MBR形式では2TB以上のディスク容量を認識できないため、GPT(GUID Partition Table)形式に変更する必要があること。
そのため、2TB以上のディスクを使用するには、MBR形式ではなくGPT形式を使用する必要があります。
解決策
解決策として、以下の2つが考えられます。
1. ディスクをGPT形式に変更する
以下の手順でMBR形式のディスクをGPT形式に変更します:
- EC2インスタンスにログインする。
- ディスクの管理ツールを開く。
- 該当のディスクを右クリックし、「ボリュームの削除」を選択して既存のパーティションを削除します(注意:データはすべて消去されます)。
- 再度ディスクを右クリックし、「GPTディスクに変換」を選択。
- 新しいパーティションを作成してフォーマットします。
これにより、2TB以上のEBSボリュームが正常に認識されるようになります。
PowerShellでも以下のコマンドで実行可能です。
# 管理者権限でPowerShellを実行してください
# 現在のディスク情報を確認
Get-Disk
# 対象のディスク番号を設定(適切なディスク番号に変更)
$DiskNumber = 1
# ディスクをクリアしてGPTに変換し、新しいパーティションを作成
Clear-Disk -Number $DiskNumber -RemoveData -Confirm:$false
Initialize-Disk -Number $DiskNumber -PartitionStyle GPT
New-Partition -DiskNumber $DiskNumber -UseMaximumSize -AssignDriveLetter |
Format-Volume -FileSystem NTFS -NewFileSystemLabel "<ドライブ名>" -Confirm:$false
2. UEFI経由で起動する
別の解決策として、インスタンスをUEFI経由で起動する設定に変更します。UEFIはGPTディスク形式をサポートしているため、2TB以上のディスクを制限なく利用できます。
UEFIでの起動要件
-
OSがUEFIをサポートしていること
Windows Server 2012以降はUEFIをサポートしています。(※EC2側がUEFIをサポートしていないとBIOS経由になります。) -
EC2インスタンスタイプがUEFIをサポートしていること
すべてのインスタンスタイプがUEFI起動をサポートしているわけではないため、事前に確認が必要です。
以下のAWS CLIコマンドで、インスタンスタイプがUEFIをサポートしているか確認できます:
# 1. i3.largeの場合
aws ec2 describe-instance-types --instance-types i3.large --query "InstanceTypes[0].SupportedBootModes" --output table
-----------------------
|DescribeInstanceTypes|
+---------------------+
| legacy-bios |
+---------------------+
# m6i.largeの場合
aws ec2 describe-instance-types --instance-types m6i.large --query "InstanceTypes[0].SupportedBootModes" --output table
-----------------------
|DescribeInstanceTypes|
+---------------------+
| legacy-bios |
| uefi |
+---------------------+
結果にuefi
と表示されていれば、そのインスタンスタイプはUEFIをサポートしています。
まとめ
Windows Serverで2TB以上のEBSを使用する場合、以下の点を確認してください:
- ディスクがGPT形式であること。
- インスタンスタイプがUEFIをサポートしていること。
- OSがUEFIに対応していること。
これらを満たしていない場合、MBR形式の制限により2TB以上のディスク容量を使用できません。UEFI起動とGPT形式を正しく設定することで、この問題を回避できます。
検証などで小さいサイズを割り当てていて、商用環境になった際にこの問題に直面することも考えられます。参考になりましたら幸いです。