壊れた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
に -ing してみましょう。
Linux の VFS レイヤーでは、ファイルとディレクトリを別の場所に「バインド マウント」できます。結果は確かにハードリンクのように見えますが、実際にはディスク上には存在しません。バインド マウントは、通常のマウントと同様にメモリ内にあります。
この機能は、1つのファイルシステムを一度に複数の場所にマウントできることも意味します。たとえば、同じファイルシステム/dev/sda1
を/mnt/usbdrive
そしての上/var/lib/lxd/mnt-usbdrive
。
このような魔法の乗り物はすべて、findmnt
またはmount
。
(Windows と FreeBSD にも、nullfs などの同様の機能があります。)