私のシステムに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
この部分に関する質問は次のとおりです。
私はLinuxの専門家ではありませんが、検索を通じてバインドマウントを見つけました。
既存のディレクトリツリーをインポートして別のポイントにコピーします。バインドマウントのディレクトリとファイルはソースと同じです。両方のビューは同じデータを表示するため、一方の変更はもう一方の側にもすぐに反映されます。
私が理解していないのは、/mnt/gentoo/sysにバインドマウントがどのように役立つかです。元のディレクトリツリーはインストールメディアにあり、削除されます。したがって、メディアで変更された内容はここに反映されません。代わりにこのコマンドを使用する目的は何ですか?
mount -t sysfs sysfs /mnt/gentoo/sys
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/debug
efivarfs
/sys/firmware/efi/efivars
対照群以下に/sys/fs/cgroup/*
。
以下には、/dev
少なくとも/dev/pts
、、、/dev/shm
および/dev/hugepages
/または/dev/mqueue
あらゆる種類の専用RAMベースのファイルシステムがあります。
したがって、rbindを使用すると、明らかに作業が単純化されます。