ディスクの容量を増やした後、追加された領域を使用するには、そのパーティションとファイルシステムを拡張する必要があります。ディスクは縮小できないため、ストレージのニーズは慎重に計画してください。
サイズ変更の概要
ディスクのサイズ変更には、主に 2 つのステップがあります。
ECS コンソールでディスクの追加ストレージを購入します。これは、より大きなハードドライブを購入したが、まだインストールしていないようなものです。支払いが完了しても、サイズ変更プロセスは完了しません。
インスタンスのオペレーティングシステムで新しい領域を利用可能にします。これは、システムが認識して使用できるように、ハードドライブ上の新しい領域をフォーマットするようなものです。
ステップ 1:ディスク容量の増加
前提条件
次のいずれかの条件が満たされていることを確認してください。
ディスクが ECS インスタンスにアタッチされていること。インスタンスは有効期限が切れておらず、[実行中]または[停止済み]の状態である必要があります。
ディスクが[アタッチ待ち]の状態であること。
操作手順
ECS コンソール - ブロックストレージに移動します。上部メニューで、対象のリージョンとリソースグループを選択します。
サイズ変更するディスクを見つけ、操作 列で ディスクの拡張 をクリックします。
サイズ変更の前に、ディスクのスナップショットを作成してデータをバックアップすることを強く推奨します。これにより、操作ミスによるデータ損失を防ぐことができます。ターゲットディスクと注意事項を確認する ページで、ディスク情報を確認し、[スナップショットの作成] をクリックし、スナップショットの名前と保持期間を設定してから [確認] をクリックします。
重要スナップショットの使用には料金が発生します。

スケーリング対応 列に 対応 と表示されたら、拡張の確認 をクリックします。
スナップショットの作成に必要な時間は、ディスク上のデータ量や利用可能な帯域幅などの要因によって異なります。ECS コンソールの[スナップショット]ページに移動し、進行 列で作成状況を確認できます。
変更方法とサイズを設定する ウィザードで、パラメーターを設定し、料金を確認してから [OK] をクリックします。
重要ディスクをサイズ変更すると、追加された容量に対して課金されます。
パラメーター
説明
[拡張後の容量]
新しい容量は、現在の容量より小さくすることはできません。
[サイズ変更方法]
[オンラインサイズ変更] (推奨):ディスクの容量を増やした後、インスタンスを再起動する必要はありません。新しい容量はすぐに有効になります。
[オフラインサイズ変更]:ディスクが[アタッチ待ち]の状態、インスタンスが[停止済み]の状態、またはオフラインリサイズのみをサポートする特定のインスタンスタイプを使用している場合に使用します。
(条件付き) サブスクリプションディスクの場合、支払いポップアップウィンドウでの 5 秒間のカウントダウンが終了した後、支払いへ をクリックして支払いを完了します。支払いが完了したら、サイズ変更のワークフローに戻り、支払い完了 をクリックします。
支払いを完了する前に 支払い完了 をクリックすると、サイズ変更プロセスが停止します。注文の支払い をクリックして支払いを完了し、サイズ変更のワークフローに戻る必要があります。
ステップ 2:パーティションとファイルシステムの拡張
前提条件
ディスクが[アタッチ待ち]の状態である場合は、ECS インスタンスにアタッチする必要があります。
前のステップでオフラインリサイズを使用してディスク容量を増やし、ディスクが ECS インスタンスにアタッチされている場合は、インスタンスを再起動または起動する必要があります。
データディスクにファイルシステムが作成されていない場合は、データディスクの初期化の手順に従ってください。
操作手順
ディスク容量を増やした後、新しい領域を使用するには、そのパーティションとファイルシステムを拡張する必要があります。Alibaba Cloud は 2 つの方法を提供しています。
コンソールを使用して拡張 (推奨):クラウドアシスタントを使用して、コンソールからパーティションとファイルシステムを拡張します。この方法は便利で、手動でコマンドを実行する必要がなくなります。
コマンドラインを使用して拡張:インスタンスにログインし、手動でコマンドを実行してパーティションとファイルシステムを拡張します。この方法は柔軟性が高く、幅広い状況に対応できます。
コンソールでの拡張 (推奨)
誤ってこのページを閉じてしまった場合は、インスタンス詳細ページの[ブロックストレージ] タブから操作ページに戻ることができます。
[未割り当て] セクションで、[最後のパーティションとファイルシステムのスケールアウト] をクリックします。
クラウドアシスタントに権限を付与していない場合は、プロンプトが表示されたときに付与する必要があります。
ページに「[Cloud Assistant query or execution failed]」または「[Instance OS Version Not Supported]」というメッセージが表示された場合は、コマンドラインを使用してディスクを拡張する必要があります。

クラウドアシスタントによるパーティションおよびファイルシステムの拡張 ダイアログボックスで、[今すぐ実行] をクリックします。「[クラウドアシスタントによるパーティションおよびファイルシステムの拡張に成功しました。]」というメッセージが表示されたら、拡張は完了です。閉じる をクリックします。
重要続行する前に、拡張の失敗を防ぐためにコマンドが正しいことを確認してください。
CLI での拡張
パーティションの拡張
インスタンス詳細ページで OS のバージョンを確認してください。CentOS 6 以前、OpenSUSE 42.3、および Debian 8 以前の場合は、パーティションとファイルシステムをオフラインで拡張する必要があります。
ECS インスタンスにログインします。
ECS コンソール - インスタンスに移動します。上部メニューで、対象のリージョンとリソースグループを選択します。
ターゲットインスタンスの詳細ページに移動します。右上の隅にある 接続 をクリックし、ワークベンチ を選択します。プロンプトに従ってインスタンスにログインし、ターミナルを開きます。
パーティションを拡張します。
sudo lsblkを実行して、サイズ変更するディスクのデバイス名とパーティション番号を確認します。$ sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 253:0 0 50G 0 disk ├─vda1 253:1 0 2M 0 part ├─vda2 253:2 0 200M 0 part /boot/efi └─vda3 253:3 0 39.8G 0 part / vdb 253:16 0 40G 0 disk /dataサイズ変更するディスクにパーティションがない場合は、直接ファイルシステムをサイズ変更できます。この例では、データディスク
vdbにはパーティションがないため、パーティションのサイズ変更は不要です。サイズ変更するディスクの容量がパーティションの合計容量より大きい場合は、パーティションのサイズを変更する必要があります。この例では、システムディスク
vdaの容量は 50 GiB で、3 つのパーティションがあります。パーティションの合計容量は 40 GiB であり、最後のパーティションであるvda3のサイズを変更する必要があります。重要ディスク上の最後のパーティションのみを拡張できます。
次の表に、一般的なデバイスの命名規則とパーティション形式を示します。
sudo lsblkコマンドの出力が vgx 形式で表示される場合、ディスクパーティションが論理ボリュームマネージャー (LVM) によって管理されていることを示します。コンソールでディスク容量を拡張した後、LVM を使用して論理ボリュームを拡張する必要があります。デバイスタイプ
デバイス名
パーティション番号
NVMe プロトコルを使用しないディスク
形式は
vd[a-z]で、vda(システムディスク)、vdb、vdcなどがあります。形式は
vd[a-z]<partition number>です。たとえば、vda3の場合、パーティション番号は 3 です。NVMe 準拠ディスク
形式は
nvmeXn1で、nvme0n1、nvme1n1、nvme2n1などがあります。形式は
nvmeXn1p<partition_number>です。たとえば、nvme0n1p1の場合、パーティション番号は 1 です。
拡張ツールをインストールします。
Alibaba Cloud Linux および CentOS
type growpart || sudo yum install -y cloud-utils-growpart sudo yum update cloud-utils-growpart type sgdisk || sudo yum install -y gdiskDebian および Ubuntu
sudo apt-get update sudo apt-get install -y cloud-guest-utils type sgdisk || sudo apt-get install -y gdiskコマンドを実行してパーティションを拡張します。
コマンド内の
<device name>と<partition number>を、先の手順で確認したデバイス名とパーティション番号に置き換えてから、コマンドを実行します。重要デバイス名とパーティション番号の間にスペースがあることを確認してください。
sudo LC_ALL=en_US.UTF-8 growpart /dev/<DeviceName> <PartitionNumber>応答のキーワード
CHANGEDは、コマンドが正常に実行されたことを示します。コマンドが失敗した場合は、「パーティション拡張の一般的な問題」を参照して、問題をトラブルシューティングして解決してください。コマンドの
LC_ALL=en_US.UTF-8は、中国語システムのエンコーディングを処理するために使用される環境変数です。
パーティションの拡張を確認します。
sudo lsblkコマンドを実行します。パーティションの合計サイズがデバイス容量と等しい場合、パーティションは正常にサイズ変更されています。この例では、デバイスvdaの容量とパーティションの合計サイズの両方が 50 GiB です。次に、追加された領域を利用可能にするために、ファイルシステムをサイズ変更する必要があります。$ sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 253:0 0 50G 0 disk ├─vda1 253:1 0 2M 0 part ├─vda2 253:2 0 200M 0 part /boot/efi └─vda3 253:3 0 49.8G 0 part / vdb 253:16 0 40G 0 disk /data
ファイルシステムの拡張
コマンド
sudo lsblk -fを実行し、サイズ変更するディスクのターゲットデバイス名、ファイルシステムタイプ、マウントポイントを記録しておき、ファイルシステムをサイズ変更するときに使用します。$ sudo lsblk -f NAME FSTYPE LABEL UUID MOUNTPOINT vda ├─vda1 ├─vda2 vfat 7938-FA03 /boot/efi └─vda3 ext4 root 33b46ac5-7482-4aa5-8de0-60ab4c3a4c78 / vdb ext4 3d7a3861-da22-484e-bbf4-b09375894b4f /dataデバイスにパーティションがある場合、ターゲットデバイス名は最後のパーティションの名前です。この例では、システムディスク
vdaの場合、ターゲットデバイス名はvda3、ファイルシステムタイプはext4、マウントポイントは/です。デバイスにパーティションがない場合、ターゲットデバイス名はデバイス名と同じです。たとえば、データディスク
vdbの場合、ターゲットデバイス名はvdb、ファイルシステムタイプはext4、マウントポイントは/dataです。
ファイルシステムを拡張します。
ファイルシステムが拡張されたことを確認します。
sudo df -Thコマンドを実行して、ファイルシステムのサイズ (出力のSizeフィールドの値) がディスク容量と一致することを確認します。ファイルシステムが作成されると、メタデータを格納するために一部の容量が予約されます。したがって、ファイルシステムのサイズはコンソールに表示される容量よりもわずかに小さくなる場合があります。
課金
ディスクをサイズ変更すると、追加された容量に対して課金されます。追加容量の課金方法は、元のディスクと同じです。
サブスクリプションディスク:サブスクリプションディスクのサイズを変更すると、新しい容量に対して直ちに課金されます。残りのサブスクリプション期間について、旧容量と新容量の価格差を支払う必要があります。
価格差 = (月額料金 / 30 日) × 残存期間 × 追加容量。
残存期間は日数単位で計算され、秒単位まで正確です。
従量課金ディスク:従量課金ディスクのサイズを変更すると、新しい容量に基づいて課金されます。料金は時間単位で計算されます。当時間分の請求は、次の時間帯に生成されます。
Storage Capacity Unit (SCU) を購入した場合、従量課金ディスクの請求が自動的に相殺されます。詳細については、「ブロックストレージの課金」をご参照ください。
よくある質問
FAQ:ディスク容量の増加
新しい容量が有効にならないのはなぜですか?
ディスクの容量を増やした後、OS は自動的に新しい容量を検出できません。追加された容量を使用できるようにするには、それぞれのタイプに基づいてパーティションとファイルシステムを手動で拡張する必要があります。
API を使用してディスクのサイズを変更する方法は?
操作ミスによるデータ損失を防ぐため、容量を増やす前に CreateSnapshot API を呼び出してディスクのスナップショットを作成することを強く推奨します。
スナップショット料金が発生します。
スナップショットが作成された後、ResizeDisk API を呼び出してディスク容量を増やします。
ディスク容量を増やした後、パーティションとファイルシステムを拡張する必要があります。
RunCommand API を呼び出してターゲットインスタンスにコマンドを送信し (「CLI での拡張」のコマンドを参照)、その後 DescribeInvocations API を呼び出してコマンド出力をクエリして、パーティションとファイルシステムの拡張を確認します。
[リスクを理解し、データをバックアップしました。続行します。] がグレー表示されて選択できません。どうすればよいですか?
ディスクのスナップショットが作成中かどうかを確認してください。スナップショット作成中はディスクのサイズを変更できません。スナップショットの作成が完了するまで待ってから、ディスクのサイズを変更してください。
再起動せずにオフラインリサイズを行った後はどうすればよいですか?
オフラインリサイズは、インスタンスの再起動後に有効になります。業務上、再起動が許容できない状況で、すでにオフラインリサイズを選択してしまった場合は、次のいずれかの方法で再起動を回避できます。
2 回目のサイズ変更:1 GiB のオンラインリサイズを実行します。これにより、新しい容量と以前のオフラインリサイズの両方がオンラインで適用されます。これは 2 回目のサイズ変更とみなされ、追加料金が発生します。ビジネス要件に基づいて慎重に進めてください。
再アタッチ:この操作にはディスクのデタッチが伴い、現在のワークロードが中断されます。要件に基づいて慎重に進めてください。
システムディスクの場合、再起動は避けられません。または、インスタンスを停止し、システムディスクをデタッチして再アタッチすることで、オフラインリサイズをオンラインで適用できます。
オフラインリサイズのみをサポートするインスタンスタイプはどれですか?
以下のケースでは、オフラインリサイズのみがサポートされます。インスタンスを再起動するか、ディスクを再アタッチして新しい容量を検出してください。
以下のインスタンスタイプは、オフラインリサイズのみをサポートします。
ecs.ebmc4.8xlarge
ecs.ebmhfg5.2xlarge
ecs.ebmg5.24xlarge
ecs.t1
ecs.s1
ecs.s2
ecs.s3
ecs.c1
ecs.c2
ecs.m1
ecs.m2
カーネルバージョンが 3.6 より前のインスタンス、またはカーネルがトリミングされたカスタムイメージを使用しているインスタンスは、オフラインリサイズのみをサポートします。
クラウドアシスタントの拡張ページに戻る方法は?
この機能は招待制プレビュー段階です。特定のシナリオの一部のユーザーのみが、クラウドアシスタントの検出機能を表示および有効化して拡張ページに戻ることができます。
インスタンス詳細ページの ブロックストレージ タブで、クラウドアシスタントの検出機能を有効にします。
クラウドアシスタントチェック機能 が利用できない場合は、ディスクをCLI で拡張してください。

ターゲットディスクについて、システム内ステータスチェック 列の [2/3 のチェックに合格] をクリックし、パーティションとファイルシステムの拡張 をクリックしてページに戻ります。
新しいパーティション容量が有効にならないのはなぜですか?
sudo lsblkを実行して、Size フィールドを確認します。パーティションサイズがデバイスサイズと一致しない場合、サイズ変更は有効になっていません。パーティションのサイズ変更は通常、再起動を必要としません。パーティションのサイズ変更が有効になっていない場合、古いオペレーティングシステムのバージョンが原因である可能性があります。変更を有効にするには、インスタンスを再起動する必要があります。
FAQ:パーティションの拡張
growpart でのエラー:
"no tools available to resize disk with 'gpt'"オペレーティングシステムに
gdiskツールがインストールされていません。GPT パーティションのサイズを変更するには、オペレーティングシステムのタイプに基づいて gdisk ツールをインストールする必要があります。CentOS および類似のディストリビューション
type sgdisk || sudo yum install -y gdiskDebian、Ubuntu、および類似のディストリビューション
sudo apt-get update type sgdisk || sudo apt-get install -y gdisk
growpart でのエラー:
"command not found"オペレーティングシステムに
growpartツールがインストールされていません。オペレーティングシステムのタイプに応じて次のコマンドを実行して、growpartツールをインストールします (gdiskツールも GPT パーティションを拡張するために必要です)。CentOS および類似のディストリビューション
type growpart || sudo yum install -y cloud-utils-growpart sudo yum update cloud-utils-growpart type sgdisk || sudo yum install -y gdiskDebian、Ubuntu、および類似のディストリビューション
sudo apt-get update sudo apt-get install -y cloud-guest-utils type sgdisk || sudo apt-get install -y gdisk
growpart コマンドを実行してパーティションを拡張すると、「
unexpected output in sfdisk --version [sfdisk, from util-linux 2.23.2]」というエラーが報告されます。原因:中国語版のオペレーティングシステムが en_US.UTF-8 以外の文字エンコーディングタイプを使用しています。
解決策:
localeコマンドを実行して ECS インスタンスの文字エンコーディングを確認します。それが en_US.UTF-8 でない場合は、en_US.UTF-8 に変更します。次のコマンドを実行して文字エンコーディングタイプを切り替えます。
export LANG=en_US.UTF-8問題が解決しない場合は、次のコマンドを実行して文字エンコーディングタイプを切り替えます。
export LC_ALL=en_US.UTF-8
問題が解決しない場合は、
rebootコマンドを実行して ECS インスタンスを再起動してみてください。
重要文字エンコーディングを切り替えてパーティションを正常に拡張した後、必要に応じて元の文字エンコーディングに戻すことができます。
growpartコマンドを実行してパーティションを拡張すると、「mkdir: cannot create directory ... No space left on device」というエラーが表示されます。ディスクに一時ディレクトリを作成するための十分なスペースがありません。不要なファイルを削除してからパーティションを拡張する必要があります。
growpart コマンドを実行してパーティションを拡張すると、次のエラーが返されます
unexpected output in sfdisk --version [sfdisk (util-linux-ng 2.17.2)]。fdisk のバージョンが growpart のバージョンと互換性がありません。growpart のバージョンを 0.27 にダウングレードしてください。
growpart コマンドが「
FAILED: unable to determine partition type」というエラーを返します。ディスクはパーティション分割されていません。パーティションを拡張する必要はありません。直接ファイルシステムを拡張できます。
growpart コマンドを実行してパーティションを拡張すると、「
WARNING: MBR/dos partitioned disk is larger than 2 TB. Additional space will go unused」というメッセージが表示されます。MBR パーティション形式は 2 TiB を超えるディスクをサポートしていません。まずデータディスクの MBR パーティションを GPT パーティションに変換してから、GPT パーティションを拡張する必要があります。
sudo lsblkを実行すると、パーティションが 2 TiB までしか拡張されませんMBR パーティションタイプは 2 TiB を超えるディスクをサポートしていません。まずデータディスクの MBR パーティションを GPT パーティションに変換してから、GPT パーティションを拡張する必要があります。
CentOS 6 で growpart ツールをインストールすると、「
Error: Cannot retrieve repository metadata」というエラーが表示されます。CentOS 6 OS はサポート終了 (EOL) に達しています。ツールをインストールする前に、CentOS 6 EOL リポジトリを変更する必要があります。
growpart コマンドを実行してパーティションを拡張すると、「
NOCHANGE: partition 1 could only be grown by 2015 [fudge=2048]」というメッセージが表示されます。パーティションのサイズ変更時に利用可能なスペースがない場合、通常はコンソールでオフラインのディスクサイズ変更を行った後にインスタンスが再起動されていないことが原因です。その結果、ディスクの変更が有効になっていません。オフラインリサイズの後、ECS コンソールまたは API を使用して、インスタンスを再起動または起動する必要があります (インスタンス内部から
rebootコマンドで再起動しても効果はありません)。
FAQ:ファイルシステムの拡張
実行すると、
resize2fsコマンドでエラーCouldn't find valid filesystem superblock.またはopen: Is a directory while opening /mntが報告されます。ファイルシステムを拡張する際は、デバイス名やマウントポイントではなく、正しいディスクパーティション名を指定する必要があります。
resize2fs コマンドが次のメッセージを返します:
The filesystem is already ... blocks long. Nothing to do!。原因:ファイルシステムに拡張可能な容量がありません。これは、パーティションが拡張されていないか、拡張が有効になっていないことが原因である可能性があります。
解決策:
まず、growpart コマンドを使用してパーティションが正常に拡張されたことを確認します。このステップを実行していない場合は、growpart コマンドを実行してパーティションを拡張します。
growpart コマンドを正常に実行してパーティションを拡張した場合、古い OS バージョンを使用しているため、システムパーティションテーブルをオンラインで更新できない可能性があります。インスタンスを再起動してから、resize2fs コマンドを実行してください。
resize2fs でのエラー:
Permission denied原因:ファイルシステムの拡張が失敗するのは、通常、ファイルシステム自体の不整合やエラーが原因です。
解決策:
dmesg -T | grep fsコマンドを実行します。出力にThere are errors in the filesystemのようなメッセージが含まれている場合、ファイルシステムに不整合があることを示します。スナップショットを作成してディスクデータをバックアップします。
サービスへの影響が許容できる場合、環境に応じて
umountコマンドを実行して、マウントされているパーティションまたはディスク全体をアンマウントしてください。それがシステムディスクである場合 (システムディスクは
umountできません)、修復するにはシステムディスクをデタッチして別のインスタンスにアタッチする必要があります。e2fsckコマンドを使用して修復を試みてください。
resize2fs でのエラー:
inodes (4294967296) must be less than 4294967295。原因:初期化時に
bytes-per-inodeが正しく設定されていなかったことが原因です。容量を 64 TiB に拡張する必要がある場合は、ファイルシステムを作成する際にコマンドに
-i 65536を追加します。解決策:新しいディスクを作成してデータをコピーしてください。
重要bytes-per-inodeは、ディスクの初期化後に変更することはできません。現在のインスタンスに必要な容量の空のデータディスクを作成します。
データディスクを初期化して ext4 ファイルシステムを作成する際に、コマンドに
-i 65536を追加します。元のディスクから新しいディスクにデータを手動でコピーします。
業務が期待どおりに動作することを確認してください。これを確認するために、関連サービスを再起動する必要がある場合があります。
業務が期待どおりに動作することを確認した後、元のデータディスクをデタッチしてリリースできます。詳細については、「データディスクのデタッチ」および「ディスクのリリース」をご参照ください。
OS のディスク容量が購入した容量と異なるのはなぜですか?
ファイルシステムが作成されると、メタデータを格納するために一部の容量が予約されます。したがって、ファイルシステムのサイズはコンソールに表示される容量よりもわずかに小さくなる場合があります。