Linux中使用systemd挂载文件系统

本文介绍在Systemd环境下如何管理和配置文件系统的挂载与自动挂载,包括使用systemd进行挂载的基本操作和自动挂载的设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



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

TechTarget中国原创内容,原文链接:http://www.searchdatacenter.com.cn/showcontent_83553.htm

### 回答1: systemd 在引导过程中会挂载文件系统。在大多数情况下,这是在内核完成初始化并运行第一个用户空间进程之后发生的。 具体来说,systemd 会在内核完成设备枚举和初始化后,并且在执行第一个用户空间进程之前,挂载文件系统。这个进程通常是 `systemd-initctl`。 ### 回答2: systemd是一个Linux系统的init系统和服务管理器。它在系统启动的过程中,负责控制各个进程的启动和管理。 对于挂载文件系统systemd在整个启动过程中的早期阶段就会进行。具体来说,systemd会在系统引导和加载内核之后立即进行根文件系统挂载。 要实现这一过程,systemd会读取/boot目录下的配置文件,例如bootloader(如GRUB)提供的配置文件,或者systemd专用的配置文件。通过这些配置文件,systemd可以确定正确的根文件系统分区,并将其挂载到对应的挂载点上。 在根文件系统挂载之前,systemd还会进行一些其他重要的操作,如加载必要的驱动程序、激活关键系统服务等。这些操作的成功与否对系统的正常启动起着至关重要的作用。 总的来说,systemdLinux系统引导的早期阶段就会挂载文件系统。通过合理的配置文件和有序的操作,systemd可以确保根文件系统的正确挂载,从而保证系统能够正常启动并提供各种服务。 ### 回答3: systemd是一个负责管理和控制Linux操作系统的init系统和系统管理守护进程。在Linux系统启动过程中,systemd负责挂载文件系统。 具体来说,在Linux系统启动时,BIOS或UEFI引导加载程序会启动initramfs(init ramdisk),这是一个压缩文件系统,包含了用于挂载文件系统所需的初始化程序、驱动程序和工具等。initramfs会被加载到内存中,并运行其中的init程序。 init程序的任务之一就是在启动阶段挂载文件系统。它会根据配置文件中的指示,查找并识别根文件系统所在的设备,并将其挂载到指定的挂载点。 systemd在这个过程中发挥重要作用。init程序会调用systemd的相关功能,以实现根文件系统挂载systemd会在系统启动过程中检测可用的存储设备,并识别出根文件系统所在的设备。然后,它会根据挂载点的配置信息,在指定的挂载点将根文件系统成功挂载上。 需要说明的是,systemd不仅仅在启动阶段挂载文件系统,它还负责其他相关的系统初始化和管理任务,如进程管理、服务管理和日志记录等。它的设计目标是提供更加高效、可靠和可扩展的系统启动和管理方式,以满足现代化Linux系统的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值