Jump to contentJump to page navigation: previous page [access key p]/next page [access key n]
適用先 openSUSE Leap 15.6

5 熟練者向けパーティション設定 Edit source

システムの設定を洗練させていくには、ディスクのパーティション設定も洗練させる必要があります。パーティション関係の全ての設定はインストール時に行うことができます。

また、ブロックデバイスに対して永続的な名前を必要とする場合は、 /dev/disk/by-id または /dev/disk/by-uuid 内のブロックデバイスをお使いください。

論理ボリューム管理 (LVM; Logical Volume Management) はディスクのパーティション方式のうちの 1 つで、一般的に使用していた物理パーティションよりもずっと柔軟な使用形態を提供することができます。このほか、スナップショットの機能はデータのバックアップにも使用することができますし、いわゆる RAID (Redundant Array of Independent Disks; 独立した複数のディスクによる冗長性アレイ) の仕組みを利用して、データの一貫性や性能を確保したり、耐障害性の仕組みを取り入れたりすることができます。また openSUSE Leap では、マルチパス I/O にも対応しています。このほか、 iSCSI を利用してネットワーク経由のディスクを使用する構成にも対応しています 。

警告
警告: ディスク領域の単位について

パーティション設定を行う際、ディスク領域は一般的な 10 進接頭辞 (1 (キロ) = 1000) ではなく、 2 進接頭辞 (1 (キロ) = 1024) を使用することに注意してください。たとえばサイズの指定で 1GB , 1GiB , 1G のいずれかを入力した場合、 1 GB (ギガバイト) ではなく 1 GiB (ギビバイト) として扱われます。

2 進接頭辞

1 GiB = 1073741824 バイトを表します。

10 進接頭辞

1 GB = 1000000000 バイトを表します。

1 GiB ≈ 1.07 GB になります。

5.1 熟練者向けパーティション設定 の使用 Edit source

熟練者向けパーティション設定 ( 図5.1「YaST パーティション設定」 ) を使用することで、パーティションの追加や削除/変更のほか、ソフトウエア RAID や LVM などの設定を行うことができます。

警告
警告: 動作中のシステムに対するパーティション設定の変更について

動作中でもパーティションの変更を行うことはできますが、誤った操作をしてしまうと、データを失ってしまうリスクが非常に高くなります。インストール済みのシステムに対するパーティション設定の変更はできる限り避けるものとし、どうしても必要な場合は、事前に完全なバックアップを採取してから実施してください。

YaST パーティション設定
図 5.1: YaST パーティション設定

YaST の 熟練者向けパーティション設定 のダイアログ内の利用可能なストレージ には、接続されている全てのハードディスクに対して、既存のパーティションや提案するパーティション設定が表示されます。ハードディスク全体は /dev/sda のように番号無しで表示されていて、パーティションは /dev/sda1 のように、それらのデバイス名に数字を足したもので表されています。それぞれのハードディスクやパーティションのサイズ、種類、暗号化状態、ファイルシステム、マウントポイントもそれぞれ表示されています。マウントポイントとは、 Linux のファイルシステムツリー内のどこにパーティションを配置するのかを決める情報です。

左側の システムビュー には、いくつかの機能ビューが用意されています。これらのビューは既存のストレージ設定に関する情報を収集したり、各種の機能 (RAID , ボリューム管理 , 暗号化ファイル など) を設定したりするために使用することができます。また、 btrfs や NFS, TMPFS などの特殊な機能を持つファイルシステムを表示することができます。

インストール時に熟練者向けパーティション設定を起動している場合は、空きのハードディスク領域が一覧表示され、それらが自動選択されます。 openSUSE Leap に対して追加のディスク領域を割り当てるには、パーティションの一覧表示の下にあるボタンを利用して、割り当てを行ってください。

5.1.1 パーティションテーブル Edit source

openSUSE Leap では様々な パーティションテーブル を使用したり作成したりすることができます。パーティションテーブルは ディスクラベル と呼ばれることもあり、お使いのコンピュータを起動する際に重要な設定となります。新しく作成したパーティションテーブルから、お使いのマシンを起動するには、まずパーティションテーブルの形式がお使いのファームウエア側で対応しているかどうかをご確認ください。

パーティションテーブルを変更するには、 システムビュー で対象のディスクを選択して、 熟練者向け機能 › 新しいパーティションテーブルの作成 を選択します。

5.1.1.1 マスターブートレコード Edit source

マスターブートレコード (MBR) とは IBM PC で使用されている古い形式のパーティションテーブルです。場合によっては MS-DOS パーティションテーブルと呼ぶ場合もあります。 MBR には 4 個のプライマリパーティションだけを作成することができます。お使いのディスクに既に MBR が設定されている場合、 openSUSE Leap では追加のパーティションを作成してインストール先として使用できるようにします。

この 4 個のパーティションの制限は、 拡張パーティション という仕組みを利用することで解決することができます。拡張パーティションそれ自身はプライマリパーティションで、その中に 論理パーティション と呼ばれる複数のパーティションを設定して利用します。

なお、 UEFI ファームウエアをお使いの場合でも、一般的にレガシーモードを利用すれば、 MBR から起動することができます。

5.1.1.2 GPT パーティションテーブル Edit source

UEFI コンピュータの場合、 GUID パーティションテーブル (GPT) を既定で使用します。 openSUSE Leap では、まだ何もパーティションテーブルが作成されていない場合、 GPT を作成しようとします。

なお、古い BIOS ファームウエアをお使いの場合、 GPT パーティションから起動することはできません。

下記のいずれかの機能を使用する場合、 GPT パーティションテーブルが必要となります:

  • 4 個以上のプライマリパーティションを使用したい場合

  • UEFI の Secure Boot を使用したい場合

  • 2 TB 以上のディスクを使用する場合

注記
注記: Parted 3.1 もしくはそれ以前におけるラベル設定の誤りについて

parted 3.1 もしくはそれ以前のバージョンで作成した GPT パーティションでは、 Linux 固有の GPT GUID ではなく、 Microsoft Basic Data パーティションのタイプが設定されてしまいます。新しいバージョンの parted では、これらのパーティションに対して、 msftdata というフラグを設定してしまいます。そのため、他のパーティションツールを使用すると、これらのパーティションが Windows のパーティションであるものとして扱われてしまうことがあります。

フラグを削除したい場合は、下記のように実行します:

# parted デバイス名 set パーティション番号 msftdata off

5.1.2 パーティション Edit source

YaST パーティション設定では、いくつかのファイルシステムを作成してフォーマットすることができます。 openSUSE Leap での既定のファイルシステムは Btrfs です。詳しくは 5.1.2.2項 「btrfs パーティションの設定」 をお読みください。

また、よく使用される他のファイルシステムにも対応しています: Ext2 , Ext3 , Ext4 , FAT , XFS , Swap, UDF

5.1.2.1 パーティションの作成 Edit source

パーティションを作成するには、 ハードディスク を選んで空き領域のあるハードディスクを選択したあと、右側で パーティション タブを選択し、下記のようにして行います:

  1. 追加 を押して新しいパーティションを作成します。 MBR を使用している場合は、プライマリパーティションと拡張パーティションのどちらを作成するのかを尋ねられます。拡張パーティションテーブルを作成すると、その内部にさらにパーティションを作成できるようになります。詳しくは 5.1.1項 「パーティションテーブル」 をお読みください。

  2. 新しいパーティションに対して設定するサイズを指定します。空き領域全てを割り当てることもできますし、サイズを指定することもできます。

  3. 次に使用するファイルシステムとマウントポイントを設定します。 YaST では各パーティションを作成する際、マウントポイントを自動的に判別して提案します。また、ラベルでのマウントなど、マウント方法を変更したい場合は、 fstab オプション を押してください。

  4. 必要であれば、追加のファイルシステムオプションを指定することもできます。たとえば永続性のあるデバイス名が必要な場合などが挙げられます。利用可能なオプションについて、詳しくは 5.1.3項 「パーティションの編集」 をお読みください。

  5. 最後に 完了 を押すと、パーティション設定を適用してパーティション設定モジュールを終了することができます。

    インストール時にパーティションを作成している場合は、インストール概要の画面に戻ることができます。

5.1.2.2 btrfs パーティションの設定 Edit source

ルートパーティションに対する既定のファイルシステムは btrfs になっています。 詳しくは をお読みください。 ルートファイルシステムは既定のサブボリュームになりますので、作成されるサブボリュームの一覧内には現れません。また、既定のサブボリュームであることから、通常のファイルシステムとしてマウントできるようになります。

重要
重要: 暗号化されたルートパーティション内での btrfs について

既定のパーティション設定では、ルートパーティションを btrfs に設定し、 /boot がディレクトリとなるように設定されます。ルートパーティションを暗号化する場合、既定の MSDOS パーティションテーブルではなく、 GPT パーティションテーブルを使用することをご確認ください。そうでないと、 GRUB2 ブートローダが第 2 ステージのブートローダを書き込む際、十分な領域を確保できなくなってしまう場合があります。

btrfs のサブボリュームに対しては、スナップショットを採取することができます。スナップショットはシステムイベントをベースにした自動採取のほか、必要に応じて手作業で採取することもできます。ファイルシステムに変更を加える例としては、 zyppersnapper コマンドを呼び出して、変更の前後にスナップショットを採取する機能があります。このスナップショットは、 zypper が変更した内容では何か問題があって、元の状態に戻したいような場合に便利な仕組みです。 zypper から呼び出される snapper では、既定では ルート ファイルシステムのスナップショットを採取しますが、特定のディレクトリをスナップショットから除外することもできます。このような仕組みを実現するため、 YaST では下記のサブボリュームを作成します:

/boot/grub2/i386-pc , /boot/grub2/x86_64-efi , /boot/grub2/powerpc-ieee1275 , /boot/grub2/s390x-emu

ブートローダ設定の巻き戻しには対応していません。また、上記のディレクトリはいずれもアーキテクチャ固有のものであり、前半の 2 つは AMD64/Intel 64 マシンで使用されるディレクトリ、後半の 2 つは IBM POWER や IBM Z で使用されるディレクトリです。

/home

/home が個別のディレクトリ内に存在していない場合、ロールバックによってデータが失われてしまうことを防ぐため、除外を設定しています。

/opt

サードパーティ製の製品は /opt 以下にインストールされるのが一般的です。そのため、ロールバックによってこれらのアプリケーションが削除されてしまうことのないよう、除外を設定しています。

/srv

Web サーバや FTP サーバのデータを含むディレクトリです。ロールバックによってそれらのデータが失われてしまうことの無いよう、除外を設定しています。

/tmp

いずれも一時的な (テンポラリ) ファイルとキャッシュが保存されるディレクトリであるため、除外を設定しています。

/usr/local

このディレクトリは手作業でソフトウエアをインストールした場合に使用するディレクトリです。ロールバックによって、これらのソフトウエアが消えてしまったりしないようにするため、除外を設定しています。

/var

ログファイルや一時的なキャッシュが含まれるほか、サードパーティ製の製品が /var/opt 以下にインストールされることがあります。また、仮想マシンのイメージやデータベースを配置する既定のディレクトリでもあります。そのため、これらのデータをスナップショットから除外するためにサブボリュームを作成し、かつコピーオンライト機能を無効化しています。

ヒント
ヒント: btrfs のパーティションサイズについて

スナップショットの保存には追加のディスク容量が必要となります。そのため、 btrfs を作成する際は、十分な容量を設定することをお勧めします。スナップショット機能を有効化して既定の形態でサブボリュームを作成する場合、ルートファイルシステムに対する btrfs の最小サイズは 16 GB ですが、 SUSE では 32 GB 以上を推奨しています。 /home を別途のパーティション内に配置しない場合は、それよりもさらに大きな容量を設定してください。

5.1.2.3 YaST を利用した btrfs のサブボリューム管理 Edit source

btrfs パーティションのサブボリュームは、 YaST 熟練者向けパーティション設定 で管理できるようになりました。ここではサブボリュームの追加や削除を行うことができます。

手順 5.1: YaST を利用した btrfs サブボリュームの管理
  1. 左側のペイン内で btrfs を選択します。

  2. 管理したいサブボリュームのある btrfs パーティションを選びます。

  3. サブボリュームに対して実施したい内容 (編集/追加/削除) によって、それぞれ下記を実施します:

    1. サブボリュームを編集するには、対象のサブボリュームを選んで 編集 を押します。ここではボリュームに対する copy-on-write 機能の有効化/無効化 (noCoW のチェックボックス) のほか、サイズ制限などを設定することができます。設定が完了したら 了解 を押してください。

    2. 新しいサブボリュームを追加するには、 サブボリュームの追加 を押してパスを入力します。必要であれば、ボリュームに対する copy-on-write 機能の有効化/無効化 (noCoW のチェックボックス) のほか、サイズ制限などを設定することができます。設定が完了したら 了解 を押してください。

    3. サブボリュームを削除するには、対象のサブボリュームを選んで 削除 を押します。確認メッセージが表示されたら、 はい を押してください。

    4. YaST パーティション設定における btrfs サブボリューム
      図 5.2: YaST パーティション設定における btrfs サブボリューム
  4. これで手順は完了です。

5.1.3 パーティションの編集 Edit source

新しいパーティションを作成したり、既存のパーティションを編集したりする場合、様々なパラメータを設定することができます。新しいパーティションの場合、ほとんどは YaST が設定する既定のパラメータで十分であり、それ以上の変更は必要ありません。パーティションの設定を手作業で編集するには、下記の手順で行います:

  1. パーティションを選択します。

  2. 編集 を押してパーティションの編集を開始し、必要なパラメータを設定します:

    ファイルシステム ID

    この時点ではパーティションをフォーマットしたくない場合、パーティションが正しく登録されるよう、ファイルシステムの ID を設定しておくことをお勧めします。一般的には Linux , Linux swap , Linux LVM , and Linux RAID のいずれかを指定します。

    ファイルシステム

    パーティションに対するファイルシステムを変更するには、 デバイスをフォーマットする を選択して、 ファイルシステム 内の一覧からファイルシステムを選択します。

    openSUSE Leap ではいくつかの種類のファイルシステムに対応しています。 btrfs は他のファイルシステムに比べて高度な機能を持つことから、ルートパーティションに対してお勧めです。コピーオンライトの機能を持つほか、スナップショットやマルチデバイスへの分散、サブボリュームなど、さまざまな便利な技術が提供されています。また、 XFS, ext3, ext4 はいずれもジャーナル機能のあるファイルシステムです。これらのファイルシステムは、書き込み時に操作の履歴 (ジャーナル) を持つことから、システムがクラッシュしても素早く回復できる特長を持ちます。 ext2 はジャーナル機能のないファイルシステムですが、管理領域を小さくすることができるため、小さいパーティションにお勧めです。

    ルートパーティションに対する既定のファイルシステムは btrfs です。また、その他のパーティションに対する規定のファイルシステムは xfs です。

    UDF ファイルシステムは書き込み可能な光学メディアや読み込み専用の光学メディアのほか、 USB メモリ やハードディスクでも使用することができます。また、複数のオペレーティングシステムに対応しています。

    swap (スワップ) は仮想メモリとして使用することのできる特殊なファイルシステムです。スワップパーティションは、少なくとも 256 MB 以上で作成しておくことをお勧めします。ただし、スワップ領域が不足した場合は、スワップ領域の追加ではなくメモリの追加をお勧めします。

    警告
    警告: ファイルシステムの変更時の注意

    ファイルシステムを変更してパーティションを再フォーマットすると、そのパーティション内にあるデータは全て削除され、復元できなくなります。

    様々なファイルシステムについての詳細は、 ストレージ管理ガイド をお読みください。

    暗号化デバイス

    暗号化を有効化すると、ハードディスクに書き込まれる全てのデータが暗号化されるようになります。これにより機密データの安全性が高まりますが、暗号化の処理にはそれなりの時間を要するため、システムの速度は落ちることになります。 ファイルシステムの暗号化について、詳しくは 5.2項 「デバイスの暗号化」 および 第12章 「パーティションやファイルの暗号化 をお読みください。

    マウントポイント

    このパーティションを、ファイルシステムのツリー内のどの位置に配置するのかを指定します。 YaST の提案する値の中から選択するか、もしくは任意のパスを指定してください。

    fstab オプション

    グローバルなファイルシステム管理ファイル ( /etc/fstab ) 内には、様々なパラメータが含まれています。ほとんどの場合において、既定値のまま使用すれば十分です。ただし、ファイルシステムの識別をデバイス名ではなくボリュームラベルで行うなど、いくつかの設定を変更することができます。なお、ボリュームラベルには / とスペースを除く、任意の文字を指定することができます。

    永続性のあるデバイス名を使用するには、 デバイス ID , UUID , LABEL のいずれかを選択してください。 openSUSE Leap では、永続性のあるデバイス名を既定で使用します。

    パーティションをラベルでマウントしたい場合は、 ボリュームラベル のテキスト項目に名前を入力してください。たとえば /home 向けのパーティションであれば、 HOME のようなボリュームラベルを指定します。

    ファイルシステム内でクォータ (容量制限) を行いたい場合は、 クォータサポートを有効にする を選択してください。この設定は、 YaST の ユーザ管理 モジュールでユーザ向けのクォータを設定する際、事前に設定しておかなければならない項目です。 クォータの設定方法について、詳しくは 5.3.3項 「クォータの管理」 をお読みください。

  3. 完了 を押すと設定を保存することができます。

注記
注記: ファイルシステムのサイズ変更

既存のファイルシステムのサイズを変更するには、対象のパーティションを選択して サイズ変更 を押します。ただし、パーティションのサイズ変更はマウントされている状態では行うことができません。サイズ変更を行うには、パーティション設定を実行する前にマウント解除を行ってください。

5.1.4 熟練者向けオプション Edit source

システムビュー ペイン内でハードディスク (例: sda) を選択すると、 熟練者向けパーティション設定 ウインドウの右下に 熟練者向け機能 が表示されます。このボタンには、下記のコマンドが含まれています:

新しいパーティションテーブルの作成

このオプションを選択することで、選択したデバイスに新しいパーティションテーブルを作成することができます。

警告
警告: 新しいパーティションテーブルの作成

新しいパーティションテーブルを作成すると、そのデバイス内にある全てのデータと全てのパーティションが削除され、復元できなくなります。

このディスクを複製する

このオプションを選択すると、デバイスのパーティションレイアウトを他のディスクデバイスに複製することができます (ただしデータは複製されません) 。

5.1.5 高度なオプション Edit source

システムビュー ペイン内でコンピュータ名の書かれた箇所を選択すると、 熟練者向けパーティション設定 ウインドウ内の右下に 設定 というボタンが表示されます。このメニューには、下記のコマンドが含まれています:

iSCSI の設定

SCSI over IP のブロックデバイスにアクセスするには、まず iSCSI の設定を行う必要があります。これを実行することにより、パーティションの一覧内に新しいデバイスを表示することができるようになります。

マルチパスの設定

このオプションを選択することで、対応するマスストレージデバイスに対してマルチパス機能拡張を設定することができるようになります。

5.1.6 パーティション設定のヒント Edit source

下記の章には、お使いのシステムを設定する際に正しい判断を下すための、パーティション関連のヒントが記載されています。

5.1.6.1 シリンダ番号 Edit source

パーティションツールによっては、シリンダ数が 0 からはじまるものと 1 からはじまるものがあります。シリンダ数を計算する場合は、始めと終わりのシリンダ番号を確認し、 +1 するようにしてください。

5.1.6.2 スワップ の使用について Edit source

スワップは利用可能な物理メモリを拡張するための仕組みです。これにより、物理メモリよりも多くのメモリを使用することができるようになります。カーネルのバージョン 2.4.10 以前では、安全対策としてスワップを用意しておくのが通常で、一般的には物理メモリサイズの 2 倍程度を確保しておくものでした。ただし、現在はそのような制限はありません。

Linux では Least Recently Used (LRU) という仕組みを利用して、メモリからディスクに移動すべきページを判断します。そのため、実行中のアプリケーションに対してはより多くのメモリが割り当てられることになり、キャッシュもより効率的に動作するようになっています。

もしもアプリケーションが利用可能なメモリを目一杯使用しようとした場合、スワップまわりの問題が発生することがあります。この場合、設定に応じて下記のような動作になります:

スワップを設定していないシステムの場合

アプリケーションは最大のメモリを確保します。全てのキャッシュメモリは解放されることになるため、他のアプリケーションの動作は遅くなります。しばらくすると、カーネルの Out-of-Memory Kill (メモリ枯渇解決) 機構が動作して、プロセスを強制終了 (kill) し始めます。

中程度のサイズ (128 MB から 512 MB 程度) のスワップがあるシステムの場合

初めのうちはシステムはスワップが無い場合と同様に遅くなります。物理メモリが全て割り当てられると、スワップ領域を使い始めます。この時点では、システムの動作は非常に遅くなり、リモートからコマンドを受け付けることもできないような状態になります。あとはスワップ領域を受け持っているハードディスクの速度によりますが、システムは Out-of-Memory Kill (メモリ枯渇解決) 機構が問題を解決するまで、 10 から 15 分程度そのままの状態になります。なお、 ディスクへのサスペンド (休止状態) を使用するコンピュータの場合は、ある程度のスワップ領域が必要です。この場合は、物理メモリのデータをスワップ領域に待避するための、十分なサイズが必要です (512 MB から 1GB 程度必要になります) 。

大きなサイズ (1 GB 以上) のスワップがあるシステムの場合

制御ができず、スワップ領域を過剰に使用するようなアプリケーションは、使用しないのが最適です。ただし、そのようなアプリケーションを使用した場合、システムは回復するのに数時間程度を要してしまいます。プロセス内では、他のプロセスがタイムアウトや失敗になることも多く、それらのプロセスを終わらせたとしても、システムは不安定な状態になります。この場合は、物理的なリセットボタンでリセットを行い、回復を行うのが一般的です。大容量のスワップ領域は、この機能に依存するような特殊なアプリケーションを使用する場合に限って設定すべきものです。このようなアプリケーション (データベースやグラフィック編集プログラムなど) の場合は、独自のディスク待避機構を持つ場合がありますので、スワップ領域の拡大ではなく、それらの仕組みを使用するようにするのがお勧めです。

お使いのシステムが制御不可能になっていない場合で、スワップ領域を追加する必要がある場合は、スワップ領域をその場で追加することができます。スワップ領域用のパーティションを既に確保してある場合は、 YaST で追加することができます。確保していない場合は、スワップ領域をファイルとして作成することもできます。スワップファイルは一般的にパーティションよりも遅いものですが、物理メモリに比べればどちらも同様に遅いので、ファイルであることを気にする必要はありません。

手順 5.2: スワップファイルの手動追加

動作中のシステムでスワップファイルを追加するには、下記の手順で行います:

  1. まずはお使いのシステム内に空のファイルを作成します。たとえば /var/lib/swap/swapfile 内に 128 MB のスワップファイルを作成するには、下記のコマンドを実行します:

    > sudo mkdir -p /var/lib/swap
    > sudo dd if=/dev/zero of=/var/lib/swap/swapfile bs=1M count=128
  2. 作成したスワップファイルをフォーマットします:

    > sudo mkswap /var/lib/swap/swapfile
    注記
    注記: mkswap でフォーマットした場合のスワップパーティションの UUID 更新について

    mkswap でのフォーマットは、できる限り避けておくことをお勧めします。 それは、 mkswap でフォーマットし直してしまうと、スワップパーティションの UUID が変更されてしまうためです。その代わりに、 YaST を利用してフォーマットし直す (YaST では、 UUID が変更されても /etc/fstab を自動的に 更新します) か、 mkswap コマンド実行後に手作業で /etc/fstab を更新してください。

  3. あとは下記のコマンドでスワップを追加します:

    > sudo swapon /var/lib/swap/swapfile

    スワップを無効化するには、下記のコマンドを実行します:

    > sudo swapoff /var/lib/swap/swapfile
  4. 利用可能なスワップ領域を確認するには、下記のコマンドを実行します:

    > cat /proc/swaps

    ただし、上記の手順は一時的にスワップ領域を設定するための仕組みです。システムを再起動してしまうと、追加したスワップ領域は使われなくなります。

  5. 作成したスワップファイルを恒久的に使用するには、下記のような行を /etc/fstab に追加します:

    /var/lib/swap/swapfile swap swap defaults 0 0

5.1.7 パーティション設定と LVM Edit source

熟練者向けパーティション設定 内には LVM の設定にアクセスできる機能が用意されています。 LVM の設定にアクセスするには、 システムビュー 内の ボリューム管理 を選択してください。ただし、お使いのシステム内に既に動作している LVM 設定が存在した場合、最初の LVM 設定に入る段階で自動的に LVM が有効化されます。この場合は、有効化されたボリュームグループに属するパーティションのディスクは、編集することができなくなります。 Linux カーネルでは、ディスク内のいずれかのパーティションが使用中の場合、ディスクのパーティションテーブルを再読み込みできないことによるものです。つまり、お使いのシステム内に LVM 設定がある場合は、物理的なパーティション設定は行うことができないことになります。その代わり、論理ボリュームの設定を変更してください。

物理ボリュームを作成すると、その冒頭でボリュームに関する情報をパーティションに書き込みます。 LVM 以外の用途でパーティションを再利用する場合は、このボリュームに書き込まれた情報を削除することをお勧めします。たとえば論理ボリューム system の物理ボリューム /dev/sda2 がある場合、下記のようなコマンドを実行します:

dd if=/dev/zero of=/dev/sda2 bs=512 count=1
警告
警告: 起動時に利用できるファイルシステムについて

起動用に使用するファイルシステム (ルートファイルシステム、もしくは /boot のファイルシステム) は、 LVM の論理ボリューム内に配置してはなりません。通常の (LVM ではない) 物理パーティション内に配置してください。

5.2 デバイスの暗号化 Edit source

Linux Unified Key Setup (LUKS) は Linux におけるディスク暗号化の標準仕様です。ディスク内の形式も標準化されているため、ユーザからはデータを円滑に転送および移行することができるようになっています。

LUKS はブロックデバイスの暗号化を行う仕組みです。暗号化されたデバイス内には任意のデータを書き込むことができますので、ファイルシステムに対する制限がありません。もちろんスワップパーティションを暗号化することもできます。また、暗号鍵や暗号化の種類、鍵のサイズなど、全ての設定情報がパーティションのヘッダ内に書き込まれます。

暗号化は複数階層のアプローチで実施されます。まずブロックデバイスをマスターキーで暗号化し、このマスターキーをそれぞれの有効なユーザキーで暗号化します。ユーザキーはパスフレーズのほか、 FIDO2 セキュリティキーや TPM 、スマートカードなどから生成します。このような複数階層型の仕組みにより、ディスクの暗号化をやり直すことなくパスフレーズを変更できるようになっています。

LUKS に関する詳細については、 第13章 「cryptctl を利用したアプリケーション向けのストレージ暗号化 をお読みください。

5.2.1 暗号化方式 Edit source

デバイスを暗号化するには、 5.1.3項 「パーティションの編集」 の手順に従って作業を行ってください。

ヒント
ヒント: YaST での LUKS2 サポートの有効化について

LUKS2 による暗号化は SUSE Linux Enterprise 15 SP4 およびそれ以降のバージョンでサポートしていますが、明示的に有効化する必要があります。下記のいずれかを実施してください:

  1. システムの起動時に設定する場合は、カーネルのコマンドラインに対して YAST_LUKS2_AVAILABLE を追加します。起動時のパラメータについて、詳しくは 第2章 「起動パラメータ をお読みください。

  2. YaST によるインストール時に設定する場合は、下記のいずれかを実施します:

    • グラフィカルなインターフェイスを使用している場合は、 CtrlAltShiftC を押します。

    • テキストインターフェイスを使用している場合は、 CtrlD を押してから ShiftC を押します。

    あとは 実験中の LUKS2 暗号化サポートの有効化 にチェックを入れ、 OK を押して設定画面を閉じます。

LUKS2 サポートを有効化しない場合、 暗号化方式 の選択は表示されません。暗号化パスワードの入力のみが必要となります。

通常の LUKS1

この方式を選択すると、 LUKS1 方式でデバイスを暗号化します。この場合、暗号化パスワードの入力が必要となります。また、後から cryptsetup luksAddKey を実行することで、追加のパスワードを最大 8 つまで追加することができます。

通常の LUKS2

LUKS2 は新しいヘッダ形式のバージョンで、より壊れにくい形式になっているほか、最大で 32 個までのユーザキーおよびデバイスラベルを設定することができます。また暗号化パスワードのほか、パスワードベースの鍵導出関数 (PBKDF) を設定して、パスフレーズを保護することができるようになっています (詳しくは 5.2.2項 「パスワードベースの鍵導出関数」 をお読みください) 。

Pervasive (全方位型) LUKS2 (IBM Z のみ)

この方式を選択すると、 CCA モードで設定した Crypto Express 暗号化コプロセッサによって処理されたセキュアマスターキーで、 LUKS2 によるデバイス暗号化を実施します。なお、暗号化システム内に本ボリュームに関連づけられたセキュアキーが既に存在する場合は、その鍵を使用するようになります。存在しない場合は新しいセキュアキーが生成され、システムに登録されます。なお、マスターキーを保護するための暗号化パスワードを設定する必要があります。これに加えて、システム内に複数の APQN が存在する場合は、どれを使用するのかを選択することもできます。

Pervasive encryption (全方位型暗号化) に関する詳細は、 https://www.ibm.com/docs/ja/linux-on-systems?topic=security-pervasive-encryption をお読みください。

揮発性の乱数鍵による暗号化 (スワップデバイスのみ)

この方式を選択すると、システムの起動時に乱数から生成された鍵を利用して、スワップデバイスを暗号化するようになります。この方式を選択した場合、ハードディスクへのハイバネーションはできなくなります。スワップデバイスはシステムの起動のたびに暗号化をやり直すため、それ以前の内容には全くアクセスできなくなります。また、データ損失を避けるため、お使いのシステムでハイバネーションを無効化し、代わりにシャットダウンするように設定してください。

なお、スワップデバイスの再暗号化の際、暗号鍵のほかにもデバイスラベルと UUID が変化することにも注意してください。いずれも乱数による暗号化を実施したスワップデバイスではサポートされないオプションです。そのため、 /etc/crypttab 内では、スワップデバイスの参照に際して、起動のたびに変化しない名前を指定するようにしてください。また、パーティションのデバイス名を指定してしまうと、システムの起動時に名前が入れ替わることがありますので、 udev デバイス ID やパスを使用するようにしてください。もしもデバイス名が入れ替わってしまうと、予期しないデバイスを暗号化して使用することになってしまいます!

YaST では常にデバイス名を使用するように設定した場合 (詳しくはパーティション設定内の 設定 画面をご覧ください) を除き、 /etc/crypttab 内では変化しない名前を選択して設定します。ですが、デバイスの接続方式によっては、どの方式でも名前が変化してしまう場合があります。そのため、揮発性の乱数鍵を利用した暗号化を使用する場合は、よく注意して設定してください。

揮発性の保護鍵による暗号化 (スワップデバイスのみ)

この方式を選択すると、暗号化コプロセッサを使用せずに保護用の一時 AES 鍵を生成し、スワップデバイスを暗号化します。これは 揮発性の乱数鍵による暗号化 の改良版ですが、この方式に関する注意事項が引き続き適用されることに留意してください。

揮発性の保安鍵による暗号化 (スワップデバイスのみ)

この方式を選択すると、暗号化コプロセッサを利用して保安用の一時 AES 鍵を生成し、スワップデバイスを暗号化します。これは 揮発性の乱数鍵による暗号化 の改良版ですが、この方式に関する注意事項が引き続き適用されることに留意してください。

5.2.2 パスワードベースの鍵導出関数 Edit source

パスワードベースの鍵導出関数 (PBKDF) はハードウエアの性能のほか、その他のシステムコンポーネントとの互換性要求レベルに従って選択すべき項目です。

PBKDF2

PBKDF2 は LUKS1 が使用する関数です。こちらは RFC 2898 で規定されています。

Argon2i

Argon2 はより安全性を高めるように設計された関数で、計算にあたっては多くのメモリを必要とします。こちらは RFC 9106 で規定されています。 Argon2i は Argon2 の派生形で、パスワードには依存しない形式でメモリ配列に対するサイドチャネル攻撃への耐性を高めた形式となります。

Argon2id

Argon2id は Argon2 のハイブリッド版です。最初の半分のバスではメモリに対する攻撃について Argon2i の形式を採用しながら、残りのパスでは Argon2d (YaST ではサポートしていません) を利用して、 GPU クラッキング攻撃を防ぐように設計されています。 RFC 9106 では両者の違いがわからないような場合や、サイドチャネル攻撃が現実的に発生しうるような場合に、 Argon2id を使用するように推奨しています。

なお、 Argon2 のほうがより安全ではありますが、 PBKDF2 を使用すべき場合もあります:

  • Argon2 はセキュリティ機能の一部として、計算に多くのメモリを使用するように意図して設計されています。システムによってはこれが問題となる場合もあります。パスワードによる保護が十分な強度であれば PBKDF2 のほうがより安全で、メモリ消費量も少なくて済みます。

  • また grub2 では、 LUKS2 で暗号化されたデバイスからの起動に対するサポートが制限されていて、 PBKDF2 のみを使用することができます。これは /boot ディレクトリを含むファイルシステムに対して、 Argon2 を選択できないことを意味しています。なお、 PBKDF2 を使用した場合でも、 LUKS2 で暗号化したデバイスから起動を行う場合は、いくつかの grub2 設定を手作業で実施する必要があります。

LUKS によるデバイス暗号化に対する詳細情報については、インストーラ内の ヘルプ ボタンを押すか、または 第13章 「cryptctl を利用したアプリケーション向けのストレージ暗号化 をお読みください。

5.3 LVM 設定 Edit source

この章では、 LVM (Logical Volume Manager; 論理ボリュームマネージャ) を設定するための固有の手順について説明しています。

警告
警告: データの事前バックアップについて

LVM を使用することで、場合によってはデータ損失を引き起こす可能性があります。データの損失は、アプリケーションのクラッシュや電源の問題、誤ったコマンドの入力によって発生する可能性もあります。そのため、 LVM を設定したりボリュームを再設定したりする場合は、事前に必ずバックアップを採取して置いてください。バックアップ無しでの作業は危険です。

YaST の LVM 設定は、 YaST の熟練者向けパーティション設定 (詳しくは 5.1項 「熟練者向けパーティション設定 の使用」 をお読みください) の システムビュー ペイン内にある ボリューム管理 の項目からアクセスすることができます。 熟練者向けパーティション設定 ではハードディスクやパーティションの管理のほか、 RAID や LVM の設定を行うことができます。

5.3.1 物理ボリューム (PV) の作成 Edit source

LVM を使用するにあたって最初の作業は、ボリュームグループに対して領域を提供する物理ボリュームの作成です:

  1. ハードディスク からハードディスクを選択します。

  2. パーティション タブに切り替えます。

  3. 追加 を押して、このディスクにおける PV のサイズを入力します。

  4. デバイスをフォーマットしない を選択したあと、 パーティション ID0x8E Linux LVM を選択します。 マウントのオプション では デバイスをマウントしない を選択します。

  5. 上記までの手順を繰り返して、必要な PV を作成していきます。

5.3.2 ボリュームグループ (VG) の作成 Edit source

お使いのシステム内にボリュームグループが存在していない場合は、まずそれを追加しなければなりません (詳しくは 図5.3「ボリュームグループ (VG) の作成」 をお読みください) 。また、 システムビュー ペイン内の ボリューム管理 を選択し、 追加 内にある ボリュームグループ を選択することで、追加のボリュームグループを作成することもできます。通常はボリュームグループが 1 つだけ存在すれば十分です。

  1. VG に対する名前を指定します。たとえば system のように指定します。

  2. 物理エクステントサイズ を選択します。この値は、ボリュームグループ内での物理的なブロックのサイズを設定するものです。ボリュームグループ内にある全てのディスク領域は、このサイズのブロック単位で処理が行われます。

  3. デバイスを選択して Add を押し、 VG 内に PV を追加していきます。デバイスを選択する際、 Ctrl を押しながら選択すると、複数のデバイスを選択することができます。

  4. 完了 を押すと VG が作成され、後続の手順を実施できるようになります。

ボリュームグループ (VG) の作成
図 5.3: ボリュームグループ (VG) の作成

既にボリュームグループを作成済みで、物理ボリュームを追加もしくは削除したい場合は、まず ボリューム管理 内で対象のボリュームグループを選択して、 サイズ変更 を選択します。あとは表示されているウインドウ内で、必要な物理ボリュームの追加や削除を行ってください。

5.3.3 論理ボリューム (LV) の設定 Edit source

ボリュームグループに物理ボリュームを追加したら、あとはオペレーティングシステムが使用する論理ボリュームの作成を行います。まずは対象のボリュームグループを選択して、 論理ボリューム タブに移動します。その後、 追加 , 編集 , サイズ変更 , 削除 のボタンを利用して、ボリュームグループを使用していきます。ただし、 1 つのボリュームグループに対して、 1 つ以上の論理ボリュームを割り当てる必要があります。

論理ボリューム (LV) の管理
図 5.4: 論理ボリューム (LV) の管理

追加 を押してウイザードを開きます。それぞれ下記のように設定します:

  1. まずは LV の名前を入力します。たとえば /home にマウントする論理ボリュームであれば、 HOME のような名前を指定します。

  2. 次に LV の種類を指定します。 通常ボリューム , Thin プール , Thin ボリューム のいずれかを選択することができます。なお、 Thin ボリュームを作成する場合は、あらかじめ Thin プールを先に作成しておく必要があることに注意してください。 Thin プロビジョニングを使用する最大の利点は、 Thin プール内に保存する全ての Thin ボリュームの合計サイズは、プールそれ自身のサイズを超えて設定できる、という点です。

  3. 論理ボリュームに対して設定するサイズと、ストライプ数を指定します。なお、物理ボリュームが 1 つしか無いボリュームグループの場合、複数のストライプを指定しても意味がありません。

  4. LV 内で使用するファイルシステムと、マウントポイントを選択します。

ストライプを使用することで、データストリームを複数の物理ボリューム内に分散させて配置する (ストライピング) ことができます。ただし、ボリュームのストライピングは異なる物理ボリューム間でのみ行われるものであり、これによって分散を実現していることに注意してください。また、ストライプ数の最大値は物理ボリュームの個数で、"1" は "ストライピングしない" ことを意味します。さらに、ストライピングは異なるハードディスクにある複数の物理ボリュームでのみ効果を発揮するもので、同じハードディスク内で設定してしまうと、むしろ性能が下がってしまいます。

警告
警告: ストライピング

この時点の YaST はストライピングに関するパラメータの正しさをチェックすることができません。ここでの設定が誤っていても、 LVM がディスク内で設定されるまで、エラーにはなりません。

お使いのシステムに既に LVM を設定してある場合は、既存の論理ボリュームを利用して設定することもできます。ただし、続行する前に LV に対して適切なマウントポイントを設定してください。 完了 を押すと、 YaST の 熟練者向けパーティション設定 に戻り、残りの作業を実施できるようになります。

5.4 ソフトウエア RAID Edit source

この章では、様々な種類の RAID を作成したり設定したりするために必要な手順を説明しています。

5.4.1 ソフトウエア RAID の設定 Edit source

YaST の RAID 設定は、 YaST の 熟練者向けパーティション設定 (詳しくは 5.1項 「熟練者向けパーティション設定 の使用」 をお読みください) の システムビュー ペイン内にある RAID の項目からアクセスすることができます。このパーティション設定では、ソフトウエア RAID で使用するためのパーティションの新規作成や編集、削除などを行うこともできます。

  1. まずは ハードディスク でハードディスクを選択します。

  2. パーティション タブに切り替えます。

  3. 追加 を押して、このディスクにおける RAID パーティションのサイズを入力します。

  4. デバイスをフォーマットしない を選択したあと、 パーティション ID0xFD Linux RAID を選択します。 マウントのオプション では デバイスをマウントしない を選択します。

  5. 上記までの手順を繰り返して、必要な物理ボリュームを作成していきます。

RAID 0 と RAID 1 の場合、少なくとも 2 つ以上のパーティションが必要です。 RAID 1 では通常、ちょうど 2 つのパーティションを使用し、それ以上は使用しません。また、 RAID 5 の場合は少なくとも 3 つ以上のパーティションが、 RAID 6 と RAID 10の場合は、少なくとも 4 つ以上のパーティションが必要です。ただし、いずれの場合も同じサイズのパーティションを使用することをお勧めします。 RAID パーティションは様々な目的から、異なるハードディスク内にあるパーティションを使用します。 RAID 1 , RAID 5 , RAID 6 の場合はディスク障害時のデータ損失を防ぐため、RAID 0 の場合は性能を最大限に引き出すため、このようにしています。 RAID を設定するパーティションを作成したら、 RAID › RAID の追加 を押して RAID 設定を開始します。

次のダイアログでは、 RAID のレベル (0, 1, 5, 6, 10) を選択したあと、 RAID システムに組み入れるべきパーティションを選択していきます。この場合、 Linux RAIDLinux native になっているパーティションのみを選択することができます。スワップパーティションや DOS パーティションは表示されません。

RAID パーティション
図 5.5: RAID パーティション

上記の手順でパーティションを作成したら、あとは RAID ボリュームに追加していきます。パーティションを選択して 追加 を押してください。選択したパーティションが RAID 用に予約されるようになります。選択しなかったパーティションについては、何も行われません。全てのパーティションを割り当てたら、 次へ を押して RAID オプション を選択します。

最後の手順では、 RAID ボリュームで使用するファイルシステムと暗号化、およびマウントポイントを設定します。 完了 を押して設定を完了すると、 /dev/md0 等が 熟練者向けパーティション設定 に表示されるようになります。

5.4.2 トラブルシューティング Edit source

まずは /proc/mdstat ファイルを確認して、 RAID パーティションが壊れていないかどうかを調べてください。ハードディスクが壊れてしまったような場合は、 Linux システムをシャットダウンしてディスクを交換し、新しいディスクを同じ手順でパーティション設定して追加してください。あとは mdadm /dev/mdX --add /dev/sdX のように実行すると、 RAID に組み入れることができるようになります。なお、 'X' にはデバイスの識別子が入ります。これにより、ハードディスクが自動的に RAID システムに組み入れられ、再構築が開始されます。

なお、再構築中であってもデータにアクセスすることはできますが、再構築が完了するまでは RAID の性能が落ちることに注意してください。

5.4.3 さらなる情報 Edit source

ソフトウエア RAID の設定手順や詳細な情報が、それぞれ下記に用意されています:

Linux RAID メーリングリストもご利用いただけます。詳しくは https://marc.info/?l=linux-raid (英語) をお読みください。

このページを印刷