/ sysのバインドマウント(特にrbind)の目的は何ですか?

/ sysのバインドマウント(特にrbind)の目的は何ですか?

私のシステムにGentooをインストールする準備としてGentooのマニュアルを読んでいます。

Chrooting セクションでは、次のコマンドが提供されます。

mount --rbind /sys /mnt/gentoo/sys
mount --make-rslave /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev
mount --make-rslave /mnt/gentoo/dev

この部分に関する質問は次のとおりです。

  1. 私はLinuxの専門家ではありませんが、検索を通じてバインドマウントを見つけました。

    既存のディレクトリツリーをインポートして別のポイントにコピーします。バインドマウントのディレクトリとファイルはソースと同じです。両方のビューは同じデータを表示するため、一方の変更はもう一方の側にもすぐに反映されます。

    私が理解していないのは、/mnt/gentoo/sysにバインドマウントがどのように役立つかです。元のディレクトリツリーはインストールメディアにあり、削除されます。したがって、メディアで変更された内容はここに反映されません。代わりにこのコマンドを使用する目的は何ですか?

    mount -t sysfs sysfs /mnt/gentoo/sys 
    
  2. rbindを使用する目的は何ですか?バインドマウントの目的がバインドマウントのリフレクション機能を使用するのではなく、/mnt/gentooに/sysファイルを生成することを前提として、なぜrbindを使用するのですか?また、私が知る限り、rbindは、バインドマウントされた元のディレクトリにマウントポイントがあるときに使用されます。しかし、/sysの下にマウントポイントはありませんか?

答え1

1.)/sys物理ディスクファイルシステムではありません。仮想ファイルシステムの形でカーネルの内部状態を表現してアクセスする手段です。完全にRAMベースなので、/sysディスクに保存する必要はありません。

/sysある意味では、カーネルが起動し、ハードウェアが検出されるたびに最初から再生成されると言うこともあり、別の意味では/sysファイルシステムの内容は実際にはまったく持続せず、要求に応じて生成されると言うこともできます。アクセスしようとしたときに表示する必要がある実際のカーネルの状態。

Gentooをインストールすると、新しいインストールはまだ独自のカーネルを実行していないため、新しいインストールはまだ独自のカーネルを持つことができません/sys。ただし、インストーラ環境には独自のものがあり、/sysバインドマウントを実行すると、「構築中のシステム」がインストール/sys環境のファイルシステムツリーを借りることになります。これにより、インストールの一部の操作が既存のシステムをアップグレードするのとまったく同じになるため、どちらの場合も同じスクリプトを使用できます。アップグレードではそのまま使用されますが、インストール中にchrootを実行するだけです。/mnt/gentoo

2.)UEFI可変ストレージ擬似ファイルシステムとしてインストールまたはインストール/sysできない場合は、さまざまな管理のための複数のRAMベースのファイルシステムがあります。debugfs/sys/kernel/debugefivarfs/sys/firmware/efi/efivars対照群以下に/sys/fs/cgroup/*

以下には、/dev少なくとも/dev/pts、、、/dev/shmおよび/dev/hugepages/または/dev/mqueueあらゆる種類の専用RAMベースのファイルシステムがあります。

したがって、rbindを使用すると、明らかに作業が単純化されます。

関連情報