
ヘッドレスNASからsdf1
(フラッシュカード)をマウントするとともに/
(ソフトウェアRAIDでサポートされるLVMボリューム)でも/home
マウントしました。lv00
RAID障害が発生したときにコンピュータにアクセスできるように、/home/foo/.ssh
SSH公開鍵などのコピーをファイルシステムに保存します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/joe
joe
/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