これらのコマンドは何のためのものですか?


10

昨日、Grubを上書きしてWindowsをインストールする必要がありました。

まあ、それは私がのLiveCDを使用して、ルートパーティション(私は、ブートを持っていないマウントされ、私はグラブを修正しなければならなかった初めてではない/home)とRANをgrub-install --root-directory=/mnt/ /dev/sda。しかし、それはうまくいきませんでした。

私はこれでだけでなく、Linuxのパーティションをマウントするのチュートリアルを発見しながら、Aをグーグル後、彼はまたやったmount --bind /mnt/dev /devmount --bind /mnt/proc /proc/。その後chroot/mnt、その後、GRUBをインストールして、この方法を使用して、それが働きました。

どのようなものmount --bindのためのコマンドは?--bind used(manページ)の使用法はよく知っていますが、この例で使用された理由がわかりません。

回答:


10

procそして、sysファイルシステムは実行中のカーネルによって提供されます-カーネルが実行されていないとき、それらは存在しなくなります。つまり、別のオペレーティングシステムにchrootすると、これらのファイルシステムは存在しなくなります。多くのプログラムは、それらが機能するためにそれらが存在することを期待しています。たとえば、実行中のシステムに関する情報が必要な場合や、カーネルが何かを処理する方法を変更したい場合があります。それは単に提供するのに十分な頻度である/proc/sys予想通りの仕事にこれらのプログラムの現在のカーネルから。

chrootを実行すると、使用されるファイルパスが無効になるため、シンボリックリンクでは不十分です。Linuxでは、ディレクトリをハードリンクすることもできません(によって提供される.および以外)。つまり、これらのファイルシステムをchrootされた環境にミラーリングするには、3番目のオプションを使用する必要があります-バインドマウント。バインドマウントはカーネルによって直接提供され、chroot内で期待どおりに機能します。..mkdir


procまたsys、複数の場所にマウントできるため--bind、必要ありません(2回だけマウントしてください)。ただし、/dev/内部カーネルではなくudevによって管理されます。
Maciej Piechotka 2013年

@MaciejPiechotka / devについては言及していません。問題ではないためですが、必ずしもudevで管理する必要はありません。
クリスダウン

私はそれ以上に言及していたprocsys(ダブルマウントすることができますファイルシステムとしてmount -t proc none /mnt/proc、あなたがする必要は必要ありませんので)mount --bind、それらを。dev通常はユーザースペース(udev、busyboxなど)によって管理されるため、ユーザーが実行する必要があります。とにかくマイナーポイント。
Maciej Piechotka 2013年

0

この--bindオプションを使用すると、マウントポイントがchroot-ed環境で表示されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.