我有一个带有Centos 7的虚拟机,我想在上面挂载一些ext4分区。物理磁盘实际上是由vSphere提供的硬盘。所有磁盘都位于相同的NAS上,因此这三个工作磁盘(a、c、d)实际上与有问题的磁盘(e、f、g)相同。
fstab的内容:
UUID=b6ebbca4-71d0-4d2e-bc1a-e465e5190698 /boot ext4 defaults 1 2
UUID=2c3ab9f5-60a6-4a79-ada3-84737eef7748 / ext4 defaults 1 1
UUID=e130758c-5108-44de-bbd8-7e003c9072bc swap swap defaults 0 0
UUID=decbbdb6-8362-41ef-aa72-83066c172913 /home ext4 defaults 1 2
UUID=5717b613-a9f4-43c9-95d2-cfbbb891bd19 /apps_home ext4 defaults 1 2
UUID=e24df090-2dda-404c-8944-a28bd37d6c5e /apps/var/progress ext4 defaults 1 2
UUID=5f254c77-a91d-4255-8315-9325ddb7a9d8 /apps/var/standard ext4 defaults 1 2
UUID=746c70c1-002a-4249-a06f-df393a99252c /apps/var/custom ext4 defaults 1 2lsblk -o '+UUID,FSTYPE'输出:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT UUID FSTYPE
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 1G 0 part /boot b6ebbca4-71d0-4d2e-bc1a-e465e5190698 ext4
└─sda2 8:2 0 49G 0 part / 2c3ab9f5-60a6-4a79-ada3-84737eef7748 ext4
sdb 8:16 0 40G 0 disk
└─sdb1 8:17 0 40G 0 part [SWAP] e130758c-5108-44de-bbd8-7e003c9072bc swap
sdc 8:32 0 50G 0 disk
└─sdc1 8:33 0 50G 0 part /home decbbdb6-8362-41ef-aa72-83066c172913 ext4
sdd 8:48 0 600G 0 disk
└─sdd1 8:49 0 600G 0 part /apps_home 5717b613-a9f4-43c9-95d2-cfbbb891bd19 ext4
sde 8:64 0 250G 0 disk
└─sde1 8:65 0 250G 0 part /apps/var/progress e24df090-2dda-404c-8944-a28bd37d6c5e ext4
sdf 8:80 0 1T 0 disk
└─sdf1 8:81 0 1024G 0 part /apps/var/standard 5f254c77-a91d-4255-8315-9325ddb7a9d8 ext4
sdg 8:96 0 2T 0 disk
└─sdg1 8:97 0 2T 0 part /apps/var/custom 746c70c1-002a-4249-a06f-df393a99252c ext4
sr0 11:0 1 1024M 0 rom问题是,在重新启动后,fstab没有一致地挂载最后三个分区(应该分别在/apps/var/progress、/apps/var/standard和/apps/var/custom下挂载)。它确实不时地挂载其中一个(这三个中的任何一个都是完全随机的,并且总是只有一个或没有被安装)。其他分区都是一致安装的,没有任何问题。
挂载-a选项没有做任何事情,但是$mount /dev/sde1 1(或dev/sdf1 1或dev/sdg1 1)工作起来很有魅力。类似地,使用$mount /app/var/progress命令挂载也没有任何问题。
现在,我只是在每次重新启动后使用cron挂载这三个分区,但从长远来看,我想知道这种奇怪行为的根本原因。
我尝试用/dev/sd*名称替换UUID,并尝试使用引号。
安装总是显示分区被安装在正确的目录上,但是umount报告说分区目前还没有挂载。
我注意到,这三个有问题的分区以前都有ext3文件系统,并以某种方式被转换为ext4。另外,对于这三个分区,blkid显示了除了UUID之外的PARTUUID (我认为它们以前与centos 6一起使用)
发布于 2018-11-06 17:42:01
评论中讨论的摘要如下:
您的问题本质上是,您在挂载点路径中使用了符号链接,而在引导时,系统无法正确地跟踪这些链接,从而将结果识别为“嵌套挂载”。因此,systemd没有按照适当的顺序顺序挂载您的文件系统来处理这种依赖关系。
/apps_home/apps --> /apps_home/apps/apps/var/progress /apps/var/custom和/apps/var/custom上挂载卷。问题是,在挂载/apps/var/[custom|progress|standard]之前,挂载点/apps_home并不存在。
解决方案:
保留符号链接,但将文件系统挂载到符号链接目标的实际目录路径上:即将fstab条目转换为:
UUID=5717b613-a9f4-43c9-95d2-cfbbb891bd19 /apps_home ext4 defaults 1 2
UUID=e24df090-2dda-404c-8944-a28bd37d6c5e /apps_home/apps/var/progress ext4 defaults 1 2
UUID=5f254c77-a91d-4255-8315-9325ddb7a9d8 /apps_home/apps/var/standard ext4 defaults 1 2
UUID=746c70c1-002a-4249-a06f-df393a99252c /apps_home/apps/var/custom ext4 defaults 1 2systemd-fstab-generato将生成所需的挂载单元文件,systemd.mount将隐式添加正确的依赖项:
如果挂载单元位于文件系统层次结构中的另一个挂载单元之下,则会自动创建两个单元之间的需求依赖关系和排序依赖关系。
替代方案:从/etc/fstab中删除条目,创建您自己的挂载单元文件,并手动配置需求和排序依赖关系,以确保/apps/var/progress、/apps/var/custom和/apps/var/custom不会在/apps_home之前挂载。
发布于 2018-11-07 00:45:54
安装总是显示分区被安装在正确的目录上,但是umount报告说分区目前还没有挂载。
从评论中的讨论中,我认为您的系统呈现这种行为是因为/etc/mtab是一个常规文件,而不是指向/proc/self/mount的符号链接。我建议您恢复符号链接,如本红帽溶液中所记录的:
In RedHatEnterpriseLinux7,
/etc/mtabis不再是一个平面文件,而是一个指向/proc/self/mounts的符号链接。如果服务出于某种原因使用sed命令访问或修改/etc/mtab,则可能会删除符号链接并创建平面文件。这反过来又会导致服务器不能完全启动--正常情况下它会进入紧急模式,df输出会显示所有已安装的内容,但是如果检查/proc/mounts,只会安装/。
https://serverfault.com/questions/937058
复制相似问题