如何通过直接询问文件系统来查看(ext3)文件系统是否被挂载(例如,系统在启动时以同样的方式查看它并没有被彻底清除)? 检查mount的输出是不好的,因为文件系统可能被虚拟机挂载。
我知道我可以运行fsck ,如果安装了文件系统,它会中止,但是我不需要真正检查文件系统。
文件系统不知道它是否被安装,只有当它是脏的或干净的。 我不确定虚拟机运行的是什么操作系统,但有些可以挂载它只读,并保持干净。 也可能是不正确的拆卸,因此很脏,但实际上并没有使用。
大多数发行版中的文件系统使用mount -a 。 它使用auto指定的方式将所有文件系统挂载到fstab中,这是default规范的一部分。
对于ext2 / ext3, tune2fs可以修改并显示导致文件系统被fscked的设置。 例如, -c允许您指定多less个挂载,直到文件系统被fscked。 最终,你对引导过程的假设是不准确的。
mount是解决scheme,看看是否安装。 用ext3,我不相信“挂载状态”与分区一起存储。 如果你描述为什么你不知道它是共享存储还是NFS,我们可能会提供适合你的具体情况的推荐。
重新思考你的架构。 如果您需要从多个节点访问文件系统,请将其包装在LVM中。 然后你有几个选项。
那么ext3提供的并不重要; 你可以限制访问层较低。
这取决于文件系统。 一些文件系统会注意到它们是否被“挂载”并在文件系统特定的信息区域中存储一点。 大多数文件系统不会,因为这会妨碍硬重启的正确操作(文件系统仍然会认为它被挂载)。 有些文件系统比“当前安装”记得更多的信息。 例如,ZFS会记住它是否被挂载,以及哪台计算机最后挂载了它,所以硬重启可以正常工作,但是在SAN上意外挂载挂载的ZFS文件系统却很难做到。
为什么不使用FSSTAT=df | grep <filesystem mount point>编写脚本呢FSSTAT=df | grep <filesystem mount point> FSSTAT=df | grep <filesystem mount point>
然后用if [ ! -n "$FSSTAT" ] if [ ! -n "$FSSTAT" ]您可以根据结果做出决定
您可以在要testing的文件系统上循环,方法是在脚本中明确提及它们,或者通过从mount命令输出中刷新值,如下所示:
for FS in <replace with back quote> mount | grep ext3 | cut -c 26-43 <replace with backquote> ;do; FSSTAT=df | grep $FS; if [ ! -n "$FSSTAT" ]; ... do somehting; else; ... do something else; fi; done
我很抱歉,处理格式给了一个不好看的代码