博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux中使用systemd挂载文件系统
阅读量:6039 次
发布时间:2019-06-20

本文共 3295 字,大约阅读时间需要 10 分钟。

Systemd为Linux管理员提供处理挂载和自动挂载文件系统的新方式。如果你习惯/etc/fstab以及autofs挂载文件,现在也许要学一些新的方法。

在RHEL7和其他Linux 版本中引进的Linux systemd,不仅可以关闭与开启服务,在安装好RHEL7服务器之后,你也许会对/etc/fstab这个目录感兴趣,这个文件用于管理整个文件系统挂载,刚安装时它几乎是空的,在文件中有系统挂载文件。

在systemd中,主要是加载东西的文件。你需要告诉systemd要挂载的文件,创建挂载单元。输入find / -name "*.mount命令就能够发现早就存在于挂载文件系统中的文件。以下这些代码都是需要学习的例子,它们与system file /usr/lib/systemd/system/tmp.mount的功能是一样的。

这些例子介绍了怎样使用systemd方式挂载Linux文件系统。

[root@localhost etc]# cat /usr/lib/systemd/system/tmp.mount

#  This file is part of systemd.

#

#  systemd is free software; you can redistribute it and/or modify it

#  under the terms of the GNU Lesser General Public License as published by

#  the Free Software Foundation; either version 2.1 of the License, or

#  (at your option) any later version.

[Unit]

Description=Temporary Directory

Documentation=man:hier(7)

Documentation=http://www.freedesktop.org/wiki/Software/systemd/APIFileSystems

DefaultDependencies=no

Conflicts=umount.target

Before=local-fs.target umount.target

[Mount]

What=tmpfs

Where=/tmp

Type=tmpfs

Options=mode=1777,strictatime

# tmp.mount is statically enabled in upstream. In RHEL tmp-on-tmpfs is not used

# by default, but there are cases where it is necessary (anaconda, live images,

# read-only root). Make 'systemctl enable tmp.mount' work:

[Install]

WantedBy=local-fs.target

a.mount目标的结构相对容易理解。重要的信息都在文件中的[mount]部分,与旧版的Linux分布式文件系统挂载方法相比,需要考虑到:挂载什 么、在哪里挂载、使用什么类型。这个文件也指定了下载哪一个系统目标。为了日后备查单元文件,为单元文件做一个简短的描述是必要的如果你自己创立加载单元 文件你需要将mount 文件放到directory /etc/systemd/system目录中。

列表2:为了练习挂载文件,当logical volume /dev/vgdisk/lvtest正在directory /test上挂载时,单元目录看起来是这样的。

[Unit]

Description = test mount

[Mount]

What = /dev/vgdisk/lvtest

Where = /test

Type = ext4

[Install]

WantedBy = multi-user.target

使用systemd挂载文件系统要求管理员启动单元文件,然后通过systemctl start test.mount后面加上systemctl enable test.mount命令使其自动执行。如果你在这时重新启动了计算机,挂载就会自动回滚,因为你已经告诉了systemd在multi- user.target处启动。输入mount | grep test可以检查测试文件同时验证逻辑卷是否挂载到了/test目录下。

再见autofs,你好automount

在新版本:Linux中,Systemd用于控制自动挂载文件系统。自动挂载即当某一目录被访问时系统自动挂载该目录。早期这个任务是由autofs服务来完成的。

在systemd中,你可以创建特定的为你自动执行任务的文件。这个文件需要将名字映射到自动挂载目录。所以,如果/test目录需要自动挂载,你只需要 将单元文件的名字命名为test.automount。每一个自动挂载单元文件都需要有一个相匹配的单元文件。自动挂载单元文件包含 [Automount]部分,有两个选项:路径和目录模式。路径即自动挂载文件系统的绝对路径名。目录模式指定了分配给自动挂载目录的许可,默认为 0755。

以test.mount文件作为例子。假设这个文件不需要时刻都挂载,但是当它被访问时,我们可以通过输入systemctl stop test.mount后面加上systemctl disable test.mount来允许或者阻止该目录被挂载。下一步是,创建一个文件/etc/systemd/system/test.automount然后在 文件中填写如下内容:

[Unit]

Description = test automount

[Automount]

Where = /test

[Install]

WantedBy = multi-user.target

现在使用systemctl start test.automount 以及 systemctl enable test.automountM命令告诉systemd,当该文件被访问时允许加载这个文件单元。在进入/test目录之前输入mount | grep test测试systemd是否工作了。在访问/test目录之后,同样输入该命令。当显示systemd-1时则证明/test文件已经被挂载;在进入 文件系统后你将会看到/test文件。

通过运行以下测试验证自动挂载。

[root@localhost system]# mount | grep test

systemd-1 on /test type autofs (rw,relatime,fd=29,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)

[root@localhost system]# cd /test

[root@localhost test]# mount | grep test

systemd-1 on /test type autofs (rw,relatime,fd=29,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)

/dev/mapper/vgdisk-lvtest on /test type ext4 (rw,relatime,seclabel,data=ordered)

如果你想要避免使用这种新的方式挂载与自动挂载文件系统,Linux systemd的向下兼容版本中包含了旧有的方法。然而,要想真正了解你的服务器,你需要花点时间去研究一下Linux版本的systemd和一些其他的改变。

作者:Sander van Vugt   译者:王丹红   来源:TechTarget中国

转载地址:http://bkrhx.baihongyu.com/

你可能感兴趣的文章
【面试次体验】堆糖前端开发实习生
查看>>
基于apache实现负载均衡调度请求至后端tomcat服务器集群的实现
查看>>
C#+QQEmail自动发送邮件
查看>>
[Hadoop]MapReduce多输出
查看>>
Android Activity详解(一)
查看>>
快准车服完成3000万元A+轮融资,年底将开始B轮融资
查看>>
让我去健身的不是漂亮小姐姐,居然是贝叶斯统计!
查看>>
MySQL 数据约束
查看>>
我的友情链接
查看>>
SERVLET容器简介与JSP的关系
查看>>
《服务器SSH Public Key认证指南》-补充
查看>>
我的友情链接
查看>>
Java break continue return 的区别
查看>>
算法(Algorithms)第4版 练习 1.3.4
查看>>
jquery easyUI checkbox复选项获取并传后台
查看>>
浅析NopCommerce的多语言方案
查看>>
设计模式之简单工厂模式
查看>>
C++中变量的持续性、链接性和作用域详解
查看>>
2017 4月5日上午
查看>>
Google Chrome开发者工具
查看>>