Red Hat Enterprise Linux 8 (以降、RHEL8)のデバイスファイル /dev/sdb のパーティション設定についてご紹介いたします。
RHEL8 を構築する際にディスクが1つの場合は、ディスクはシステム起動ディスクとなる /dev/sda のみで、そのパーティション設定はインストール時の GUI で設定可能です。しかし、ディスクが2つ以上ある場合はインストール後にコマンドでパーティションの作成・ファイルシステムの作成・マウントが必要です。
また、デバイスタイプが Logical Volume Manager(以降、LVM)の場合の設定についてもご紹介いたします。
はじめに
はじめに、ファイルシステムやデバイスファイルについて基礎的な説明をします。既知の方は読み飛ばして構いません。
ディスクに保存されるデータをファイルとして管理する仕組みがファイルシステムです。ハードディスクや SSD を利用するには、ディスク内にパーティションを作成し、次にパーティション内にファイルシステムを作成し、そのファイルシステムをマウントするという作業を行います。
Linux では、デバイスやパーティションに対応するデバイスファイルが用意されています。デバイスファイルとは、ハードディスクや SSD、DVD ドライブ、シリアルポートといったデバイスの入出力を扱うための特殊なファイルです。前述の通り、ディスクが2、3ある場合は /sdb、/sdc の設定が必要となります。主なデバイスファイルは下図の通りです。
デバイスファイル | 説明 |
---|---|
/dev/sda | 1番目のハードディスク・SSD・フラッシュメモリ |
/dev/sdb | 2番目のハードディスク・SSD・フラッシュメモリ |
/dev/sdc | 3番目のハードディスク・SSD・フラッシュメモリ |
/dev/sdd | 4番目のハードディスク・SSD・フラッシュメモリ |
/dev/sr0 | 1番目のCD/DVDドライブ |
標準パーティションのパーティション設定
本環境のパラメータ
RHEL8 初期セットアップ後から設定の手順を説明します。
本環境は UEFI を使用、ディスク1およびディスク2に 20GB を搭載しています。また、下記の内蔵ディスクパーティションとなるように設定していきます。
Disk Number | サイズ | デバイス名 | マウントポイント | パーティションサイズ | デバイスタイプ | ファイルシステム |
---|---|---|---|---|---|---|
1 | 20GB | /dev/sda1 | /boot/efi | 200Mib | 標準パーティション | efi |
/dev/sda2 | /boot | 500Mib | 標準パーティション | xfs | ||
/dev/sda3 | / | 残り | 標準パーティション | xfs | ||
/dev/sda4 | swap | 4019Mib | 標準パーティション | swap | ||
2 | 20GB | /dev/sdb1 | /test | 20Gib | 標準パーティション | xfs |
ディスク1の sda1~4 の4つのマウントポイントは典型的なディレクトリです。ここからお客様のご要望に応じて各項目の設定変更を行います。また、下記に役割を記します。
/boot/efi
UEFI を使用している場合にブートローダが格納されます。EFI システムパーティションが FAT(または VFAT)形式でフォーマットされ、マウントされています。
/boot
起動に必要な設定やカーネルイメージが配置されます。起動時に BIOS の制御を受けないようにするため、ルートファイルシステムとは別に、ディスクの先頭付近に配置されています。
/(root)
/(root)ディレクトリを配置する場所です。スラッシュルートディレクトリは、ディレクトリ構造のトップレベルです。デフォルトでは、書き込み先のパスに別のファイルシステムがマウントされていない限り、すべてのファイルがこのファイルシステムに書き込まれます。
swap
システムが処理しているデータを格納する RAM が不足すると、メモリの中で不要な部分は swap ファイルシステムに書き込まれます。
パーティションの作成
管理者権限で RHEL8 の端末にログインします。
はじめに下記コマンドで全てのブロックデバイスのパーティション情報を表示します。
# parted -l
fdisk でも確認できます。
# fdsik -l
この時点では /dev/sdb の内蔵ディスクパーティションは作成されていないことが確認できます。
parted または fdisk を使ってパーティションを作成します。下図では parted を使用しています。
上図の解説をします。
- parted /dev/sdb にて、parted パートへ進みます。
- mklabel gpt にて、新しいパーティションテーブルを作成しています。
- mkpart にて、パーティションの名前やファイルシステムの種類、サイズを指定してパーティションを作成します。
- p にて、パーティションテーブルを表示します。
- q にて、終了します。
※下記のように設定も可能です。
# parted -s /dev/sdb mklabel gpt
# parted -s /dev/sdb mkpart primary xfs 0G 100%
-s オプションは対話処理を省略できます。
ファイルシステムの作成とマウント
下記コマンドで xfs のファイルシステムを作成します。
# mkfs -t xfs /dev/sdb1
マウントポイントを作成するため、パラメータより test フォルダを作成します。
# mkdir /test
/etc/fstab にエントリを作成した後、mount コマンドでデバイスをマウントします。
# vi /etc/fstab
/dev/sdb1 /test xfs defaults 0 0
# mount /test
下記コマンドで /test のエントリが見えていることを確認し完了です。
# df -TH /dev/sdb1
LVM のパーティション設定
LVM の仕組み
LVM でのパーティション設定の前に、LVM の基本について記します。
LVM は、ディスクの管理をより柔軟に行うことのできる機能です。ディスクのパーティションを直接操作するのではなく、仮想的なパーティションである論理ボリュームを動的に管理します。
1台のハードディスクを物理ボリューム(以下、PV : Physical Volume)とし、束ねることでボリュームグループ(以下、VG : Volume Group)を構成します。VG の一部を論理ボリューム(以下、LV : Logical Volume)として切り出し、ブロックデバイスとして扱うことができます。
LVM の仕組みは下図のようなイメージです。
本環境のパラメータ
先ほどのパラメータと異なり、ディスクを3つ搭載し、/boot ディスクを除いて LVM として設定します。LVM ボリュームを /boot に使用することはできません。下記の内蔵ディスクパーティションとなるように設定していきます。
Disk Number | サイズ | デバイス名 | マウントポイント | パーティションサイズ | デバイスタイプ | ファイルシステム | VG 名 | LV 名 |
---|---|---|---|---|---|---|---|---|
1 | 20GB | /dev/sda1 | /boot/efi | 200Mib | 標準パーティション | efi | ||
/dev/sda2 | /boot | 500Mib | 標準パーティション | xfs | ||||
/dev/sda3 | / | 残り | LVM | xfs | VG01 | root | ||
/dev/sda4 | swap | 4019Mib | LVM | swap | swap | |||
2 | 20GB | /dev/sdb1 | /mnt | 20Gib | LVM | xfs | VG02 | test |
3 | 20GB | /dev/sdc1 |
パーティションの作成
初期セットアップ後から設定の手順を説明します。
ここでは、/dev/sdb1 と /dev/sdc1 を使用し VG を作成し、そこから LV を作成します。
初めに LVM で使用するディスクの確認をします。
# fdisk -l /dev/sdb
# fdisk -l /dev/sdc
下記コマンドで LVM を作成するためのパーティションを parted または fdisk を使って作成します。下図では fdisk を使用しています。
上図の解説をします。
- fdisk コマンドで fdisk のプロンプトが表示されます。
- n にて、新規パーティションを作成します。
- p にて、基本パーティションを選択します。
- パーティション番号と開始/終了のセクタ番号は未入力でエンターを押下し、既定値として設定します。
- w にて、パーティションを作成し、通常のプロンプトに戻ります。
物理ボリュームの作成
上記で作成したパーティションをもとに PV を作成します。
LVM では、この PV を最小単位として使用し、論理的なディスクデバイスを作成します。
# pvcreate /dev/sdb1 /dev/sdc1
PV 作成後、下記コマンドで指定したパーティションのサイズや、PV に登録されていることを確認します。
# pvdisplay
ボリュームグループの作成
用意した PV /dev/sdb1 と /dev/sdc1 で、VG を作成します。VG 名はパラメータより VG02 とします。
# vgcreate VG02 /dev/sdb1 /dev/sdc1
VG 作成後、下記コマンドで VG が作成されていること、VG のサイズを確認します。
# vgdisplay
論理ボリュームの作成
用意した VG 内に LV を作成します。LV 名はパラメータより test とします。また、サイズは 20GB とします。作成された LV は、/dev/VG02/test でアクセスできます。
# lvcreate -L 20G -n test VG02
- -L オプションで LV のサイズを指定します。
- -n オプションで LV の名称を指定します。
LV 作成後、下記コマンドで LV が作成されていること、LV のサイズを確認します。
# lvdisplay
LV が正常に作成された後、/dev/mapper ディレクトリ配下に VG_Name-LV_Name のフォーマットで論理デバイスが作成されます。
ファイルシステムの作成とマウント
最後に、パラメータ通り LV に xfs ファイルシステムを作成し、/mnt にマウントします。
# mkfs.xfs /dev/VG02/test
# mount /dev/VG02/test /mnt
/etc/fstab にエントリを追加します。
# vi /etc/fstab
/dev/mapper/VG02-test /mnt xfs defaults 0 0
dfコマンドで確認します。
# df -T /mnt
おわりに
以上で RHEL8 にデバイスファイル /dev/sdb の標準パーティションと LVM 両パターンでのパーティション設定、ファイルシステムの作成、マウントまで完了しました。
本記事では実施していない fdisk などのコマンドやオプションが何パターンもありますが、一つでも使い慣れておくと便利です。