首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Centos 7- fstab不挂载某些分区,但是挂载/dev/sd*挂载。

Centos 7- fstab不挂载某些分区,但是挂载/dev/sd*挂载。
EN

Server Fault用户
提问于 2018-10-24 21:36:16
回答 2查看 3.7K关注 0票数 2

我有一个带有Centos 7的虚拟机,我想在上面挂载一些ext4分区。物理磁盘实际上是由vSphere提供的硬盘。所有磁盘都位于相同的NAS上,因此这三个工作磁盘(a、c、d)实际上与有问题的磁盘(e、f、g)相同。

fstab的内容:

代码语言:javascript
复制
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 2

lsblk -o '+UUID,FSTYPE'输出:

代码语言:javascript
复制
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一起使用)

EN

回答 2

Server Fault用户

回答已采纳

发布于 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条目转换为:

代码语言:javascript
复制
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 2

systemd-fstab-generato将生成所需的挂载单元文件,systemd.mount将隐式添加正确的依赖项:

如果挂载单元位于文件系统层次结构中的另一个挂载单元之下,则会自动创建两个单元之间的需求依赖关系和排序依赖关系。

替代方案:从/etc/fstab中删除条目,创建您自己的挂载单元文件,并手动配置需求和排序依赖关系,以确保/apps/var/progress/apps/var/custom/apps/var/custom不会在/apps_home之前挂载。

票数 2
EN

Server Fault用户

发布于 2018-11-07 00:45:54

安装总是显示分区被安装在正确的目录上,但是umount报告说分区目前还没有挂载。

从评论中的讨论中,我认为您的系统呈现这种行为是因为/etc/mtab是一个常规文件,而不是指向/proc/self/mount的符号链接。我建议您恢复符号链接,如本红帽溶液中所记录的:

In RedHatEnterpriseLinux7, /etc/mtab is不再是一个平面文件,而是一个指向 /proc/self/mounts的符号链接。如果服务出于某种原因使用sed命令访问或修改/etc/mtab,则可能会删除符号链接并创建平面文件。这反过来又会导致服务器不能完全启动--正常情况下它会进入紧急模式,df输出会显示所有已安装的内容,但是如果检查/proc/mounts,只会安装/

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/937058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档