私はunshareコマンドをチェックしていましたが、そのマニュアルページによると、 unshare - run program with some namespaces unshared from parent また、次のような名前空間のタイプがリストされています。 mount namespace mounting and unmounting filesystems will not affect rest of the system. このマウント名前空間の目的は何ですか?私はいくつかの例の助けを借りてこの概念を理解しようとしています。
なぜこれが機能しないのですか? $ unshare -rm mount --bind / /mnt mount: /mnt: wrong fs type, bad option, bad superblock on /, missing codepage or helper program, or other error. これらは大丈夫です: $ unshare -rm mount --bind /tmp /mnt $ unshare -rm mount --bind /root /mnt $ $ uname -r # Linux kernel version …
そこで、Linuxのマウント名前空間がどのように機能するかを把握しようとしています。そこで、私は少し実験をして、2つのターミナルを開き、次のコマンドを実行しました。 ターミナル1 root@goliath:~# mkdir a b root@goliath:~# touch a/foo.txt root@goliath:~# unshare --mount -- /bin/bash root@goliath:~# mount --bind a b root@goliath:~# ls b foo.txt ターミナル2 root@goliath:~# ls b foo.txt ターミナル2でマウントが見えるのはなぜですか?これはマウント名前空間の一部ではないため、ここではディレクトリが空であると思われました。また、でオプションを渡し-o shared=noて使用しようとしましたが、同じ結果が得られました。--make-privatemount 私は何が欠けていますか、どうすれば実際にプライベートにすることができますか?