É possível olhar 'para trás' um ponto de montagem enquanto ainda está montado? [duplicado]

5

Eu tenho duas partições, uma montada em / e uma em / crypt. Estou usando uma bind mount para montar /crypt/home at /home/ (e vários outros).

O problema é que eu preciso olhar para o% original% dir agora, mas é claro que eu só vejo o conteúdo de /home .

Eu não posso desmontar isso porque para isso eu tenho que estar logado, o que significa que / home está em uso ...

Existe uma maneira (talvez outra montagem de bind ou algo assim) que eu possa acessar os arquivos sob o original /crypt/home dir, sem recorrer a inicialização de um pendrive, etc.?

    
por artfulrobot 02.12.2014 / 22:39

1 resposta

8

Se você acabou de logar como root, então você não deve ter nenhum problema com a /home mount. Ainda assim, se isso não for possível, você poderá simplesmente mount --bind / /elsewhere . Por padrão, as montagens de --bind type não são recursivas - e, portanto, os sistemas de arquivos montados em / não o seguirão quando estiverem --bind montados em outro local. Você pode recursivamente --rbind a montar em outro lugar embora.

Por exemplo:

findmnt /esp; findmnt /

TARGET SOURCE    FSTYPE OPTIONS
/esp   /dev/sda1 vfat   rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro

TARGET SOURCE                FSTYPE OPTIONS
/      /dev/sda2[/arch_root] btrfs  rw,relatime,compress-force=lzo,ssd,space_cache,autodefrag

Como você pode ver, /esp está montado em / .

mkdir /tmp/root
sudo mount --bind / /tmp/root
ls /esp /tmp/root/esp

/esp:
EFI/  shellia32.efi*  shellx64.efi*

/tmp/root/esp:

Agora vou buscar um arquivo em /tmp/root/esp :

sudo touch /tmp/root/esp/blank_file
ls /esp /tmp/root/esp

/esp:
EFI/  shellia32.efi*  shellx64.efi*

/tmp/root/esp:
blank_file

Então, criei um arquivo no diretório em que /esp está montado. Vêem?

sudo umount /boot /esp; ls /esp
blank_file

sudo mount -a; ls /esp
EFI/  shellia32.efi*  shellx64.efi*

Eu tive que umount /boot e /esp porque /boot é realmente originado de uma pasta montada em bind em /esp . Ambos são definidos em /etc/fstab - e é por isso que mount -a os trouxe de volta.

    
por 02.12.2014 / 23:03