Linux中使用systemd挂载文件系统

日期: 2014-07-14 作者:Sander van Vugt翻译:王丹红 来源:TechTarget中国 英文

Systemd为Linux管理员提供处理挂载和自动挂载文件系统的新方式。如果你习惯/etc/fstab以及autofs挂载文件,现在也许要学一些新的方法。在RHEL7和其他Linux 版本中引进的Linux systemd,不仅可以关闭与开启服务,在安装好RHEL7服务器之后,你也许会对/etc/fstab这个目录感兴趣,这个文件用于管理整个文件系统挂载,刚安装时它几乎是空的,在文件中有系统挂载文件。 在systemd中,主要是加载东西的文件。

你需要告诉systemd要挂载的文件,创建挂载单元。输入find / -name “*.mount命令就能够发现早就存在于挂载文件系统中的文……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

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和一些其他的改变。

翻译

王丹红
王丹红

编辑

相关推荐