検索

2.3. ファイルシステムレイアウト

download PDF

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 の結果にすべて対応してください。

準備が完了したら、インストールガイドを参照して、アップグレードプロセスの実行に関する詳細を確認してください。

2.3.1.2. アップグレード成功の確認

アップグレードプロセスの実行後に、アップグレードが予想通りに機能したかを確認することが重要になります。

  1. 以下のシンボリックリンクが存在するかを確認します。

    • /bin/usr/bin へのシンボリックリンクです。
    • /sbin/usr/sbin へのシンボリックリンクです。
    • /lib/usr/lib へのシンボリックリンクです。
    • /lib64/usr/lib64 へのシンボリックリンクです。
    • /var/run/run へのシンボリックリンクです。
    • /var/lock/run/lock へのシンボリックリンクです。

      上記のディレクトリーが想定どおりにシンボリックリンクである場合、さらに 2 つのチェックが必要になります。

  2. 以下の find コマンドの出力をチェックします。

    # find /usr/{lib,lib64,bin,sbin} -name '.usrmove'

    このコマンドにより表示されるファイルもしくはディレクトリーは、同じ名前のものがすでに /usr にあるため、/usr にコピーすることはできません。この命名に関する競合は、手動で解決する必要があります。

  3. 保管しておきたいファイルについて、以下のディレクトリーをチェックします。

    • /var/run.runmove~
    • /var/lock.lockmove~

上記のディレクトリーがいずれもシンボリックリンクではない場合は、「失敗したアップグレードからのリカバリー」 に示されるリカバリープロセスを実行する必要があります。

2.3.1.3. 失敗したアップグレードからのリカバリー

アップグレードプロセスが失敗する理由はいくつもあります。以下のコマンドの出力をチェックして、失敗した原因を確認してください。

# dmesg
# journalctl -ab --full

エラーが見つからない場合は、以下をチェックします。

  • / が書き込み可能か
  • /usr が書き込み可能か
  • / に十分なスペースがあるか
  • /usr に十分なスペースがあるか
  • /varrhelup ツールにマウントされているか

さらにヘルプが必要な場合は、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 に格納されたファイルは、永続的ではなくなり、再起動後に保持されません。つまり、アプリケーションはインストール時に 1 回実行するのではなく、起動時に独自のファイルおよびディレクトリーを再作成する必要があります。これには、/etc/app_name ディレクトリーが適しています。

起動時にファイルとディレクトリーを再作成する方法については、tmpfiles.d の man ページである man tmpfiles.d を参照してください。設定例については、/etc/tmpfiles.d にある設定例を参照してください。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.