Elastic Compute Service (ECS) コンソールで Linux インスタンスのディスクのサイズを変更した後、新しいディスク容量を有効にするには、インスタンスのオペレーティングシステムでディスクのパーティションとファイルシステムを拡張する必要があります。特定の古いバージョンの Linux オペレーティングシステムでは、growpart などのツールを使用してオンラインでディスクのパーティションやファイルシステムを拡張できません。この場合、インスタンスのオペレーティングシステムでパーティションとファイルシステムをオフラインで拡張する必要があります。ディスクは、マウント状態のときはオンライン、アンマウント状態のときはオフラインです。このトピックでは、Linux インスタンスのデータディスクのパーティションとファイルシステムをオフラインで拡張する方法について説明します。
前提条件
データをバックアップするために、Linux インスタンスのデータディスクのスナップショットが作成されていること。
誤った操作によるデータ損失を防ぐために、スナップショットを作成してデータをバックアップすることを推奨します。詳細については、「手動で単一のスナップショットを作成する」をご参照ください。
Linux インスタンスのデータディスクが初期化され、ECS コンソールで拡張されていること。
詳細については、「データディスクを初期化する (Linux)」および「ステップ 1: ディスク容量を拡張する」をご参照ください。
ECS インスタンスに接続します。
接続方法の詳細については、「接続方法の概要」をご参照ください。
背景情報
このトピックの例では、以下の構成のインスタンスを使用します。
オペレーティングシステム: Alibaba Cloud Linux 2.1903 LTS 64 ビット パブリックイメージ
データディスク: Ultra ディスク
データディスクのデバイス名: /dev/vdb
実際のオペレーティングシステムとデータディスクのデバイス名に基づいて、コマンドまたはパラメータ設定を変更してください。
mount コマンドでファイルシステムをマウントする場合は、データセキュリティとパフォーマンスを確保するため、ビジネス要件に基づいてパラメータを設定してください。詳細については、「オプションを指定して Ext4 ファイルシステムをマウントする」をご参照ください。
データディスクのパーティションフォーマットとファイルシステムタイプの確認
次のコマンドを実行して、データディスクのパーティションフォーマットを確認します。
sudo fdisk -lu /dev/vdbこの例では、データディスクには /dev/vdb1 という名前のパーティションがあります。
Systemパラメーターの値がLinuxの場合、データディスクはマスターブートレコード (MBR) のパーティションテーブルフォーマットを使用しています。Systemパラメーターの値がGPTの場合、データディスクは GUID パーティションテーブル (GPT) のパーティションテーブルフォーマットを使用しています。
[testuser@ecshost ~]# sudo fdisk -lu /dev/vdb Disk /dev/vdb: 42.9 GB, 42949672960 bytes, 83886080 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x9277b47b Device Boot Start End Blocks Id System /dev/vdb1 2048 41943039 20970496 83 Linux説明データディスクがパーティション分割されていない場合、コマンド出力にパーティション情報は含まれません。
次のコマンドを実行して、データディスク上の既存パーティションのファイルシステムタイプを確認します。
blkid /dev/vdb1この例では、/dev/vdb1 パーティションが使用されており、そのパーティションのファイルシステムタイプは Ext4 です。
[testuser@ecshost ~]# blkid /dev/vdb1 /dev/vdb1: UUID="e97bf1e2-fc84-4c11-9652-73********24" TYPE="ext4"説明データディスクにパーティションがないか、パーティションはあってもファイルシステムがない場合は、情報は返されません。
ファイルシステムの状態を確認します。
Ext ファイルシステムの状態を確認するには、次のコマンドを実行します。
sudo e2fsck -n /dev/vdb1XFS ファイルシステムの状態を確認するには、次のコマンドを実行します。
sudo xfs_repair -n /dev/vdb1BTRFS ファイルシステムの状態を確認するには、次のコマンドを実行します。
sudo btrfsck /dev/vdb1
ファイルシステムタイプによって、コマンド出力は異なります。
次のコードは、Ext または XFS ファイルシステムのコマンド出力のサンプルです。ファイルシステムが正常に動作する場合、コマンド出力に clean が表示されます。clean が表示されない場合は、問題をトラブルシューティングしてください。
[testuser@ecshost ~]# sudo e2fsck -n /dev/vdb1 Warning! /dev/vdb1 is mounted. Warning: skipping journal recovery because doing a read-only filesystem check. /dev/vdb1: clean, 11/1310720 files, 126322/5242624 blocks次のコードは、BTRFS ファイルシステムのコマンド出力のサンプルです。found 114688 bytes used err is 0 は、ファイルシステムが正常に動作していることを示します。コマンド出力でエラーが報告された場合は、問題をトラブルシューティングしてください。
[testuser@ecshost ~]# sudo btrfsck /dev/vdb1 Checking filesystem on /dev/vdb1 UUID: 1234b7a7-68ff-4f48-a88c-8943f27f1234 checking extents checking free space cache checking fs roots checking csums checking root refs found 114688 bytes used err is 0 total csum bytes: 0 total tree bytes: 114688 total fs tree bytes: 32768 total extent tree bytes: 16384 btree space waste bytes: 109471 file data blocks allocated: 0 referenced 0
パーティションまたはファイルシステムの拡張方法
パーティション形式とファイルシステムタイプに基づいて、拡張方法を選択します。
シナリオ | 拡張方法 |
データディスクにパーティションとファイルシステムがある場合。 |
|
データディスクが、パーティション分割されておらずファイルシステムもない新しいディスクの場合。 | ECS コンソールでデータディスクの容量を拡張した後、「データディスクの初期化 (Linux)」に記載されている操作を実行します。 |
データディスクが、ファイルシステムのある、パーティション分割されていない raw ディスクの場合。 | ECS コンソールでデータディスクの容量を拡張した後、「方法5:raw ディスクのファイルシステムを拡張する」に記載されている操作を実行します。 |
データディスクがインスタンスにアタッチされていない場合。 | データディスクをインスタンスにアタッチした後、このトピックに記載されている操作を実行して、データディスクのパーティションとファイルシステムを拡張します。 |
データディスクに MBR パーティションがある場合、ディスクを 2 TiB 以上にサイズ変更することはできません。データ損失を防ぐために、2 TiB を超えるサイズのディスクを作成し、そのディスクに GPT パーティションを作成してフォーマットし、MBR パーティションから新しいディスクの GPT パーティションにデータをコピーすることを推奨します。
サイズ変更ツールまたはフォーマットツールで問題が発生し、データディスクをサイズ変更できない場合は、ツールを新しいバージョンにアップグレードするか、再インストールしてください。
方法 1:既存の MBR パーティションの拡張
データ損失を防ぐため、インスタンスにマウントされているパーティションやファイルシステムは拡張しないことを推奨します。インスタンスにマウントされているパーティションを拡張する場合は、umount コマンドを実行してパーティションをアンマウントし、パーティションを拡張した後、正常に動作することを確認してから、mount コマンドを実行してパーティションを再マウントしてください。Linux インスタンスのカーネルバージョンに応じて操作してください。
インスタンスのカーネルバージョンが 3.6 未満の場合は、パーティションをアンマウントし、パーティションテーブルを変更してから、ファイルシステムを拡張します。
インスタンスのカーネルバージョンが 3.6 以降の場合は、パーティションテーブルを変更し、カーネルにパーティションテーブルの更新を通知してから、ファイルシステムを拡張します。
既存の MBR パーティションを拡張するには、次の操作を実行します。
パーティションテーブルの変更
次のコマンドを実行してパーティション情報を表示し、既存のパーティションの開始セクター (Start パラメーターの値) と終了セクター (End パラメーターの値) を記録します:
sudo fdisk -lu /dev/vdbこの例では、/dev/vdb1 パーティションを使用します。パーティションの Start の値は 2048、End の値は 41943039 です。
[testuser@ecshost ~]# sudo fdisk -lu /dev/vdb Disk /dev/vdb: 42.9 GB, 42949672960 bytes, 83886080 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x9277b47b Device Boot Start End Blocks Id System /dev/vdb1 2048 41943039 20970496 83 Linuxデータディスクのマウントパスを表示し、そのパスを使ってパーティションをアンマウントした後、アンマウントされたことを確認します。
次のコマンドを実行してマウント情報を表示します:
mount | grep "/dev/vdb"次のコマンドを実行してパーティションをアンマウントします:
sudo umount /dev/vdb1次のコマンドを実行して、パーティションがアンマウントされているかどうかを確認します:
mount | grep "/dev/vdb"次のようなコマンド出力が表示されます:
[testuser@ecshost ~]# mount | grep "/dev/vdb" /dev/vdb1 on /mnt type ext4 (rw,relatime,data=ordered) [testuser@ecshost ~]# sudo umount /dev/vdb1 [testuser@ecshost ~]# mount | grep "/dev/vdb"fdisk ツールでパーティションを削除します。
警告パーティションの削除時にエラーが発生した場合、パーティションに保存されているデータが削除される可能性があります。データ損失を防ぐため、パーティションを削除する前に、データベース内のユーザーデータなどの重要なデータをバックアップしてください。
sudo fdisk -u /dev/vdbコマンドを実行して、セクターモードでデータディスクのパーティションテーブルを開きます。p を入力して、データディスクのパーティションを一覧表示します。
d を入力して、パーティションを削除します。
p を入力して、パーティションが削除されたことを確認します。
w を入力して変更を保存し、終了します。
次のサンプルコードは、パーティションを削除する例です:
[testuser@ecshost ~]# sudo fdisk -u /dev/vdb Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): p Disk /dev/vdb: 42.9 GB, 42949672960 bytes, 83886080 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x9277b47b Device Boot Start End Blocks Id System /dev/vdb1 2048 41943039 20970496 83 Linux Command (m for help): d Selected partition 1 Partition 1 is deleted Command (m for help): p Disk /dev/vdb: 42.9 GB, 42949672960 bytes, 83886080 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x9277b47b Device Boot Start End Blocks Id System Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.fdisk コマンドを実行して、削除したパーティションをデータディスクに再作成し、パーティションを拡張します。
sudo fdisk -u /dev/vdbコマンドを実行して、セクターモードでデータディスクのパーティションテーブルを開きます。p を入力して、データディスクのパーティションを一覧表示します。
n を入力して、パーティションを作成します。
p を入力して、プライマリパーティションタイプを選択します。
<Partition number> を入力して、パーティション番号を選択します。この例では、1 を選択します。
新しいパーティションの開始セクターと終了セクターを指定します。
警告新しいパーティションの開始セクターは削除したパーティションと同じで、終了セクターはより大きくする必要があります。そうでない場合、拡張操作は失敗します。
w を入力して変更を保存し、終了します。
元のパーティションを拡張するためのパーティション作成方法については、次の例を参照してください。この例では、/dev/vdb1 パーティションを 20 GiB から 40 GiB に拡張します。
[testuser@ecshost ~]# sudo fdisk -u /dev/vdb Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): p Disk /dev/vdb: 42.9 GB, 42949672960 bytes, 83886080 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x9277b47b Device Boot Start End Blocks Id System Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-83886079, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-83886079, default 83886079): Partition 1 of type Linux and of size 40 GiB is set Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.次のいずれかのコマンドを実行して、パーティションテーブルの変更をカーネルに反映します:
sudo partprobe /dev/vdb説明インスタンスで CentOS 6 が実行されていて、
-bash: partprobe: command not foundエラーメッセージが表示される場合は、YUM リポジトリの URL を変更してください。詳細については、「CentOS 6 のリポジトリのアドレスを変更する方法」をご参照ください。sudo yum install -y partedコマンドを実行して Parted ツールをインストールしてください。その後、partprobe /dev/vdb コマンドを再実行してください。sudo partx -u /dev/vdb1次のコマンドを実行して、パーティションテーブルが想定どおりに変更されているかどうかを確認します:
sudo lsblk /dev/vdb次のコマンドを実行して、拡張したパーティションのファイルシステムをチェックし、ファイルシステムが clean 状態であることを確認します:
sudo e2fsck -f /dev/vdb1説明コマンド出力でファイルシステムが clean 状態であることが示されない場合は、
sudo e2fsck -n /dev/vdb1コマンドを実行してファイルシステムをチェックできます。
ファイルシステムの拡張
Ext3 や Ext4 などの Ext ファイルシステムの場合は、次のコマンドを順に実行してファイルシステムを拡張し、パーティションを再マウントします。
次のコマンドを実行してファイルシステムを拡張します:
sudo resize2fs /dev/vdb1次のコマンドを実行して、パーティションを /mnt にマウントします:
sudo mount /dev/vdb1 /mntXFS ファイルシステムの場合は、次のコマンドを順に実行してパーティションを再マウントした後、ファイルシステムを拡張します。
次のコマンドを実行して、パーティションを /mnt にマウントします:
sudo mount /dev/vdb1 /mnt次のコマンドを実行してファイルシステムを拡張します:
sudo xfs_growfs /mnt説明xfs_growfs の新しいバージョンでは、引数としてマウントポイントが必要です。例:
xfs_growfs /mnt。ファイルシステムを拡張するには、ファイルシステムのマウントポイントを指定して xfs_growfs コマンドを実行してください。xfs_growfs --helpコマンドを実行すると、バージョンごとの xfs_growfs の使用方法を確認できます。BTRFS ファイルシステムの場合は、次のコマンドを順に実行してパーティションを再マウントした後、ファイルシステムを拡張します。
次のコマンドを実行して、パーティションを /mnt にマウントします:
sudo mount /dev/vdb1 /mnt次のコマンドを実行して BTRFS ファイルシステムを拡張します:
sudo btrfs filesystem resize max /mnt
方法2: MBR パーティションの作成とフォーマット
追加のディスク容量を使用するために MBR パーティションを作成するには、次の操作を実行します。
次のコマンドを実行してパーティションを作成します。
sudo fdisk -u /dev/vdb次のサンプルコードは、パーティションを作成する例です。この例では、/dev/vdb2 という名前の 20 GiB のパーティションを作成します。
[testuser@ecshost ~]# sudo fdisk -u /dev/vdb Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write commad. Command (m for help): p Disk /dev/vdb: 42.9 GB, 42949672960 bytes, 83886080 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x2b31a2a3 Device Boot Start End Blocks Id System /dev/vdb1 2048 41943039 20970496 83 Linux Command (m for help): n Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): p Partition number (2-4, default 2): 2 First sector (41943040-83886079, default 41943040): Using default value 41943040 Last sector, +sectors or +size{K,M,G} (41943040-83886079, default 83886079): Using default value 83886079 Partition 2 of type Linux and of size 20 GiB is set Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.次のコマンドを実行してパーティションを表示します。
lsblk /dev/vdb次のようなコマンド出力が返されます。
[testuser@ecshost ~]# lsblk /dev/vdb NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vdb 253:16 0 40G 0 disk ├─vdb1 253:17 0 20G 0 part └─vdb2 253:18 0 20G 0 partファイルシステムを作成します。
Ext4 ファイルシステムを作成するには、次のコマンドを実行します。
sudo mkfs.ext4 /dev/vdb2XFS ファイルシステムを作成するには、次のコマンドを実行します。
sudo mkfs.xfs -f /dev/vdb2BTRFS ファイルシステムを作成するには、次のコマンドを実行します。
sudo mkfs.btrfs /dev/vdb2
次のコマンドを実行して、ファイルシステムの情報を表示します。
blkid /dev/vdb2次のようなコマンド出力が返されます。
[testuser@ecshost ~]# blkid /dev/vdb2 /dev/vdb2: UUID="e3f336dc-d534-4fdd-****-b6ff1a55bdbb" TYPE="ext4"次のコマンドを実行してパーティションをマウントします。
sudo mount /dev/vdb2 /mnt次のコマンドを実行して、データディスクの容量と使用状況を表示します。
df -h次のようなコマンド出力が返されます。コマンド出力には、新しいファイルシステムの情報が表示され、パーティションがマウントされていることを示します。
[testuser@ecshost ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 40G 1.6G 36G 5% / devtmpfs 3.9G 0 3.9G 0% /dev tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 3.9G 460K 3.9G 1% /run tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/vdb2 20G 37M 19G 1% /mnt tmpfs 783M 0 783M 0% /run/user/0
方法 3:既存のGPT パーティションの拡張
既存の GPT パーティションを拡張して追加されたディスク容量を使用するには、次の操作を実行します。
データディスクのマウントパスを表示し、パスに基づいて既存のパーティションをアンマウントします。その後、パーティションがアンマウントされたことを確認します。この例では、/dev/vdb1 パーティションを使用します。
次のコマンドを実行してマウント情報を表示します。
mount | grep "/dev/vdb"次のコマンドを実行してパーティションをアンマウントします。
sudo umount /dev/vdb1次のコマンドを実行して、パーティションがアンマウントされたことを確認します。
mount | grep "/dev/vdb"次のようなコマンド出力が表示されます。
[testuser@ecshost ~]# mount | grep "/dev/vdb" /dev/vdb1 on /mnt type ext4 (rw,relatime,data=ordered) [testuser@ecshost ~]# sudo umount /dev/vdb1 [testuser@ecshost ~]# mount | grep "/dev/vdb"Parted ツールを使用して、GPT パーティションにディスク容量を割り当てます。
次のコマンドを実行して Parted ツールを起動します。
sudo parted /dev/vdbParted ツールの使用方法については、help コマンドを実行してください。
次のコマンドを実行してパーティション情報を表示します。次に、パーティションのパーティション番号と開始セクターを記録します。
printFix/Ignore/Cancel?またはFix/Ignore?というメッセージが表示された場合は、Fix を入力します。この例では、パーティションのサイズは 1100 GB、パーティション番号 (
Numberの値) は1、開始セクター (Startの値) は1049 kBです。(parted) print Model: Virtio Block Device (virtblk) Disk /dev/vdb: 3299GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 1100GB 1100GB ext4 primary次のコマンドを実行してパーティションを削除します。
rm <パーティション番号>この例では、パーティション番号は
1です。次のコマンドを実行してパーティションを削除します。rm 1次のコマンドを実行してプライマリパーティションを再作成します。
mkpart primary <元のパーティションの開始セクター> <割り当てる容量のパーセンテージ>この例では、元のパーティションの Start 値は
1049 kBで、パーティションを拡張してディスクの全容量を使用します。次のコマンドを実行してプライマリパーティションを作成します。mkpart primary 1049kB 100%次のコマンドを実行して、新しいパーティションが作成されたことを確認します。
print次のようなコマンド出力が表示されます。コマンド出力では、新しい GPT パーティションのパーティション番号は 1 で、パーティションの容量は 3299 GB に増加しています。
(parted) rm 1 (parted) mkpart primary 1049kB 100% (parted) print Model: Virtio Block Device (virtblk) Disk /dev/vdb: 3299GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 3299GB 3299GB ext4 primary次のコマンドを実行して Parted ツールを終了します。
quit
次のサンプルコードは、前述の手順の実行例です。
[testuser@ecshost ~]# sudo parted /dev/vdb GNU Parted 3.1 Using /dev/vdb Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) print Error: The backup GPT table is not at the end of the disk, as it should be. This might mean that another operating system believes the disk is smaller. Fix, by moving the backup to the end (and removing the old backup)? Fix/Ignore/Cancel? Fix Warning: Not all of the space available to /dev/vdb appears to be used, you can fix the GPT to use all of the space (an extra 4294967296 blocks) or continue with the current setting? Fix/Ignore? Fix Model: Virtio Block Device (virtblk) Disk /dev/vdb: 3299GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 1100GB 1100GB ext4 primary (parted) rm 1 (parted) mkpart primary 1049kB 100% (parted) print Model: Virtio Block Device (virtblk) Disk /dev/vdb: 3299GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 3299GB 3299GB ext4 primary (parted) quit Information: You may need to update /etc/fstab.次のコマンドを実行して、パーティション上のファイルシステムの一貫性をチェックします。
sudo fsck -f /dev/vdb1次のようなコマンド出力が表示されます。
[testuser@ecshost ~]# sudo fsck -f /dev/vdb1 fsck from util-linux 2.23.2 e2fsck 1.43.5 (04-Aug-2017) 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/vdb1: 11/67108864 files (0.0% non-contiguous), 4265369/268434944 blocksファイルシステムの種類に応じて、ファイルシステムの拡張とパーティションのマウントを行います。
Ext3 や Ext4 などの Ext ファイルシステムの場合:
次のコマンドを実行してファイルシステムを拡張します。
sudo resize2fs /dev/vdb1次のコマンドを実行してパーティションをマウントします。
sudo mount /dev/vdb1 /mntXFS ファイルシステムの場合:
次のコマンドを実行してパーティションをマウントします。
sudo mount /dev/vdb1 /mnt次のコマンドを実行してファイルシステムを拡張します。
sudo xfs_growfs /mnt説明xfs_growfs の新しいバージョンでは、引数としてマウントポイントが必要です。例:
xfs_growfs /mnt。ファイルシステムを拡張するには、ファイルシステムのマウントポイントを指定して xfs_growfs コマンドを実行してください。xfs_growfs --helpコマンドを実行すると、バージョンごとの xfs_growfs の使用方法を確認できます。BTRFS ファイルシステムの場合:
次のコマンドを実行してパーティションをマウントします。
sudo mount /dev/vdb1 /mnt次のコマンドを実行してファイルシステムを拡張します。
sudo btrfs filesystem resize max /mnt
方法 4:GPT パーティションの作成とフォーマット
追加のディスク容量を使用するために GPT パーティションを作成するには、次の操作を実行します。この例では、32 TiB のデータディスクを使用します。このディスクには 4.8 TiB の /dev/vdb1 パーティションがあり、新しい /dev/vdb2 パーティションを作成します。
次のコマンドを実行して、データディスク上のパーティションに関する情報を表示します。
sudo fdisk -l次のようなコマンド出力が返されます。
[testuser@ecshost ~]# sudo fdisk -l Disk /dev/vda: 42.9 GB, 42949672960 bytes, 83886080 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x000b1b45 Device Boot Start End Blocks Id System /dev/vda1 * 2048 83875364 41936658+ 83 Linux WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion. Disk /dev/vdb: 35184.4 GB, 35184372088832 bytes, 68719476736 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: gpt Disk identifier: BCE92401-F427-45CC-8B0D-B30EDF279C2F # Start End Size Type Name 1 2048 10307921919 4.8T Microsoft basic mntParted ツールを使用してパーティションを作成し、パーティションにディスク容量を割り当てます。
次のコマンドを実行して Parted ツールを起動します。
sudo parted /dev/vdb次のコマンドを実行して、割り当て可能なディスク容量を表示します。既存のパーティションの開始セクター (Start 値)、終了セクター (End 値)、容量 (Size 値) を記録します。
print freeこの例では、/dev/vdb1 の Start 値は 1049 KB、End 値は 5278 GB、Size 値は 5278 GB です。
(parted) print free Model: Virtio Block Device (virtblk) Disk /dev/vdb: 35.2TB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 17.4kB 1049kB 1031kB Free Space 1 1049kB 5278GB 5278GB ext4 mnt 5278GB 35.2TB 29.9TB Free Space次のコマンドを実行して、開始セクターと容量を指定してパーティションを作成します。
mkpart <パーティション名> <開始セクター> <割り当てる容量のパーセンテージ>この例では、test という名前の /dev/vdb2 パーティションを作成します。新しいパーティションの開始セクターは、既存のパーティションの終了セクターです。データディスク上の追加のディスク容量のすべてを新しいパーティションに割り当てます。
mkpart test 5278GB 100%次のコマンドを実行して、パーティションの容量 (サイズ) が変更されたかどうかを確認します:
print次のようなコマンド出力が返されます。
(parted) print Model: Virtio Block Device (virtblk) Disk /dev/vdb: 35.2TB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 5278GB 5278GB ext4 mnt 2 5278GB 35.2TB 29.9TB test次のコマンドを実行して Parted ツールを終了します。
quit
新しいパーティションにファイルシステムを作成します。
Ext4 ファイルシステムを作成するには、次のコマンドを実行します。
sudo mkfs.ext4 /dev/vdb2Ext3 ファイルシステムを作成するには、次のコマンドを実行します。
sudo mkfs.ext3 /dev/vdb2XFS ファイルシステムを作成するには、次のコマンドを実行します。
sudo mkfs.xfs /dev/vdb2BTRFS ファイルシステムを作成するには、次のコマンドを実行します。
sudo mkfs.btrfs /dev/vdb2
次のようなコマンド出力が返されます。この例では、XFS ファイルシステムを作成します。
[testuser@ecshost ~]# sudo mkfs.xfs /dev/vdb2 meta-data=/dev/vdb2 isize=512 agcount=28, agsize=268435455 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=7301444096, imaxpct=5 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=521728, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0次のコマンドを実行して、変更後のパーティション容量を表示します。
sudo fdisk -l次のようなコマンド出力が返されます。
[testuser@ecshost ~]# sudo fdisk -l Disk /dev/vda: 42.9 GB, 42949672960 bytes, 83886080 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x000b1b45 Device Boot Start End Blocks Id System /dev/vda1 * 2048 83875364 41936658+ 83 Linux WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion. Disk /dev/vdb: 35184.4 GB, 35184372088832 bytes, 68719476736 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: gpt Disk identifier: BCE92401-F427-45CC-8B0D-B30EDF279C2F # Start End Size Type Name 1 2048 10307921919 4.8T Microsoft basic mnt 2 10307921920 68719474687 27.2T Microsoft basic test次のコマンドを実行して、パーティション上のファイルシステムの種類を表示します。
blkid次のようなコマンド出力が返されます。
[testuser@ecshost ~]# blkid /dev/vda1: UUID="ed95c595-4813-480e-****-85b1347842e8" TYPE="ext4" /dev/vdb1: UUID="21e91bbc-7bca-4c08-****-88d5b3a2303d" TYPE="ext4" PARTLABEL="mnt" PARTUUID="576235e0-5e04-4b76-****-741cbc7e98cb" /dev/vdb2: UUID="a7dcde59-8f0f-4193-****-362a27192fb1" TYPE="xfs" PARTLABEL="test" PARTUUID="464a9fa9-3933-4365-****-c42de62d2864"新しいパーティションをマウントするには、次のコマンドを実行します:
sudo mkdir /data sudo mount /dev/vdb2 /data
方法 5:raw ディスクのファイルシステムの拡張
データディスクが、ファイルシステムはあるもののパーティションがない raw ディスクの場合は、次の手順でファイルシステムを拡張します。
次のコマンドを実行して、ファイルシステムのタイプを表示します:
df -Th次のようなコマンド出力が返されます。この例では、/dev/vdb のファイルシステムタイプは XFS です。
[testuser@ecshost ~]# df -Th Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 434M 0 434M 0% /dev tmpfs tmpfs 446M 0 446M 0% /dev/shm tmpfs tmpfs 446M 524K 446M 1% /run tmpfs tmpfs 446M 0 446M 0% /sys/fs/cgroup /dev/vda1 ext4 20G 2.5G 17G 14% / tmpfs tmpfs 90M 0 90M 0% /run/user/0 /dev/vdb xfs 20G 53M 20G 1% /mntファイルシステムのタイプに応じて、ファイルシステムを拡張します。
XFS ファイルシステム
XFS ファイルシステムの場合は、次の xfs_growfs コマンドを実行してファイルシステムを拡張します:
sudo xfs_growfs /mnt上記のコマンドでは、
/mntはファイルシステムのマウントポイントです。説明xfs_growfs の新しいバージョンでは、引数としてマウントポイントが必要です。例:
xfs_growfs /mnt。ファイルシステムを拡張するには、ファイルシステムのマウントポイントを指定して xfs_growfs コマンドを実行してください。xfs_growfs --helpコマンドを実行すると、バージョンごとの xfs_growfs の使用方法を確認できます。ext または BTRFS ファイルシステム
次のコマンドを実行してマウント情報を表示します:
mount | grep "/dev/vdb"次のコマンドを実行してデータディスクをアンマウントします:
sudo umount /dev/vdb次のコマンドを実行して、データディスクがアンマウントされているかどうかを確認します:
mount | grep "/dev/vdb"以下にコマンドの実行例を示します。
[testuser@ecshost ~]# mount | grep "/dev/vdb" /dev/vdb on /mnt type ext4 (rw,relatime,data=ordered) [testuser@ecshost ~]# sudo umount /dev/vdb [testuser@ecshost ~]# mount | grep "/dev/vdb"ファイルシステムを拡張します。
ext ファイルシステムの場合は、次の resize2fs コマンドを実行してファイルシステムを拡張します:
sudo resize2fs /dev/vdbBTRFS ファイルシステムの場合は、次の btrfs コマンドを実行してファイルシステムを拡張します:
sudo btrfs filesystem resize max /mnt上記のコマンドでは、
/mntはファイルシステムのマウントポイントです。
次のコマンドを実行して、ディスクをマウントポイントにマウントします:
sudo mount /dev/vdb /mnt
df -hコマンドを実行して、ファイルシステムが拡張されているか確認します:df -Th次のようなコマンド出力が返されます。コマンド出力から、ファイルシステムの容量が増えていることが分かります。これは、ファイルシステムが拡張されていることを示しています。
[testuser@ecshost ~]# df -Th Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 434M 0 434M 0% /dev tmpfs tmpfs 446M 0 446M 0% /dev/shm tmpfs tmpfs 446M 524K 446M 1% /run tmpfs tmpfs 446M 0 446M 0% /sys/fs/cgroup /dev/vda1 ext4 20G 2.5G 17G 14% / tmpfs tmpfs 90M 0 90M 0% /run/user/0 /dev/vdb xfs 30G 63M 30G 1% /mnt