No meu NAS sem cabeça, eu tenho sdf1
(um cartão flash) montado /
enquanto /home
está montado lv00
(um volume LVM suportado por um RAID de software). Para poder acessar a máquina quando o RAID falhar, eu tenho uma cópia da minha chave pública ssh etc. no /home/foo/.ssh
sistema de arquivos de sdf1
.
Para atualizar os arquivos que estão escondidos pela montado /home
I normalmente remount lv00
em /mnt/home
, fazer o que tenho que fazer, e depois passar lv00
de volta no lugar.
Existe uma maneira de conseguir isso sem desmontar /home
?
32
mount --bind
, mas só tinha algumas idéias complicadas que certamente quebrariam quando eu precisasse. Isso faz exatamente o que eu preciso e pode até entrar como uma montagem permanente. GraçasTentei alcançar algo semelhante, mas a resposta efêmera não explicou a semântica do método. Ele falhou para mim e, portanto, fiz praticamente a mesma pergunta anteriormente aqui no unix.SE. Depois de um comentário, descobri por conta própria e atendi. Esta é uma versão editada da minha resposta para caber neste contexto aqui. Eu removi minha outra pergunta (e resposta) em favor desta.
Aqui está o que eu estava tentando fazer:
Exemplo de caso
Suportes:
Após a montagem
/
, tenho uma pasta/home/joe
para o usuáriojoe
. Depois que o outro local é montado (/data
), tenho o conjunto completo de pastas pessoais disponíveis e, portanto, estou montando-as no lugar (/data/home on /home
). Há uma pasta/data/home/joe
, desde que a montagem seja/dev/sdb1
bem-sucedida, ele receberá o conteúdo/data/home/joe
, caso contrário, voltará a/home/joe
(ligado/dev/sda1
!).Quando é bem-sucedido, como posso acessar o conteúdo original de
/home/joe
(ativado/dev/sda1
!) Em vez daqueles montados no local/data/home/joe
?Solução
Com base em um comentário do comentário de Patrick sobre minha pergunta e a solução por ephemient (resposta aceita aqui), vim com o seguinte.
Aparentemente, é possível
mount --bind
(oumount -o bind
) a pasta pai ( esta é a parte crucial ) de uma montagem de ligação em outro local e, assim, acessar o conteúdo original. Portanto, no meu exemplo de caso, em vez de tentar:(ou seja, montar os locais já montados em ligação em outro local) eu tive que:
Então é isso que Patrick quis dizer em seu comentário
Contanto que você tenha uma pasta pai disponível no local montado na ligação, ela funcionará, embora com um indireto, como mostrado acima. Se você montou algo sobre uma ligação,
/
está sem sorte, pois não há uma pasta pai para ela/
.fonte
Você pode mover o suporte para um novo local sem desmontá-lo, usando
mount --move
:fonte