この記事を読んだ後回答バインドマウントに関する私の考えは、バインドがディレクトリツリーの別のポイントの下にあるLinuxコピー部分またはファイルシステム全体にマウントされることです。
だから、次のコマンドを書くとき
mount --rbind /dev dev
mount --rbind /run run
これは/dev
、システムの/run
ローカル開発と実行の下のポイントにバインドすることを意味します。これは、システムの/ devおよび/ runの内容がdevディレクトリにコピーされ、ローカルで実行されることを意味します。また、devとrunを変更すると、システムの/ devと/ runには反映されません。正しいですか? しかし、その逆の場合はどうなりますか?
だから私の質問は、なぜ私たちが実行する前に以下のインストールが必要なのかということです。
update-initramfs -u
/runおよび/devディレクトリにどのような情報が必要ですか?バインドマウントが情報を変更できない場合、デフォルトでは読み取り専用アクセスのみ可能ですか?
答え1
これは、他のシステムにchrootしてinitramfsイメージを構築または更新したい場合など、いくつかの特別な場合にのみ必要です。
initramfs
これらのパスをバインドする理由を理解するには、それが何であるか、実際に必要な理由を知る必要があります。
多くのLinuxディストリビューションには、ディストリビューション開発者がさまざまなハードウェアから起動するために特別に作成した共通のLinuxカーネルイメージが付属しています。この汎用カーネルイメージ用のデバイスドライバは、ロード可能なカーネルモジュールとして含まれています。多くのドライバを単一のカーネルに静的にコンパイルすると、カーネルイメージが大きくなり、メモリが限られたシステムで起動するには大きすぎる可能性があります。これにより、起動時にルートファイルシステムをインストールするために必要なモジュールを検出してロードしたり、ルートファイルシステムがどこにあるか何かを推測したりする問題が発生します。[1]
結論:私の環境でinitramfsを作成または更新するときに、私のデバイスが何であるかを知る必要があります。例:私が持っているディスクの種類とそれを処理するために "initramfs"にどのツール/モジュールを入れるべきですか?システム起動?このデータはどこから来ますか?
このようなパスには、/dev
この種のアイテムに関する有用な情報がたくさん含まれているため、このようなパスをコピーします/dev
。
からman hier
:
/ dev物理デバイスを参照する特殊ファイルまたはデバイスファイル。
他の質問に関してマウント位置から何かを変更すると、実際のファイルシステムが反映されていることを知っている限り、簡単にテストできます。
$ sudo mount --rbind ~/Documents /mnt
$ touch ~/mnt/foo
$ ls ~/Documents/foo
/home/ravexina/Documents/foo
答え2
また、devとrunを変更すると、システムの/ devと/ runには反映されません。正しいですか?
少なくとも全体的には間違っていました。
バインドマウントに対して4種類の動作を設定できます。「同じコピー」がデフォルトです。バラよりman 8 mount
:
--make-shared
--make-slave
--make-private
--make-unbindable