私の目標は、Linux FHS読み取り/書き込みディレクトリ(、、、、、/home
)の物理ストレージを、潜在的に読み取り専用であるルートファイルシステムの残りの部分以外の(論理的または物理的な)ディスクに配置することです。/srv
/tmp
/var
2番目のディスクに4つのパーティションを作成し、各パーティションを上記のディレクトリの1つとして使用できることを知っていますmount
。ただし、後で(論理的または物理的な)パーティションのサイズを変更できますが、4つのディレクトリに必要なストレージ容量を事前に決定したくありません。
これは可能ですか?達成する方法?
答え1
以前も同様の質問がありました。一番近いようです。同じパーティションに複数のディレクトリをマウントする方法は?どこ現在承認されている回答アドバイスは2つの方法で来ることができます。
4つの_symbolicリンクを使用してください。ルートファイルシステムでは、2番目のディスク上の4つの別々のサブツリーを指し、ディスク自体は一度に4つの独立したマウントポイントにマウントされます。
使用バンドルのインストール(Linux 2.4以降)2番目のディスクが4つのディレクトリの別のマウントポイントに最初にマウントされ、次に2番目のディスクの4つの別々のサブツリーが4つのディレクトリにマウントされます。
同じ回答に興味深いコメントがあります。このQ&Aでは、長所と短所について説明します。シンボリックリンクそしてバンドルのインストール。これにより、次のような結論を下すことができます。シンボリックリンク表示とメンテナンスが簡単で、既存のソフトウェアに問題を引き起こさないため、優先する必要があります。
ただし、systemd
という明示的な依存関係設定機能がありますRequiresMountsFor
。たとえば、標準のDebian 8(Jessie)はそれを使用して、特定のサービスが/var
そのサービスで利用可能でなければならない潜在的なインストールを待つようにします。
systemd
RequiresMountsFor
以下と組み合わせて使用できます。バンドルのインストール;同意しないシンボリックリンク。
少なくともsystemd
問題のDebian 8サービス設定ファイルがここにあるので、/lib/systemd
修正しないでください。これは次のことを示します。バンドルのインストールsystemd
これらの依存関係を導入するLinuxディストリビューションを使用している場合は、これが優先されます。。 Linuxディストリビューションの設定を変更すると、systemd
システムのメンテナンスが悪夢になる可能性があります。
systemd
一方、その存在自体が選択の理由や逆の理由を構成しません。シンボリックリンクそしてバンドルのインストール。
答え2
1つのオプションは、mergeでディストリビューションを使用することです。その後、ROと残りのRWを/usr
マウントし、ほとんどのRO関連エントリを持つことができます。しかし、これはおそらくあなたが望むものを/usr
捉えません。/etc
完全な解決策ではなく、解決策に近いです。
別のアプローチは、必要なすべてのマウントのサブボリュームを持つBTRFSボリュームを作成してから使用することです-osubvol=<whatever>
。これらのマウントには個別のマウントオプションがありますが、デフォルト設定(割り当て量設定なし)ではすべて空間的に計算されます。 BTRFSボリューム全体にスペースが残っている限り、必要な場所に新しいデータを配置できます。