systemd:autofsを含むautofsは削除できません。

systemd:autofsを含むautofsは削除できません。

2つのディレクトリを設定しようとしていますが、各ディレクトリは自動的にマウントされます。

  • /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)

関連情報