「LVM に Arch Linux をインストールする」の版間の差分
(→論理ボリュームを作成する: 翻訳) |
(→論理ボリュームをフォーマット・マウントする: 翻訳) |
||
133行目: | 133行目: | ||
=== 論理ボリュームをフォーマット・マウントする === |
=== 論理ボリュームをフォーマット・マウントする === |
||
+ | 論理ボリュームは {{ic|/dev/''YourVolumeGroupName''/}} に配置されているはずです。論理ボリュームを見つけられないときは、以下のコマンドを使ってデバイスノードを作成するためのモジュールをロードしてボリュームグループが使えるようにしてください: |
||
− | Your logical volumes should now be located in {{ic|/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 |
# modprobe dm_mod |
||
139行目: | 139行目: | ||
# vgchange -ay |
# vgchange -ay |
||
+ | これで論理ボリュームにファイルシステムを作成して通常のパーティションとしてマウントすることができます (追加の詳細は [[マウント]] を見てください): |
||
− | Now you can format your logical volumes and mount them as normal partitions (see [[mount|mount a file system]] for additional details): |
||
# mkfs.<''fstype''> /dev/<''volume_group''>/<''logical_volume''> |
# mkfs.<''fstype''> /dev/<''volume_group''>/<''logical_volume''> |
||
# mount /dev/<''volume_group''>/<''logical_volume''> /<''mountpoint''> |
# mount /dev/<''volume_group''>/<''logical_volume''> /<''mountpoint''> |
||
+ | 例えば: |
||
− | For example: |
||
# mkfs.ext4 /dev/VolGroup00/lvolhome |
# mkfs.ext4 /dev/VolGroup00/lvolhome |
||
# mount /dev/VolGroup00/lvolhome /home |
# mount /dev/VolGroup00/lvolhome /home |
||
+ | {{Warning|マウントポイントを選択する時は、新しく作成した論理ボリュームを選択してください (次を使って下さい: {{ic|/dev/Volgroup00/lvolhome}})。論理ボリュームが作られている実際のパーティションを'''選択してはいけません''' (次は使わないで下さい: {{ic|/dev/sda2}})。}} |
||
− | {{Warning|When choosing mountpoints, just select your newly created logical volumes (use: {{ic|/dev/Volgroup00/lvolhome}}). Do '''not''' select the actual partitions on which logical volumes were created (do not use: {{ic|/dev/sda2}}).}} |
||
== システムを設定する == |
== システムを設定する == |
2022年9月2日 (金) 09:23時点における版
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
)。