「LVM に Arch Linux をインストールする」の版間の差分
細 (セクションリンクを修正) |
|||
(同じ利用者による、間の7版が非表示) | |||
10行目: | 10行目: | ||
概略: |
概略: |
||
− | * 必要なパッケージをインストールする。([[LVM# |
+ | * 必要なパッケージをインストールする。([[LVM#インストール]] を参照) |
* 物理ボリューム (PV) を格納する[[パーティショニング|パーティション]]を作成する。 |
* 物理ボリューム (PV) を格納する[[パーティショニング|パーティション]]を作成する。 |
||
* PV を作成する。ディスクが一つしかない場合は一つの大きなパーティションに一つの PV を作成するのが良いでしょう。ディスクが複数ある場合はそれぞれにパーティションを作成してパーティション毎に PV を作ることができます。 |
* PV を作成する。ディスクが一つしかない場合は一つの大きなパーティションに一つの PV を作成するのが良いでしょう。ディスクが複数ある場合はそれぞれにパーティションを作成してパーティション毎に PV を作ることができます。 |
||
101行目: | 101行目: | ||
{{Tip| |
{{Tip| |
||
+ | * スナップショット、論理ボリュームキャッシング、シンプロビジョニングされた論理ボリューム、RAID を使いたい場合、[[LVM#論理ボリューム]] を見てください。 |
||
− | * If you wish to use snapshots, logical volume caching, thin provisioned logical volumes or RAID see [[LVM#Logical volumes]]. |
||
+ | * 論理ボリュームを [[ext4]] でフォーマットする場合、{{man|8|e2scrub}} を使えるようにするためにボリュームグループ内に 256 MiB 以上の空き領域を残してください。 |
||
− | * If a logical volume will be formatted with [[ext4]], leave at least 256 MiB free space in the volume group to allow using {{man|8|e2scrub}}. |
||
}} |
}} |
||
+ | ボリュームグループには論理ボリュームを作る必要があります。論理ボリュームを作成するには次のコマンドを使います。新しい論理ボリュームの名前、サイズ、そしてどのボリュームグループに作るかを指定してください: |
||
− | 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''> |
# lvcreate -L <''size''> <''volume_group''> -n <''logical_volume''> |
||
+ | 例えば: |
||
− | For example: |
||
# lvcreate -L 10G VolGroup00 -n lvolhome |
# lvcreate -L 10G VolGroup00 -n lvolhome |
||
+ | これで論理ボリュームが作成され {{ic|/dev/VolGroup00/lvolhome}} でアクセスできるようになります。ボリュームグループと同じく、論理ボリュームには好きな名前を命名できます (いくつかの例外があります: {{man|8|lvm|VALID_NAMES}})。 |
||
− | This will create a logical volume that you can access later with {{ic|/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 {{man|8|lvm|VALID_NAMES}}. |
||
+ | また、一つもしくは複数の物理ボリュームを指定して LVM が使用する領域を制限することもできます。例えば、小容量の SSD に root ファイルシステムの論理ボリュームを作成して、HDD にホームとして使うボリュームを作成したい場合などが考えられます。コマンドラインに物理ボリュームデバイスを追加してください、例えば: |
||
− | 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 |
# 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''> |
# lvcreate -l 100%FREE <''volume_group''> -n <''logical_volume''> |
||
+ | 作成した論理ボリュームは次のコマンドで確認できます: |
||
− | You can track created logical volumes with: |
||
# lvdisplay |
# lvdisplay |
||
− | {{Note| |
+ | {{Note|上のコマンドを実行するために ''device-mapper'' カーネルモジュールをロード ({{ic|modprobe dm_mod}}) しなくてはならない場合があります。}} |
+ | {{Tip|比較的小さな論理ボリュームを作ってから、後で必要になったときに拡大することも可能です。シンプリシティを尊ぶのなら、ボリュームグループに拡大のための空き容量をいくらか残しておきましょう。}} |
||
− | {{Tip|You can start out with relatively small logical volumes and expand them later if needed. For simplicity, leave some free space in the volume group so there is room for expansion.}} |
||
=== 論理ボリュームをフォーマット・マウントする === |
=== 論理ボリュームをフォーマット・マウントする === |
||
+ | 論理ボリュームは {{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}}).}} |
||
== システムを設定する == |
== システムを設定する == |
||
155行目: | 155行目: | ||
=== mkinitcpio フックを追加する === |
=== mkinitcpio フックを追加する === |
||
+ | ルートファイルシステムが LVM 上にある場合、適切な [[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: |
||
+ | * デフォルトの busybox ベースの initramfs の場合、{{ic|udev}} と {{ic|lvm2}} |
||
− | * {{ic|udev}} and {{ic|lvm2}} for the default busybox-based initramfs |
||
− | * {{ic|systemd}} |
+ | * systemd ベースの initramfs の場合、{{ic|systemd}} と {{ic|lvm2}} |
+ | {{ic|udev}} はデフォルトで有効化されています。設定ファイルを編集し、{{ic|block}} と {{ic|filesystems}} の間に {{ic|lvm2}} を挿入してください、以下のように: |
||
− | {{ic|udev}} is there by default. Edit the file and insert {{ic|lvm2}} between {{ic|block}} and {{ic|filesystems}} like so: |
||
{{hc|1=/etc/mkinitcpio.conf|2= |
{{hc|1=/etc/mkinitcpio.conf|2= |
||
166行目: | 166行目: | ||
}} |
}} |
||
− | + | systemd ベースの initramfs の場合: |
|
{{hc|1=/etc/mkinitcpio.conf|2= |
{{hc|1=/etc/mkinitcpio.conf|2= |
||
172行目: | 172行目: | ||
}} |
}} |
||
+ | その後、通常のインストール手順を続けて、[[mkinitcpio#イメージ作成とアクティベーション|初期 RAM ディスクの作成]]手順を行うことができます。 |
||
− | Afterwards, you can continue in normal installation instructions with the [[mkinitcpio#Image creation and activation|create an initial ramdisk]] step. |
||
{{Tip| |
{{Tip| |
||
− | * |
+ | * {{ic|lvm2}} フックは {{Pkg|lvm2}} でインストールされます、{{Pkg|mkinitcpio}} ではありません。''arch-chroot'' で ''mkinitcpio'' を実行する場合、{{Pkg|lvm2}} を ''arch-chroot'' 環境の中でインストールする必要があります。そうしないと、''mkinitcpio'' が {{ic|lvm2}} フックを見つけられません。もし、''arch-chroot'' 環境の外にしか {{Pkg|lvm2}} が存在しない場合、''mkinitcpio'' は {{ic|Error: Hook 'lvm2' cannot be found}} と出力します。 |
− | * |
+ | * ルートファイルシステムが LVM RAID 上に存在する場合、[[#mkinitcpio を RAID 用に設定する]] を見てください。 |
}} |
}} |
||
==== 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 (ノーマルとシン)。 |
|
=== カーネルブートオプション === |
=== カーネルブートオプション === |
||
+ | ルートファイルシステムが論理ボリューム内に存在する場合、{{ic|1=root=}} [[カーネルパラメータ]]にはマップされたデバイスを指定しなければなりません (例: {{ic|/dev/''vg-name''/''lv-name''}})。 |
||
− | If the root file system resides in a logical volume, the {{ic|1=root=}} [[kernel parameter]] must be pointed to the mapped device, e.g {{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
)。