동일한 디렉토리에 대한 여러 링크를 제거하는 방법은 무엇입니까?

동일한 디렉토리에 대한 여러 링크를 제거하는 방법은 무엇입니까?

lxd 설치가 깨져서 완전히 삭제하고 다시 시작하고 싶은데 문제가 있습니다. /var/lib/lxd/devices/desktop에는 다음과 같이 파일 시스템의 다른 위치(다른 드라이브에 있는 경우에도) 디렉터리에 연결된 여러 하위 디렉터리가 포함되어 있습니다.

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

예를 들어, disk.thor.mnt-thor에서 파일을 삭제하면 /home/storage에서도 삭제됩니다(두 디렉터리 모두 동일한 위치를 가리킴). disk.usbdrive.mnt-usbdrive는 /mnt/usbdrive에 마운트된 USB 드라이브의 모든 내용을 표시합니다. 두 디렉토리 모두 해당 내용을 표시하고 한 디렉토리의 수정 사항이 다른 디렉토리에 반영됩니다.

그러나 이제 이러한 디렉토리를 삭제하려면 문제가 발생합니다. 왜냐하면 lxd 아래의 해당 디렉토리만 제거하고 해당 디렉토리가 가리키는 실제 디렉토리는 제거하고 해당 내용은 제거하지 않기 때문입니다. 을 사용해 보았지만 unlink디렉토리에서는 작동하지 않습니다.

답변1

시도해 umount보세요.

Linux의 VFS 계층을 사용하면 파일과 디렉터리를 다른 위치에 "바인드 마운트"할 수 있습니다. 결과는 실제로 하드링크처럼 보이지만 실제로는 디스크에 존재하지 않습니다. 바인드 마운트는 일반 마운트와 마찬가지로 메모리 내에서 수행됩니다.

이 기능은 또한 단일 파일 시스템을 동시에 여러 위치에 마운트할 수 있음을 의미합니다. 예를 들어, 동일한 것을 다음 /dev/sda1위치에 마운트할 수 있습니다./mnt/usbdrive 그리고/var/lib/lxd/mnt-usbdrive.

이러한 모든 마법 마운트는 다음을 실행하여 볼 수 있습니다.findmnt또는 mount.

(Windows와 FreeBSD에도 비슷한 기능이 있습니다(예: nullfs).

관련 정보