Show Table of Contents
2.3. ファイルシステムレイアウト
Red Hat Enterprise Linux 7 では、ファイルシステムのレイアウトに、大きな変更が 2 つ加えられています。
- ディレクトリー
/bin、/sbin、/lib、および/lib64は、/usr下に移動しています。 /tmpディレクトリーは、一時ファイルストレージシステム (tmpfs) として使うことができるようになりました。/runディレクトリーは、一時ファイルストレージシステム (tmpfs) として使用されるようになりました。アプリケーションは、/var/runを使用するのと同じように、/runを使用できるようになりました。
2.3.1. root ファイルシステムの新レイアウト
従来は、最低限必要なコンテンツのみを
/bin および /lib ディレクトリー配下に置くことで、ブートプロセスが遅くなることを回避してきましたが、ユーティリティーのなかには、/usr パーティションをマウントするために、root (/) レベルに置かれる必要があるものもありました。これにより、他のユーティリティーが、複数レベルのディレクトリーにコンテンツを広げてしまうという状況になりました。たとえば、/bin と /usr/bin の両方にといったようにです。
Red Hat Enterprise Linux 7 では、
/bin、/sbin、/lib、および /lib64 のディレクトリーが、/usr に移動しています。/usr ファイルシステムは、ユーティリティーではなく initramfs により root レベルのディレクトリーにマウントできるので、パッケージコンテンツを 2 つの異なるディレクトリーレベルに分ける必要はなくなりました。このため規模が非常に小さい root ファイルシステムが可能となり、システムがディスク領域の共有をより効率的に行い、メンテナンスが容易になると同時に柔軟性と安全性が高まりました。
この変更の影響を受けないように、以前の
/bin ディレクトリーは /usr/bin へのシンボリックリンクに、そして /sbin は /usr/sbin へのシンボリックリンクに変更になりました。
2.3.1.1. ファイルシステムのアップグレード準備
警告
/usr が別のパーティションにある場合はインプレースアップグレードができません。別のパーティションからの /usr の移動は、お客様の責任のもとで行ってください。
/var が別のパーティションにある場合は、手動で /var/run と /var/lock をシンボリックリンクに変換する必要があります。
# mv -f /var/run /var/run.runmove~ # ln -sfn /run /var/run # mv -f /var/lock /var/lock.lockmove~ # ln -sfn /run/lock /var/lock
重要
パーティション設定スキームに関する preupgrade-assistant の結果にすべて対応してください。
準備が完了したら、『Red Hat Enterprise Linux 7 インストールガイド』で、アップグレードプロセスを実行する際の追加詳細を確認してください。
2.3.1.2. アップグレード成功の確認
アップグレードプロセスの実行後に、アップグレードが予想通りに機能したかを確認することが重要になります。
- 以下のシンボリックリンクが存在するかを確認します。
/binは/usr/binへのシンボリックリンクです。/sbinは/usr/sbinへのシンボリックリンクです。/libは/usr/libへのシンボリックリンクです。/lib64は/usr/lib64へのシンボリックリンクです。/var/runは/runへのシンボリックリンクです。/var/lockは/run/lockへのシンボリックリンクです。
上記のディレクトリーが想定どおりにシンボリックリンクである場合、さらに 2 つのチェックが必要になります。 - 以下の find コマンドの出力をチェックします。
# find /usr/{lib,lib64,bin,sbin} -name '.usrmove'このコマンドにより表示されるファイルもしくはディレクトリーは、同じ名前のものがすでに/usrにあるため、/usrにコピーすることはできません。この命名に関する競合は、手動で解決する必要があります。 - 保管しておきたいファイルについて、以下のディレクトリーをチェックします。
/var/run.runmove~/var/lock.lockmove~
上記のディレクトリーがいずれもシンボリックリンクではない場合は、「失敗したアップグレードからのリカバリー」 に示されるリカバリープロセスを実行する必要があります。
2.3.1.3. 失敗したアップグレードからのリカバリー
アップグレードプロセスが失敗する理由はいくつもあります。以下のコマンドの出力をチェックして、失敗した原因を確認してください。
# dmesg # journalctl -ab --full
エラーが見つからない場合は、以下をチェックします。
/が書き込み可能か/usrが書き込み可能か/usrが正常にマウントされているか/に十分なスペースがあるか/usrに十分なスペースがあるか/varが rhelup ツールにマウントされているか
さらにヘルプが必要な場合は、Red Hat サポートにご連絡ください。
2.3.2. /tmp ディレクトリーへの移動
Red Hat Enterprise Linux 7 では、
/tmp を一時ファイルストレージシステム (tmpfs) 用のマウントポイントとして使うことができます。
これを有効にすると、この一時的なストレージはマウントされたファイルシステムのように表示されますが、コンテンツの保管先は永続的なストレージデバイスではなく、揮発性メモリーになります。メモリーが不足している場合を除いて、
/tmp 内のファイルがハードドライブに保管されることはありません。メモリーが不足している場合は、swap 領域が使用されます。つまり、/tmp のコンテンツは再起動すると持続しないことになります。
この機能を有効にするには、以下のコマンドを実行します。
# systemctl enable tmp.mount
この機能を無効にするには、以下のコマンドを実行します。
# systemctl disable tmp.mount
Red Hat では、Red Hat Enterprise Linux 7 で使用される様々なタイプの一時ストレージスペースに、以下のものを利用することを推奨しています。
- デーモンなどの権限付きプロセスでは、
/run/processnameを使って一時データを保存。 - 大量のデータを保存するプロセス、もしくは再起動後も存続する一時データを必要とするプロセスには、
/var/tmpを使用。 - その他のプロセスには、
/tmpを使用して一時データを保存。
2.3.3. /run ディレクトリーへの移動
重要
Preupgrade Assistant は、初期リリースの Red Hat Enterprise Linux 7.0 でのこの変更の効果をチェックしませんでした。この問題は RHBA-2014:1627 で修正されました (https://rhn.redhat.com/errata/RHBA-2014-1627.html)。
Red Hat Enterprise Linux の前のバージョンでは、一部のプログラムで、起動初期に
/var ディレクトリーをマウントする前に、実行時データを /dev ディレクトリーに格納できました。 主な Linux ディストリビューションでは、/dev ディレクトリーはデバイスノードにのみ使用し、/run を代わりに使用することが推奨されています。
したがって、Red Hat Enterprise Linux 7 では、
/run ディレクトリーは、/var/run ディレクトリーをバインドマウントする一時ファイルストレージシステム (tmpfs) です。同様に、/run/lock ディレクトリーは /var/lock ディレクトリーをバインドマウントするようになりました。/run と /run/lock に格納されたファイルは、永続的ではなくなり、再起動後に保持されません。つまり、アプリケーションは、インストール時ではなく、起動時に独自のファイルとディレクトリーを再作成する必要があります (/etc/app_name ディレクトリーが理想的)。
起動時にファイルとディレクトリーを再作成する方法については、
tmpfiles.d の man ページである man tmpfiles.d を参照してください。設定例については、/etc/tmpfiles.d にある設定例を参照してください。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.