「LVM に Arch Linux をインストールする」の版間の差分
(→カーネルブートオプション: 翻訳) |
|||
181行目: | 181行目: | ||
==== mkinitcpio を RAID 用に設定する ==== |
==== mkinitcpio を RAID 用に設定する ==== |
||
− | + | ルートファイルシステムが LVM RAID 上に存在する場合、{{ic|lvm2}} フックに加えて {{ic|dm-raid}} と適切な RAID モジュール (例: {{ic|raid0}}、{{ic|raid1}}、{{ic|raid10}}、{{ic|raid456}}) を {{ic|mkinitcpio.conf}} 内の MODULES 配列に追加する必要があります。また、RAID をインテグリティチェックサムのオプション付きで作成した場合 ({{ic|lvcreate}} で {{ic|--raidintegrity}} オプション) 、{{ic|dm_integrity}} モジュールが必要となります。 |
|
− | + | busybox ベースの initramfs の場合: |
|
{{hc|/etc/mkinitcpio.conf|2= |
{{hc|/etc/mkinitcpio.conf|2= |
||
190行目: | 190行目: | ||
}} |
}} |
||
− | + | systemd ベースの initramfs の場合: |
|
{{hc|/etc/mkinitcpio.conf|2= |
{{hc|/etc/mkinitcpio.conf|2= |
||
197行目: | 197行目: | ||
}} |
}} |
||
− | + | LVM シンボリューム (LVM thin volume) を使用するシステムの場合、systemd フックを udev と block の間に置くと、シンボリュームが機能不全を起こします。パラメータ (base udev autodetect modconf block lvm2 filesystems keyboard fsck) だけで機能します: LVM 論理ボリューム内のルートファイルシステムと、他の場所にある他の LVM (ノーマルとシン)。 |
|
=== カーネルブートオプション === |
=== カーネルブートオプション === |
2022年9月2日 (金) 08:05時点における版
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つのボリュームでボリュームグループを作成します。デバイスに既にファイルシステムが存在する場合、警告が表示されます。
論理ボリュームを作成する
Now we need to create logical volumes on this volume group. You create a logical volume with the next command by specifying the new volume's name and size, and the volume group it will reside on:
# lvcreate -L <size> <volume_group> -n <logical_volume>
For example:
# lvcreate -L 10G VolGroup00 -n lvolhome
This will create a logical volume that you can access later with /dev/VolGroup00/lvolhome
. Just like volume groups, you can use any name you want for your logical volume when creating it besides a few exceptions listed in lvm(8) § VALID_NAMES.
You can also specify one or more physical volumes to restrict where LVM allocates the data. For example, you may wish to create a logical volume for the root filesystem on your small SSD, and your home volume on a slower mechanical drive. Simply add the physical volume devices to the command line, for example:
# lvcreate -L 10G VolGroup00 -n lvolhome /dev/sdc1
To use all the free space left in a volume group, use the next command:
# lvcreate -l 100%FREE <volume_group> -n <logical_volume>
You can track created logical volumes with:
# lvdisplay
論理ボリュームをフォーマット・マウントする
Your logical volumes should now be located in /dev/YourVolumeGroupName/
. If you cannot find them, use the next commands to bring up the module for creating device nodes and to make volume groups available:
# modprobe dm_mod # vgscan # vgchange -ay
Now you can format your logical volumes and mount them as normal partitions (see mount a file system for additional details):
# mkfs.<fstype> /dev/<volume_group>/<logical_volume> # mount /dev/<volume_group>/<logical_volume> /<mountpoint>
For example:
# mkfs.ext4 /dev/VolGroup00/lvolhome # mount /dev/VolGroup00/lvolhome /home
システムを設定する
mkinitcpio フックを追加する
In case your root filesystem is on LVM, you will need to enable the appropriate mkinitcpio hooks, otherwise your system might not boot. Enable:
udev
andlvm2
for the default busybox-based initramfssystemd
andlvm2
for systemd-based initramfs
udev
is there by default. Edit the file and insert lvm2
between block
and filesystems
like so:
/etc/mkinitcpio.conf
HOOKS=(base udev ... block lvm2 filesystems)
For systemd based initramfs:
/etc/mkinitcpio.conf
HOOKS=(base systemd ... block lvm2 filesystems)
Afterwards, you can continue in normal installation instructions with the create an initial ramdisk step.
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
)。