yur*_*mix 6 filesystems ext4 mount
我正在尝试安装设备但没有成功。奇怪的是mount命令成功,返回退出码0,但是设备并没有挂载。关于为什么会发生这种情况或如何进行调查的任何想法?请看下面的例子:
[root@mymachine ~]# blkid -o list
device fs_type label mount point UUID
-----------------------------------------------------------------------------------------
/dev/xvda1 xfs / 29342a0b-e20f-4676-9ecf-dfdf02ef6683
/dev/xvdy ext4 /vols/data 72c23c30-2704-42ec-9518-533c182e2b22
/dev/xvdb swap <swap> 990ff722-158c-4ad5-963a-0bc9e1e2b17a
/dev/xvdx ext4 (not mounted) 956b5553-d8b4-4ffe-830c-253e1cb10a2f
[root@mymachine ~]# grep /dev/xvdx /etc/fstab
/dev/xvdx /vols/data5 ext4 defaults 0 0
[root@mymachine ~]# mount -a; echo $?
0
[root@mymachine ~]# blkid -o list
device fs_type label mount point UUID
-----------------------------------------------------------------------------------------
/dev/xvda1 xfs / 29342a0b-e20f-4676-9ecf-dfdf02ef6683
/dev/xvdy ext4 /vols/data 72c23c30-2704-42ec-9518-533c182e2b22
/dev/xvdb swap <swap> 990ff722-158c-4ad5-963a-0bc9e1e2b17a
/dev/xvdx ext4 (not mounted) 956b5553-d8b4-4ffe-830c-253e1cb10a2f
[root@mymachine ~]# mount /dev/xvdx /vols/data5; echo $?
0
[root@mymachine ~]# blkid -o list
device fs_type label mount point UUID
-----------------------------------------------------------------------------------------
/dev/xvda1 xfs / 29342a0b-e20f-4676-9ecf-dfdf02ef6683
/dev/xvdy ext4 /vols/data 72c23c30-2704-42ec-9518-533c182e2b22
/dev/xvdb swap <swap> 990ff722-158c-4ad5-963a-0bc9e1e2b17a
/dev/xvdx ext4 (not mounted) 956b5553-d8b4-4ffe-830c-253e1cb10a2f
[root@mymachine ~]#
Run Code Online (Sandbox Code Playgroud)
完整的 fstab:
[root@mymachine ~]# cat /etc/fstab
#
# /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)
Ral*_*edl 10
如果出现问题,通常 mount 不会返回 0。当我遇到类似问题时,原因是systemd在挂载后立即卸载了文件系统。
您可以尝试strace mount /dev/xvdx /vols/data5
查看系统调用的结果。您还可以尝试mount /dev/xvdx /vols/data5; ls -li /vols/data5
在 mount 命令之后立即查看是否安装了某些内容。
除了已接受的答案之外,该答案指出某些东西(可能是 systemd)正在卸载文件系统 - 让我更详细地解释我的案例中发生的情况。
正如journalctl所示,它确实是systemd。
在我的场景中,我的 fstab 中有这个
/dev/sda6 /fasthome ext4 defaults 0 2
/dev/sda7 /mnt/vms ext4 defaults 0 2
Run Code Online (Sandbox Code Playgroud)
(fasthome,如果您想知道是一个无需加密即可执行磁盘密集型操作的地方)。
因此,当我插入外部 USB 驱动器启动时,它变成了 sda,而我的内部驱动器变成了 sdb。显然这些挂载点不起作用,所以我更正它们如下:
/dev/disk/by-uuid/<some uuid> /fasthome ext4 defaults 0 2
/dev/disk/by-uuid/<other uuid> /mnt/vms ext4 defaults 0 2
Run Code Online (Sandbox Code Playgroud)
然后我运行mount -a
并且命令完成,没有错误,但似乎它们没有安装。所以我尝试mount /dev/disk/by-uuid ...
同样的事情,最后我提出了这个问题。
是的,它是 systemd 卸载它们的,在我的例子中,这是因为之前 /fasthome
曾尝试安装到/dev/sda6
,systemd 全部挂在该非活动设备上。因此,尽管我的 uuid 路径符号链接正确指向/dev/sdb6
systemd,但不喜欢这里发生的情况。
在这种特殊情况下,答案很简单,就是重新启动,这样错误的设备引用就消失了。
我确信有 1001 种相似但不同的情况可能会导致这个问题,希望这里的细节能为人们提供足够多的线索来了解他们的具体情况。