Umount device após os diretórios de montagem de bind: é seguro?

6

Eu tenho uma partição inicial que é compartilhada por várias distros na mesma caixa. Estou usando bind montagens de fstab . Cada instalação do Linux tem algo parecido com isto:

UUID=[...]       /mnt/data  ext4  nodev,nosuid   0 2
/mnt/data/arch   /home      none  defaults,bind  0 0
/mnt/data/files  /files     none  defaults,bind  0 0

A desvantagem é, obviamente, que /mnt/data/arch e /mnt/data/files estejam agora montados duas vezes. Em um palpite, eu tentei umount /mnt/data , que parece funcionar como eu esperava: de acordo com mount , o dispositivo agora é montado apenas em /home e /files .

Minhas perguntas são:

  1. Isso é seguro ou estou negligenciando alguma coisa?
  2. É possível obter o mesmo efeito que umount /mnt/data usando apenas fstab ? Ou eu poderia fazer isso em rc.local ?
por PPvG 30.08.2012 / 03:14

1 resposta

6

É seguro desmontar uma das cópias montadas na ligação. Depois de executar mount --bind /foo /bar , o kernel não rastreia quais /foo ou /bar vieram primeiro, são dois pontos de montagem para o mesmo sistema de arquivos (ou parte de um sistema de arquivos).

Observe que se /foo for um ponto de montagem, mas /foo/wibble não for, mount --bind /foo/wibble /bar transformará /bar em uma parte do sistema de arquivos montado em /foo . Ainda está certo desmontar /foo .

Portanto, se você montar /mnt/data , vincular partes a /home e /files e desmontar /mnt/data , você não terá acesso às partes de /mnt/data fora de arch e% código%. Se isso não te incomoda, vá em frente.

Você não pode conseguir isso através de files : ele só suporta a montagem de sistemas de arquivos. As montagens de ligação entram por meio de um hack (a opção fstab mount é transformada em uma opção bind para o comando --bind internamente). mount e desmontar não podem ser especificados em mount --move . Você pode usar fstab para chamar /etc/rc.local .

    
por 30.08.2012 / 03:48