概要
KVMのゲストに、仮想ディスクを追加して、特定のディレクトリ領域だけ容量を変更できるようにさせたくなる事があるかもしれない。その時は、以下の手順で作成するとよい。
手順
virt-managerを起動する。
sudo virt-manager
- 対象のゲストを選ぶ。
- 電球マークを押す。
- その後、ハードウェアの追加を押す。
- その後、ストレージ欄の、仮想マシン用にディスクイメージを作成するから
- 仮想ディスクの容量をつける。
- デバイスの種類:ディスクデバイス(デフォルト)
- バスの種類:virtIO(デフォルト)
上記を選択したら、完了を押す。
電球マークの所から、VirtIO Disk 2が新たに作成され、ストレージサイズが指定された容量になっているのを確認する。
ここまでできたら、後はゲスト内で行う操作のため、virt-managerを抜ける。
ゲストを起動させる or virt-managerのコンソールで入り、ゲスト内で操作していく。
パーティションの作成
以下のコマンドを実行し、新しく作成した仮想ディスクdev/vdb
が存在する事を確認する
fdisk -l
ディスク /dev/vda: 40 GiB, 42949677056 バイト, 83886088 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: gpt
ディスク識別子: A37C8F32-17F0-4224-9F43-CDE782E5F55C
デバイス 開始位置 終了位置 セクタ サイズ タイプ
/dev/vda1 2048 1230847 1228800 600M EFI システム
/dev/vda2 1230848 11716607 10485760 5G Linux ファイルシステム
/dev/vda3 11716608 83884031 72167424 34.4G Linux ファイルシステム
ディスク /dev/vdb: 800 GiB, 858993459200 バイト, 1677721600 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0xc3ee08dd
以下のコマンドで,新しいディスクのパーティションを作成する。
fdisk /dev/vdb
Command (m for help):
新しいパーティションのためにn
と入力
Command action
e extended
p primary partition (1-4)
プライマリーパーティションを作成するため、p
を入力する。
使用可能なパーティション番号を選択します。1
を入力して、最初のパーティションを選択します。
Partition number (1-4): 1
パーティションのサイズを選択します。Enter
を押してディスク全体を割り当てます
Last cylinder or +size or +sizeM or +sizeK (2048-1677721599, default 1599):
t
を入力して、パーティションタイプを設定します。
前の手順で作成したパーティションを選択します。ここでは1
を選択します。
Partition number (1-4): 1
次に、Linuxのパーティションを作成するため、83
を入力します。
Hex code (type L to list codes): 83
その後、w
を入力して変更を書き込み、終了します。
Command (m for help): w
その後、以下のコマンドで、ext4のファイルシステムを作成する。
extの時は、-j を指定する事でext3にできる。
mkfs -t ext4 /dev/vdb1
パーティションのマウント&fatabの設定
以下のコマンドで、マウント先のディレクトリを作成する。
mkdir /マウント先
その後、先ほど作成したパーティションをマウントさせる。
mount /dev/vdb1 /マウント先
この状態で、以下のコマンドを実行して、/dev/vdb1のタイプがext4、マウント位置が/マウント先である事を確認する。
df -Th
ファイルシス タイプ サイズ 使用 残り 使用% マウント位置
devtmpfs devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs tmpfs 3.9G 17M 3.9G 1% /run
tmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/vda3 xfs 35G 11G 25G 30% /
/dev/vda1 vfat 599M 6.9M 592M 2% /boot/efi
/dev/vda2 xfs 5.0G 114M 4.9G 3% /var/log
/dev/vdb1 ext4 787G 70M 747G 1% /マウント先
tmpfs tmpfs 796M 0 796M 0% /run/user/30022
この状態では、再起動したときにマウントが消えるので、etc/fstabへの記載を行う。以下のコマンドでvdb1のUUIDを確認する。
ls -l /dev/disk/by-uuid/
その後、/etc/fstabを以下のように編集する。
vi /etc/fstab
以下の内容を、etc/fstabに追加する。UUIDは出力に合わせて変更する事。
UUID=ls -l~~で確認したUUID /マウント先 ext4 defaults 0 0
上記を追記後、:wqで閉じる。これで再起動後も/dev/vdb1が/マウント先で使用される。
参考サイト