文章目录
为什么使用systemd来挂载文件系统而不使用fstab?使用fstab的时候如果设备被移除会导致系统启动失败,无法进入系统(只能进入临时修复系统),systemd则没有这个问题。
假设我们新增加了1个硬盘sda,并且将它划分了1个分区, sda1,则需要为这个分区选择挂载点,以便开机后可以直接使用。 我们建立了1个文件夹 /mnt/data,对应上述的硬盘分区。
要想使用systemd实现自动挂载,必须要建立对应的“.mount”文件,放置在/etc/systemd/system/这个文件夹下面就可以,文件的命名方式,是将要挂载到的目的文件夹的绝对路径中的斜杠给成横线, 例如 /mnt/data 则对应的.mount文件就是:mnt-data.mount,可以有更多层的目录,如xxx-xxx-xxx.mount
。
下面以/dev/sda1 开机挂载到 /mnt/data为例:
一、挂载本地磁盘
1 |
vim /etc/systemd/system/xxx-xxx.mount |
以下为配置内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
[Unit] Description = mount disk [Mount] What = /dev/sda1 Where = /mnt/data Type = ext4 Options = defaults [Install] WantedBy = local-fs.target |
如果硬盘要经常抽取、更换等,则可以将 what=/dev/sda1 改成用UUID来表示的形式,如下:
1 2 3 4 5 6 7 8 9 |
[Unit] Description=mount a local disk [Mount] What=UUID=daf79ec6-d3a9-4aec-b46d-95f1edc5a275 Where=/mnt/data Type=ext4 Options=defaults [Install] WantedBy=local-fs.target |
UUID 可以用 # ls -l /dev/disk/by-uuid 这条命令显示出来,What中不能出现空格,否则会挂载失败。
二、文件夹向文件夹挂载
进行文件夹向文件夹mount,也就是 bind mount。
假设我要将 /home/disk1/wenxian 这个文件夹进行共享,但不想重新配置samba,而是将其bind mount到已有的共享文件夹 /home/share/ 目录下新建的wenxian 文件夹中。 类似的手动挂载命令:
1 |
mount --bind /home/disk1/wenxian /home/share/wenxian |
若要使用systemd的自动挂载功能,则同样需要建立.mount文件,这里的命名为: home-share-wenxian.mount
1 |
vi /etc/systemd/system/home-share-wenxian.mount |
内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 |
[Unit] Description=bind mount a file DefaultDependencies=no Conflicts=umount.target Before=local-fs.target umount.target [Mount] What=/home/disk1/wenxian Where=/home/share/wenxian Type=none Options=bind [Install] WantedBy=local-fs.target |
注意 Type 的参数更改为了 none,Options的参数设定为 bind
同样的,将该文件设定为开机自动运行即可
1 |
systemctl enable home-share-wenxian.mount |
三、挂载网络文件系统
1 |
vim /etc/systemd/system/xxx-xxx-xxx.mount |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
[Unit] Description = Mount NFS disk [Mount] What = nfs.example.com:/export/scratch Where = /mnt/data/nfs Type = nfs Options = defaults [Install] WantedBy = multi-user.target |
四、自动挂载
1 |
vim /etc/systemd/system/xxx-xxx-xxx.automount |
1 2 3 4 5 6 7 8 9 10 |
[Unit] Description = Auto Mount NFS disk [Automount] Where = /mnt/data/nfs [Install] WantedBy = multi-user.target |
五、开启关停
1 2 3 4 5 6 7 8 |
systemctl start xxx-xxx-xxx.mount systemctl stop xxx-xxx-xxx.mount systemctl disable xxx-xxx-xxx.mount systemctl statu xxx-xxx-xxx.mount #如果使用automount,则必须使用: systemctl enable xxx-xxx-xxx.automount #没用使用automount,则使用: systemctl enable xxx-xxx-xxx.mount |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# systemctl is-enabled mnt-scratch.mount disabled # systemctl is-enabled mnt-scratch.automount enabled # systemctl start mnt-scratch.automount # ls /mnt/scratch >/dev/null # systemctl status mnt-scratch.automount ● mnt-scratch.automount - Automount Scratch Loaded: loaded (/etc/systemd/system/mnt-scratch.automount; enabled; vendor preset: disabled) Active: active (running) since Mon 2016-04-18 10:49:04 CEST; 4h 33min ago Where: /mnt/scratch Apr 18 10:49:04 oat systemd[1]: Set up automount Automount Scratch. Apr 18 10:49:14 oat systemd[1]: mnt-scratch.automount: Got automount request for /mnt/scratch, triggered by 20266 (zsh) # systemctl status mnt-scratch.mount ● mnt-scratch.mount - Scratch Loaded: loaded (/proc/self/mountinfo; disabled; vendor preset: disabled) Active: active (mounted) since Mon 2016-04-18 10:49:16 CEST; 4h 33min ago Where: /mnt/scratch What: nfs.example.com:/export/scratch Apr 18 10:49:14 oat systemd[1]: Mounting Scratch... Apr 18 10:49:16 oat systemd[1]: Mounted Scratch. |
六、设置定时关机功能
这里需要用到 systemd 自带的timer工具,以及 systemd-poweroff.service 这个服务,在/usr/lib/systemd/system 目录中
先建立定时关机文件,命名为 auto-poweroff.timer
1 |
vi /etc/systemd/system/auto-poweroff.timer |
内容如下:
1 2 3 4 5 6 7 8 9 10 |
[Unit] Description=Atuo Poweroff Every Day [Timer] # Power off every day at 22:05 OnCalendar=Mon,Tue,Wed,Thu,Fri,Sat,Sun *-*-* 22:05:00 Unit=systemd-poweroff.service [Install] WantedBy=timers.target |
将该文件设定为开机自动运行即可
1 |
systemctl enable auto-poweroff.timer |
七、重要事项:
(以下内容非常重要,可能直接导致挂载失败。)
- mount文件名称必须要与你挂载路径一致,把路径里的「/」换成「 -」,例如本例要挂的目录为
/mnt/data
,则文件名称必须为mnt-data.mount
。可以多层目录如xxx-xxx-xxx.mount
。 - 如果挂载nfs的话需要安装nfs客户端:
1 2 |
yum install -y nfs-utils apt-get install -y nfs-common |
-
- 找好很久很久才找到的内容,也正是这篇文章,才使得我真正用上systemd的挂载系统。《Automatic mounts with systemd》。
转载至: https://nlye.top/DffNu
原文链接:https://blog.csdn.net/lggirls/article/details/100297311
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://www.3rc.cc/?p=237
共有 0 条评论