linux自动挂载分区(/etc/fstab|uuid)(代码片段)

XavierJiezou XavierJiezou     2022-12-05     223

关键词:

摘要

本文探讨如何在 Linux 开机的时候自动挂载分区。

引言

在上一篇文章中,我们讲述了如何在 Linux 中使用 mount 命令手动挂载分区,但这样的挂载不是永久的,只要重启系统,原先手动挂载好的分区就没了,你还得重新挂载,十分麻烦。

好在 Linux 提供了开机自动挂载分区的功能,我们可以通过一个名为 /etc/fstab 的配置文件,来指定需要在开机时挂载的分区。

使用 cat 命令查看 /etc/fstab 文件。其中以 # 打头的是注释行,基本是就是对文件的一些说明,可以忽略。

root@centos:~# cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sdb2 during installation
UUID=e804b980-479c-41e3-95dd-2772bf4422fc /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/sdb1 during installation
UUID=173C-5F1B  /boot/efi       vfat    umask=0077      0       1
/swapfile                                 none            swap    sw              0       0
UUID=11fc041c-5574-4fcc-85f8-c50da2f24d1a /data ext4  defauts 0 0

其它未被注释的行分别对应于在开机时会被自动挂载的分区,每行都有六个字段:

  • 第一字段:指定了要挂载的设备,可以是一个 /dev 目录下的设备文件,例如 /dev/sdd1,也可以通过设备标签或者所谓的 UUID 来指定要挂载的设备,如 LABEL=某个设备标签UUID=某个设备UUID。用设备标签或 UUID 更加安全和稳定。
  • 第二字段:挂载点。指定了挂载设备的目录。对于 swap 是没有挂载点,该处就显示 swap。
  • 第三字段:挂载分区文件系统类型。定义了该设备上的文件系统。一般常用的文件系统类型为 ext4,swap 或者 iso9600。
  • 第四字段:挂载参数。指定文件系统挂载后的一些行为属性。多个参数用逗号分隔。defauts 表示默认挂载参数。
  • 第五字段:dump 参数。被 dump 命令使用,来检查一个文件系统是否应该进行 dump 备份。不需要就设置为 0,如果需要每天备份,设置为 1,不定期备份,设置为 2。
  • 第六字段:开机检查分区的次序。该字段被 fsck 命令来确定系统开机时进行文件系统检查的顺序。对于根分区,这个值为 1,表示优先。其它文件系统可以设置为 2,表示次优,如果为 0 或没有设置,开机跳过此文件系统的检查。

例如,将 sdd1 设置开机自动挂载到 /project/finshed,仅需要打开 /etc/fstab 文件,在末尾添加一行:/dev/sdd1 /project/finshed ext4 defaults 0 0

root@centos:~# vi /etc/fstab # 添加一行 /dev/sdd1 /project/finshed ext4 defaults 0 0

最后,我们检查一下 /etc/fatab 中的配置是否正确。无需重启,只要用 mount -a,它会依据 /etc/fatab 文件将所有未挂载的分区都挂载好;还有 swapon -a,它会依据 /etc/fatab 文件将所有未启用的交换分区都开启。此时,我们文件系统开机自动挂载就配置好了。

但是,按照上述做法挂载分区,在某些情况下可能遇到问题。假设主机上有若干块可以热插拔的硬盘,在主机运行的过程中,这些硬盘会被经常插拔,因此硬盘次序,包括硬盘的设备名会经常改变,如 sdb 在下次会变成 sdc。显然,如果遇到这样的问题,自动挂载就会出问题。

如何保证 /etc/fstab 文件中的设备能够正确的挂载到挂载点上呢?这时候就要用到前面提到的标签或 UUID 了。标签就是给分区起的有意义的别名。对于有多个硬盘的系统,并且硬盘次序可能发生改变的情况,标签可能会很有帮助。

为分区加上标签的命令十分简单,使用 e2label 分区设备名 标签名 命令即可。

root@centos:~# e2label /dev/sdd1 part1
root@centos:~# vi /etc/fstab # 添加一行 LABEL=part1 /project/finshed ext4 defaults 0 0

但标签挂载分区也是有缺点的,因为标签不具有唯一性,因此有时会碰到两个分区的标签重名的情况。如用标签来挂载,系统就无法确定要挂载哪个分区了。

事实上,最保险的方法就是通过分区设备的 UUID 来挂载文件系统。每个分区都有一个唯一的 UUID,准确地来说,UUID 是一个标识系统中存储设备的字符串。

不管它们是什么类型的,它都可以用来表示光盘驱动器,USB 存储设备以及系统硬盘分区。与设备名或设备标签相比,其优点如下:

  • 真正的唯一标识符(设置名会变,标签可能重名)
  • 不变性(无论如何插拔或调换顺序它总是不变的)

UUID 根据分区的不同,长度和格式都可能会不相同。使用 blkid 命令可以获取设备的 UUID:

root@centos:~# blkid
...
/dev/sdd1: UUID="05a1eb34-fc9d-4f90-adaf-7d15a4624563" TYPE="ext4" PARTUUID="052c9058-01"
/dev/sdd5: UUID="4b1ff6f0-63e1-46ee-a39d-f3f85eef5344" TYPE="ext4" PARTUUID="052c9058-05"
/dev/sdd6: UUID="5037-D97B" TYPE="vfat" PARTUUID="052c9058-06"
/dev/sdd7: UUID="5f85dd52-fdb6-42ed-920a-7c45b4a90d04" TYPE="ext4" PARTUUID="052c9058-07"
/dev/sdd8: UUID="a9a5244d-d063-4a8e-96e7-8e2157a3be32" TYPE="ext4" PARTUUID="052c9058-08"

接下来,我们尝试使用 UUID 来挂载 sdd1:

root@centos:~# vi /etc/fstab # 添加一行 UUID=05a1eb34-fc9d-4f90-adaf-7d15a4624563 /project/finshed ext4 defaults 0 0

参考

中国大学 MOOC | Linux 系统管理 | 主题 07 管好硬盘 | 小节 4 自动挂载分区

linux如何取消开机自动挂载

因为我的是sata硬盘,我的Fedora8每次开机都会自动挂载Windows分区到Media下,个人用起来很不习惯,想把Windows分区挂在MNT里。可是当我辛苦地把它自动挂载的分区删除然后挂在MNT里,只要一重启,我手动挂载的分区就没了,而Media... 查看详情

linux如何实现开机自动挂载硬盘

有两块硬盘,一个要求开机后自动挂载到/qq目录下,要怎么做?基本上所有Linux发行版在启动系统时都是根据/etc/fstab文件的配置来挂载分区的。在/etc/fstab中,根据不同格式的分区,其挂载参数也不同,参数不同其结果不同,包括用... 查看详情

linux下/etc/fstab文件详解

...光盘挂载到文件系统中。/etc/fstab就是在开机引导的时候自动挂载到linux的文件系统。在linux中/etc/fstab的数据项如下所示:/dev/devicemountpointtyperules0order例如这是一个普通的/etc/fstab:/dev/hda2/ext3defaults01/dev/hda3swapswapdefaults00/dev/hda5/usrext... 查看详情

linux初学者求助,更改/etc/fstab后仍无法自动挂载

如图,想要把/dev/sdb1和/dev/sdb5设置成自动挂载,但重启后并没有成功,但是使用名利mount-a和手动挂载均能成功挂载,求助,用的是rhel7linux在读取/etc/fstab文件时,是按照从上至下的顺序进行读取的,在你的/etc/fstab中已经将/dev/cdr... 查看详情

linux如何自动挂载分区?

...。然后:wq保存退出。5重启后,df -h可以看到sdb1已经被自动加载了。 查看详情

fstab文件

如何实现自动挂载?        系统启动的时候,自动读取/etc/fstab文件进行分区挂载,只需要按默认格式把分区写入进去保存就行了什么是fstab文件?     有7个字段设备文件名或UUID挂... 查看详情

分区表fstab

开机自动挂载分区 方法两种:cat/etc/fstabls/etc/rc.localvi/etc/fstab/dev/sdb5 /mnt/ ext4 defaultsdefaults=rw,suid,dev,exec,auto,nouser,async/sync02mount-a自动加载配置文件里面的所有配置mount/dev/sdb1/home/hank/123//vi/etc/rc. 查看详情

计算机磁盘管理

...展swap空间,查看扩展后的swap分区​修改/etc/fstab文件设置自动挂载sdb1、sdb2、sdb3三个分区文件系统,重启验证自动挂载​实验步骤:​管理Linux操作系统,添加新的硬盘40G​创建三个分区,第一个分区和第二个分区大小5G​第一... 查看详情

如何在ubuntu上自动挂载磁盘分区

参考技术A如果要让每次重新启动ubuntu时,都将磁盘自动挂载到系统,需要修改/etc/fstab文件:先用fdisk-l查看一下所有磁盘的信息:然后在/etc/fstab文件中配置要挂载的磁盘:#/etc/fstab:staticfilesysteminformation.##<filesystem><mountpoint... 查看详情

linux磁盘挂载及创建分区(代码片段)

...盘挂载成为/data第五步:将信息写入fstab,让系统开启自动挂载。命令:echo"/dev/sdb1/dataxfsdefaults00">>/etc/fstabecho“/dev/sdb1/dataext4defaults00”>>/etc/fstab卸载分区命令sudoumount/dev/vdb1删除/etc/fstab中的配置sudofdisk/dev/vdb1... 查看详情

linux文件系统挂载fstab(代码片段)

...统的信息,应用程序读取这个文件,然后根据其内容进行自动挂载的工作。比如我们执行mount-a命令就会按序挂载/etc/fstab中指定的每条文件系统(除非添加了noauto选项)。fstab文件中记录的排序十分重要。因为fsck,mount或umount等... 查看详情

/etc/fstab坏了导致linux无法启动解决

...ab坏了导致linux无法启动解决/etc/fstab由于/etc/fstab中原来的挂载设备不存在了,导致linux因无法挂载无法启动(当然也可能是你写的/etc/fstab语法有错儿导致的)。这时linux会提示你输入root密码来进入系统解决问题。但当进入系统修... 查看详情

自动挂载

自动挂载自动挂载设置重启或执行mount-a命令用UUID号设置自动挂载重启或执行mount-a命令查看挂载;df命令:df-h显示容量LVM逻辑卷管理加一块硬盘磁盘分区创建物理卷把sdc3添加到vg00物理卷创建一个110M的逻辑卷,格式化。创建文件... 查看详情

linux自动挂载分区出错!

...型,因为默认是ext3,然后挂载到/home下没有问题,但是想自动挂载,所以打开vi/etc/fdstab。在最后一行写下了/dev/sdb1/homeext3default,usrquota,grpquota00.然后保存退出。问题就来了,我使用mount/home却无法挂上去,然后mount/dev/sdb1/home可以... 查看详情

linux分区基础

...展swap空间,查看扩展后的swap分区​修改/etc/fstab文件设置自动挂载sdb1、sdb2、sdb3三个分区文件系统,重启验证自动挂载​ 查看详情

linux中在/etc/fstab文件中,noauto参数的作用是?

...,则用命令vi/etc/fstab来修改。当系统启动的时候,系统会自动地从这个文件读取信息,并且会自动将此文件中指定的文件系统挂载到指定的目录。下面我来介绍如何在此文件下填写信息。文件示例一个简单的/etc/fstab,使用内核... 查看详情

linux挂载磁盘怎么开机

...在开机后可以检查fstab文件,如果有相应的设定,系统会自动挂载到指定的位置。另外也可以在/etc/rc.local中定义挂载磁盘的shell脚本,以实现开机时自动生效。参考技术A要想在开机时实现挂载磁盘,首先需要修改/etc/fstab下的文... 查看详情

深度 deepin linux如何自动挂载磁盘

...4cf70100pg0i.html可以通过配置/etc/fstab文件来实现系统启动时自动进行挂载。在启动过程中,init进程会自动读取/etc/fstab配置文件中的内容,并挂载相应的文件系统,因此,只需要将自动挂载的设备和挂载点信息加入到fstab配置文件... 查看详情