Como remover vários links para o mesmo diretório?

2

Eu tenho uma instalação lxd quebrada e quero excluí-la completamente e começar de novo, mas há um problema. / var / lib / lxd / devices / desktop contém um grupo de subdiretórios que estão vinculados a diretórios em outros locais do sistema de arquivos (mesmo em unidades diferentes), como

drwxr-xr-x 28 karl   karl       4096 Apr 11 15:40 disk.shareName.home-karl
drwxr-xr-x  4 nobody nogroup    4096 Apr 14 12:07 disk.thor.mnt-thor
drwxr-xr-x  2 root   root       4096 Mar 29 14:02 disk.usbdrive.mnt-usbdrive

Por exemplo, se eu excluir um arquivo de disk.thor.mnt-thor, ele também será excluído de / home / storage (os dois diretórios apontam para o mesmo local). disk.usbdrive.mnt-usbdrive mostra todo o conteúdo da minha unidade USB montada em / mnt / usbdrive. Os dois diretórios mostram seu conteúdo e as modificações em um são refletidas no outro.

Mas agora, se eu quiser excluir esses diretórios, eu tenho um problema, porque eu só quero remover esses diretórios em lxd, não os diretórios reais que eles apontam e não seu conteúdo. Eu tentei usar unlink , mas não funciona em diretórios.

    
por Karl 14.04.2018 / 12:35

1 resposta

1

Experimente umount -em eles.

A camada VFS no Linux permite que arquivos e diretórios sejam "montados em bind" em outro local. O resultado realmente parece um hardlink, mas na verdade não existe no disco - as montagens de bind são na memória como as montagens regulares são.

Esse recurso também significa que um único sistema de arquivos pode ser montado em vários lugares de uma só vez. Por exemplo, o mesmo /dev/sda1 pode ser montado em /mnt/usbdrive e em /var/lib/lxd/mnt-usbdrive .

Todas essas montagens mágicas podem ser vistas executando findmnt ou mount .

(o Windows e o FreeBSD também possuem recursos semelhantes, por exemplo, nullfs.)

    
por 14.04.2018 / 14:45