マウントポイントの元のコンテンツにアクセスする

マウントポイントの元のコンテンツにアクセスする

ヘッドレスNASからsdf1(フラッシュカード)をマウントするとともに/(ソフトウェアRAIDでサポートされるLVMボリューム)でも/homeマウントしました。lv00RAID障害が発生したときにコンピュータにアクセスできるように、/home/foo/.sshSSH公開鍵などのコピーをファイルシステムに保存しますsdf1
マウントによって隠されたファイルを更新するには、通常を/home再マウントlv00/mnt/home、何をすべきかを実行してから、lv00もう一度移動します。
削除せずにこれを達成する方法はありますか/home

答え1

mkdir /mnt/root
mount --bind / /mnt/root
ls /mnt/root/home/foo/.ssh

--bindとは逆に、使用している限り、マウントの--rbind上に何かをマウントすることなく、マウントのレプリカを取得できます。

答え2

似たようなものを手に入れようとしましたが、短命答えは方法の意味を説明しません。私には失敗したので、以前unix.SEについてほぼ同じ質問をしました。コメントした後、私が直接把握して回答しました。これはここの文脈に合わせて私の答えの編集版です。この質問に賛成して他の質問(および回答)を削除しました。

これが私がやろうとしていることです。

実例

山:

/dev/sda1  on /     type ext4 (rw)
/dev/sdb1  on /data type ext4 (rw)
/data/home on /home type none (rw,bind)

インストール後にユーザーフォルダが/作成されました。別の場所がインストールされている場合()は、ホームフォルダ全体のセットを使用できるため、その場所()にバンドルしてマウントしました。フォルダがあるため、マウントが成功するとコンテンツをインポートし、そうでない場合は(on!)に戻ります。/home/joejoe/data/data/home on /home/data/home/joe/dev/sdb1/data/home/joe/home/joe/dev/sda1

いつ働いた。バンドルされたコンテンツの代わりに元のコンテンツに/home/joeどのようにアクセスしますか?/dev/sda1/data/home/joe

解決策

コメントに基づいてパトリック私の質問に対するコメントとephemientの解決策(ここで許可されている答え)に基づいて、次の結論に達しました。

それはい明らかに可能ですmount --bind(またはmount -o bind親フォルダこれが重要な部分です)は他の場所にバンドルされており、元のコンテンツにアクセスできます。したがって、私の例では、次のことを試みないでください。

mount --bind /home/joe /home/joe/underneath
# or ...
mount --bind /home /home/joe/underneath

(つまり、インストールがすでにバンドルされている他の場所)、次のことを行う必要があります。

test -d /.ROOT || mkdir /.ROOT
mount --bind / /.ROOT
mount --bind /.ROOT/home/joe /home/joe/underneath

これはPatrickが彼の意見で意味したものです。

この回答は、再インストール(ルート)しない限り/正しく機能します。

バインドマウントの場所に使用できる親フォルダがある限り、上記のように間接的な方法ですが、機能します。何かをバンドルしてインストールしたら/幸運ではありません/

答え3

次のコマンドを使用すると、インストールを削除せずに新しい場所に移動できますmount --move

$ mount --move /home /mnt/home
do stuff with the local /home
$ mount --move /mnt/home /home

関連情報