如何检查 systemd 是否正在卸载我的设备?(为什么?)

yur*_*mix 2 mount fstab systemd systemd-mount

这是另一个问题的后续。

我发现有什么东西在我安装后立即卸载了我的设备。

该设备正由一个数据库 (Vertica) 使用,该数据库已关闭并且在我运行 mount 命令时未使用该目录。

我想弄清楚:

  1. systemd 是卸载设备的那个吗?
  2. 我如何调试为什么会发生这种情况?
  3. 我如何解决它?

这是正在发生的事情的一个例子:

[root@mymachine systemd]# mount -t ext4 /dev/xvdx /vols/data5; ls -la /vols/data5; sleep 5; ls -la /vols/data5
total 36
drwxr-xr-x   5 dbadmin verticadba  4096 Jul 23  2017 .
drwxr-xr-x   9 root    root          96 Jul 16 18:52 ..
drwxrwx--- 503 dbadmin verticadba 12288 Jul 23 13:51 somedb
drwx------   2 root    root       16384 Nov 30  2016 lost+found
drwxrwxrwx   2 dbadmin verticadba  4096 Jun 20 08:32 tmp
total 0
drwxr-xr-x 2 root root  6 Jun  8  2017 .
drwxr-xr-x 9 root root 96 Jul 16 18:52 ..
[root@mymachine ~]# 
Run Code Online (Sandbox Code Playgroud)

表:

#
# /etc/fstab
# Created by anaconda on Mon May  1 18:59:01 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=29342a0b-e20f-4676-9ecf-dfdf02ef6683 /                       xfs     defaults        0 0
/dev/xvdb swap swap defaults,nofail 0 0
/dev/xvdy /vols/data ext4 defaults 0 0
/dev/xvdx /vols/data5 ext4 defaults 0 0
Run Code Online (Sandbox Code Playgroud)

根据Filipe Brandenburger的建议,还有一些日志:

Aug 01 16:55:19 mymachine kernel: EXT4-fs (xvdx): mounted filesystem with ordered data mode. Opts: (null)
Aug 01 16:55:19 mymachine systemd[1]: Unit vols-data5.mount is bound to inactive unit dev-xvdl.device. Stopping, too.
Aug 01 16:55:19 mymachine systemd[1]: Unmounting /vols/data5...
Aug 01 16:55:19 mymachine umount[353194]: umount: /vols/data5: target is busy.
Aug 01 16:55:19 mymachine umount[353194]: (In some cases useful info about processes that use
Aug 01 16:55:19 mymachine umount[353194]: the device is found by lsof(8) or fuser(1))
Aug 01 16:55:19 mymachine systemd[1]: vols-data5.mount mount process exited, code=exited status=32
Aug 01 16:55:19 mymachine systemd[1]: Failed unmounting /vols/data5.
Run Code Online (Sandbox Code Playgroud)

yur*_*mix 5

好的,那是有趣的调试体验...感谢Filipe Brandenburger 带我到它!

  1. systemd 是卸载设备的那个吗?

是的。journalctl -e显示相关消息:

Aug 01 16:55:19 mymachine systemd[1]: Unit vols-data5.mount is bound to inactive unit dev-xvdl.device. Stopping, too.
Run Code Online (Sandbox Code Playgroud)

显然我不是第一个遇到它的人。请参阅此systemd问题: systemd umounts 当该挂载点的单元发生故障时手动挂载#1741

  1. 我如何调试为什么会发生这种情况?

运行journalctl -e调试。

  1. 我如何解决它?

此解决方法对我有用:运行以下命令,然后再次尝试挂载。

systemctl daemon-reload
Run Code Online (Sandbox Code Playgroud)

就是这样,伙计们!