「LVM に Arch Linux をインストールする」の版間の差分
(→論理ボリュームをフォーマット・マウントする: 翻訳) |
細 (セクションリンクを修正) |
||
(同じ利用者による、間の1版が非表示) | |||
10行目: | 10行目: | ||
概略: |
概略: |
||
− | * 必要なパッケージをインストールする。([[LVM# |
+ | * 必要なパッケージをインストールする。([[LVM#インストール]] を参照) |
* 物理ボリューム (PV) を格納する[[パーティショニング|パーティション]]を作成する。 |
* 物理ボリューム (PV) を格納する[[パーティショニング|パーティション]]を作成する。 |
||
* PV を作成する。ディスクが一つしかない場合は一つの大きなパーティションに一つの PV を作成するのが良いでしょう。ディスクが複数ある場合はそれぞれにパーティションを作成してパーティション毎に PV を作ることができます。 |
* PV を作成する。ディスクが一つしかない場合は一つの大きなパーティションに一つの PV を作成するのが良いでしょう。ディスクが複数ある場合はそれぞれにパーティションを作成してパーティション毎に PV を作ることができます。 |
||
202行目: | 202行目: | ||
ルートファイルシステムが論理ボリューム内に存在する場合、{{ic|1=root=}} [[カーネルパラメータ]]にはマップされたデバイスを指定しなければなりません (例: {{ic|/dev/''vg-name''/''lv-name''}})。 |
ルートファイルシステムが論理ボリューム内に存在する場合、{{ic|1=root=}} [[カーネルパラメータ]]にはマップされたデバイスを指定しなければなりません (例: {{ic|/dev/''vg-name''/''lv-name''}})。 |
||
+ | |||
+ | {{TranslationStatus|Install Arch Linux on LVM|2022-09-02|744375}} |
2023年4月29日 (土) 13:24時点における最新版
LVM ボリュームは、インストール手順のパーティショニングとフォーマットの間で作成する必要があります。パーティションを直接フォーマットしてルートファイルシステムにするのではなく、ファイルシステムを論理ボリューム (LV) 内で作成します。
概略:
- 必要なパッケージをインストールする。(LVM#インストール を参照)
- 物理ボリューム (PV) を格納するパーティションを作成する。
- PV を作成する。ディスクが一つしかない場合は一つの大きなパーティションに一つの PV を作成するのが良いでしょう。ディスクが複数ある場合はそれぞれにパーティションを作成してパーティション毎に PV を作ることができます。
- ボリュームグループ (VG) を作成して全ての PV を追加する。
- その VG の中に論理ボリューム (LV) を作成する。
- インストールガイド#パーティションのフォーマット に進んで下さい。
- インストールガイドの「初期 RAM ディスク環境を作成する」手順にたどり着いたら、
/etc/mkinitcpio.conf
にlvm2
フックを追加する (詳細は下記に)。
目次
インストール
インストールガイド#パーティション までインストールガイドに従います。この時点でインストールガイドから分岐し、LVM を念頭に置いたパーティショニングを行います。
パーティションを作成する
まず、LVM をセットアップする前に必要に応じてディスクをパーティショニングしてください。
パーティショニングを作成してください:
- Master Boot Record パーティションテーブルを使用する場合は、パーティションタイプ ID を
8e
に設定してください (fdisk ではパーティションタイプLinux LVM
)。 - GUID パーティションテーブルを使う場合は、パーティションタイプ GUID を
E6D6D379-F507-44C2-A23C-238F2A3DF928
に設定してください (fdisk ではパーティションタイプLinux LVM
、gdisk では8e00
)。
物理ボリュームを作成する
物理ボリュームとして使えるデバイスを確認するには:
# lvmdiskscan
デバイス上に物理ボリュームを作成する:
# pvcreate DEVICE
このコマンドはデバイスにヘッダを作成し、LVM で使えるようにします。LVM#LVM の構成要素 に書かれてあるように、DEVICE には任意のブロックデバイス (例: ディスク /dev/sda
やパーティション /dev/sda2
、ループバックデバイスなど) を指定できます。例えば:
# pvcreate /dev/sda2
作成した物理ボリュームを以下のコマンドで確認できます:
# pvdisplay
また、物理ボリュームの情報は以下のコマンドで得られます:
# pvscan
ボリュームグループを作成・拡張する
まず、新しいボリュームグループを物理ボリュームのうちの一つに作成する必要があります:
# vgcreate <volume_group> <physical_volume>
例えば:
# vgcreate VolGroup00 /dev/sda2
ボリュームグループ名に使える有効な文字のリストは lvm(8) を見てください。
ボリュームグループの拡張も同じように簡単です:
# vgextend <volume_group> <physical_volume>
例えば、作成したボリュームグループに sdb1
と sdc
の両方を追加するには:
# vgextend VolGroup00 /dev/sdb1 # vgextend VolGroup00 /dev/sdc
拡張後のボリュームグループは以下のコマンドで確認できます:
# vgdisplay
This is also what you would do if you wanted to add a disk to a RAID or mirror group with failed disks.
物理ボリュームとボリュームグループを複合的に作成する
LVM では一度にまとめてボリュームグループの作成と物理ボリュームの作成を行うことができます。例えば、上述のように、3つのデバイスで VolGroup00 グループを作成する場合、次を実行:
# vgcreate VolGroup00 /dev/sda2 /dev/sdb1 /dev/sdc
上記のコマンドはまず、3つのパーティションを物理ボリュームとして設定して、それから3つのボリュームでボリュームグループを作成します。デバイスに既にファイルシステムが存在する場合、警告が表示されます。
論理ボリュームを作成する
ボリュームグループには論理ボリュームを作る必要があります。論理ボリュームを作成するには次のコマンドを使います。新しい論理ボリュームの名前、サイズ、そしてどのボリュームグループに作るかを指定してください:
# lvcreate -L <size> <volume_group> -n <logical_volume>
例えば:
# lvcreate -L 10G VolGroup00 -n lvolhome
これで論理ボリュームが作成され /dev/VolGroup00/lvolhome
でアクセスできるようになります。ボリュームグループと同じく、論理ボリュームには好きな名前を命名できます (いくつかの例外があります: lvm(8) § VALID_NAMES)。
また、一つもしくは複数の物理ボリュームを指定して LVM が使用する領域を制限することもできます。例えば、小容量の SSD に root ファイルシステムの論理ボリュームを作成して、HDD にホームとして使うボリュームを作成したい場合などが考えられます。コマンドラインに物理ボリュームデバイスを追加してください、例えば:
# lvcreate -L 10G VolGroup00 -n lvolhome /dev/sdc1
ボリュームグループに残っている空き容量全てを使う論理ボリュームを作成するには、次のコマンドを使って下さい:
# lvcreate -l 100%FREE <volume_group> -n <logical_volume>
作成した論理ボリュームは次のコマンドで確認できます:
# lvdisplay
論理ボリュームをフォーマット・マウントする
論理ボリュームは /dev/YourVolumeGroupName/
に配置されているはずです。論理ボリュームを見つけられないときは、以下のコマンドを使ってデバイスノードを作成するためのモジュールをロードしてボリュームグループが使えるようにしてください:
# modprobe dm_mod # vgscan # vgchange -ay
これで論理ボリュームにファイルシステムを作成して通常のパーティションとしてマウントすることができます (追加の詳細は マウント を見てください):
# mkfs.<fstype> /dev/<volume_group>/<logical_volume> # mount /dev/<volume_group>/<logical_volume> /<mountpoint>
例えば:
# mkfs.ext4 /dev/VolGroup00/lvolhome # mount /dev/VolGroup00/lvolhome /home
システムを設定する
mkinitcpio フックを追加する
ルートファイルシステムが LVM 上にある場合、適切な mkinitcpio フックを有効化する必要があります。さもないと、システムが起動しないかもしれません。以下を有効化してください:
- デフォルトの busybox ベースの initramfs の場合、
udev
とlvm2
- systemd ベースの initramfs の場合、
systemd
とlvm2
udev
はデフォルトで有効化されています。設定ファイルを編集し、block
と filesystems
の間に lvm2
を挿入してください、以下のように:
/etc/mkinitcpio.conf
HOOKS=(base udev ... block lvm2 filesystems)
systemd ベースの initramfs の場合:
/etc/mkinitcpio.conf
HOOKS=(base systemd ... block lvm2 filesystems)
その後、通常のインストール手順を続けて、初期 RAM ディスクの作成手順を行うことができます。
mkinitcpio を RAID 用に設定する
ルートファイルシステムが LVM RAID 上に存在する場合、lvm2
フックに加えて dm-raid
と適切な RAID モジュール (例: raid0
、raid1
、raid10
、raid456
) を mkinitcpio.conf
内の MODULES 配列に追加する必要があります。また、RAID をインテグリティチェックサムのオプション付きで作成した場合 (lvcreate
で --raidintegrity
オプション) 、dm_integrity
モジュールが必要となります。
busybox ベースの initramfs の場合:
/etc/mkinitcpio.conf
MODULES=(dm-raid dm_integrity raid0 raid1 raid10 raid456) HOOKS=(base udev ... block lvm2 filesystems)
systemd ベースの initramfs の場合:
/etc/mkinitcpio.conf
MODULES=(dm-raid dm_integrity raid0 raid1 raid10 raid456) HOOKS=(base systemd ... block lvm2 filesystems)
LVM シンボリューム (LVM thin volume) を使用するシステムの場合、systemd フックを udev と block の間に置くと、シンボリュームが機能不全を起こします。パラメータ (base udev autodetect modconf block lvm2 filesystems keyboard fsck) だけで機能します: LVM 論理ボリューム内のルートファイルシステムと、他の場所にある他の LVM (ノーマルとシン)。
カーネルブートオプション
ルートファイルシステムが論理ボリューム内に存在する場合、root=
カーネルパラメータにはマップされたデバイスを指定しなければなりません (例: /dev/vg-name/lv-name
)。