私たちは、chrootが以下のようにchrootディレクトリにいくつかのファイルシステムをインストールする必要があることを知っています:
chroot_dir=/some/where
cd $chroot_dir/
mount -t proc proc proc/
mount --rbind /sys sys/
mount --rbind /dev dev/
私が望むのは、これらのディレクトリを絶対パスとしてマウントすることです
これはシステムと開発者にとって非常に明白です!次のように見えます。
chroot_dir=/some/where
mount --rbind /sys $chroot_dir/sys/
mount --rbind /dev $chroot_dir/dev/
しかし、それで何をすべきかわかりません。proc
それとも
mount -t $chroot_dir/proc $chroot_dir/proc $chroot_dir/proc/
何でも!
この問題を解決する方法を知っている人はいますか?
答え1
「絶対パス」は、chrootの内部に示されているものと同じです。ただし、絶対パス名の設定を心配することなく、chrootを準備するためにこれらのファイルシステムをマウントできます。
この質問はあなたの例と比較するのに役立ちます。
特に、回答2番目の質問では、Arch Wikiが引用されました。ルートディレクトリの変更)はファイルシステムタイプのみを使用するため、最も簡単です(ルートではなくファイルシステムの特別なデバイスはありません)。他の答えは--bind
マウントオプションを使用します。
答え2
からman mount
:
-t, --types vfstype -t 以下のパラメーターは、以下を示すために使用されます。 ファイルシステムタイプ。現在のファイルシステムタイプ 現在サポートされている項目は次のとおりです。adfs、affs、autofs、cifs、 [。 。 。 ]
そしてproc
何よりも。したがって、-t
引数は代わりにいくつかのファイルシステムタイプのいずれかを使用します/a/directory/name
。通常どおりにマウントすると、マウントするシステム名とシステムがマウントされたディレクトリが続きます。したがって、コマンドは次のようになります。
マウント --rbind /sys $chroot_dir/sys/ マウント --rbind /dev $chroot_dir/dev/ マウント -t proc /proc $chroot_dir/proc/
私は2番目ですまな、以下でこのトピックの詳細を読むことができます。アーチウィキ記事彼は指摘しています(一部の実行計画は、実行したい作業によってシステムによって異なる場合があります)。