systemd: autofs가 포함된 autofs는 제거할 수 없습니다.

systemd: autofs가 포함된 autofs는 제거할 수 없습니다.

두 개의 디렉토리를 설정하려고 하는데 각 디렉토리는 자동으로 마운트됩니다.

  • /mnt/dir
  • /mnt/dir/subdir

내 경우에는 다음과 같습니다.

  • /mnt/btrfs-vol/rootfs(읽기 전용)
  • /mnt/btrfs-vol/rootfs/btrbk-snap(RW는 스냅샷을 찍는 데 사용됩니다.btrbk)

/etc/fstab내용은 다음과 같습니다.

LABEL=rootfs    /mnt/btrfs-vol/rootfs               btrfs   ro,subvol=/,lazytime,compress=lzo,ssd,discard,noauto,x-systemd.automount,x-systemd.idle-timeout=2
LABEL=rootfs    /mnt/btrfs-vol/rootfs/btrbk-snap    btrfs   rw,subvol=/btrbk-snap,lazytime,compress=lzo,ssd,discard,noauto,x-systemd.automount,x-systemd.idle-timeout=2,x-systemd.requires-mounts-for=/mnt/btrfs-vol/rootfs

나는 다음을 원한다:

svelte ~# systemctl daemon-reload && systemctl restart local-fs.target
svelte ~# mount | grep btrfs-vol/rootfs
systemd-1 on /mnt/btrfs-vol/rootfs type autofs (rw,relatime,fd=32,pgrp=1,timeout=2,minproto=5,maxproto=5,direct)

이상하게도 /mnt/btrfs-vol/rootfs은 이미 설치되어 있습니다.

을 제거하면 /mnt/btrfs-vol/rootfs즉시 다시 설치됩니다.

svelte ~# umount /mnt/btrfs-vol/rootfs
svelte ~# mount | grep btrfs-vol/rootfs
systemd-1 on /mnt/btrfs-vol/rootfs type autofs (rw,relatime,fd=32,pgrp=1,timeout=2,minproto=5,maxproto=5,direct)

이제 하위 디렉터리를 ping하면 자동으로 마운트됩니다.

svelte ~# (cd /mnt/btrfs-vol/rootfs/btrbk-snap/ && mount | grep btrfs-vol/rootfs)
systemd-1 on /mnt/btrfs-vol/rootfs type autofs (rw,relatime,fd=32,pgrp=1,timeout=2,minproto=5,maxproto=5,direct)
/dev/mapper/vg_svelte-rootfs on /mnt/btrfs-vol/rootfs type btrfs (ro,relatime,lazytime,compress=lzo,ssd,discard,space_cache,subvolid=5,subvol=/)

가 에서 로 fstype변경 /dev/mapper/vg_svelte-rootfs되었습니다 .autofsbtrfs

몇 초 후( timeout=2테스트가 있습니다):

svelte ~# mount | grep btrfs-vol/rootfssystemd-1 on /mnt/btrfs-vol/rootfs type autofs (rw,relatime,fd=32,pgrp=1,timeout=2,minproto=5,maxproto=5,direct)

하위 디렉토리가 마운트 해제되고 에 fstype복원됩니다 ./dev/mapper/vg_svelte-rootfsautofs하지만 계속 설치되어 있어요.

자동으로 제거하는 방법은 무엇입니까?


유용할 수 있는 정보:

journal산출:

Feb 21 17:16:07 svelte systemd[1]: Reloading.
Feb 21 17:16:23 svelte systemd[1]: Mounting /mnt/btrfs-vol/rootfs...
Feb 21 17:16:23 svelte systemd[1]: Set up automount mnt-btrfs\x2dvol-home-btrbk\x2dsnap.automount.
Feb 21 17:16:23 svelte systemd[1]: Mounted /mnt/btrfs-vol/rootfs.
Feb 21 17:16:23 svelte systemd[1]: mnt-btrfs\x2dvol-rootfs-btrbk\x2dsnap.automount: Directory /mnt/btrfs-vol/rootfs/btrbk-snap to mount over is not empty, mounting anyway.
Feb 21 17:16:23 svelte systemd[1]: Set up automount mnt-btrfs\x2dvol-rootfs-btrbk\x2dsnap.automount.
Feb 21 17:16:23 svelte systemd[1]: Reached target Local File Systems.
Feb 21 17:16:25 svelte systemd[1]: Stopped target Local File Systems.
Feb 21 17:16:25 svelte systemd[1]: Unset automount mnt-btrfs\x2dvol-rootfs-btrbk\x2dsnap.automount.
Feb 21 17:16:25 svelte systemd[1]: Unmounting /mnt/btrfs-vol/rootfs...
Feb 21 17:16:25 svelte systemd[1]: Unmounted /mnt/btrfs-vol/rootfs.
Feb 21 17:17:44 svelte systemd[1]: Unset automount mnt-btrfs\x2dvol-home-btrbk\x2dsnap.automount.

디렉토리가 열려 있지 않은지 확인하십시오.

svelte ~# lsof /mnt/btrfs-vol/rootfs
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
      Output information may be incomplete.
svelte ~[2]# ls -l /run/user/1000 | grep gvfs
ls: cannot access '/run/user/1000/gvfs': Permission denied
d????????? ? ?    ?      ?            ? gvfs

?자리 표시자가 어디에 있어야 하는지 본 적이 없습니다 rwx.

답변1

systemdfstab 옵션 보기x-systemd.requires-mounts-for=:

RequiresMountsFor=생성된 마운트 장치와 다른 마운트 장치 간의 종속성을 구성합니다 . 매개변수는 절대 경로여야 합니다. 이 옵션은 여러 번 지정할 수 있습니다. 자세히보다 RequiresMountsFor=.systemd.unit(5)

관련 정보