fstab挂载参数nfs fstab挂载ntfs_linux

/etc/fstab文件描述了系统可以挂载的文件系统的信息,应用程序读取这个文件,然后根据其内容进行自动挂载的工作。比如我们执行mount -a命令就会按序挂载/etc/fstab中指定的每条文件系统(除非添加了noauto选项)。

fstab文件中记录的排序十分重要。因为 fsck,mount或umount等程序在做它们的工作时会按此顺序进行。

以一个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/sda5 during installation
UUID=02c5e115-082c-4ec4-bd13-8cccf82a04be /     ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/sda1 during installation
UUID=8EFB-96A4                    /boot/efi       vfat    umask=0077      0       1
/swapfile                         none            swap    sw              0       0
/dev/fd0                 /media/floppy0  auto    rw,user,noauto,exec,utf8 0       0

第一列和第二列的内容是最简单最直接的,它们的作用就是告诉mount命令,我想挂载什么分区或者什么设备,以及我所希望的挂载点在哪里。在fstab中为某一个设备指定的挂载点是其默认挂载点,也就是当你在挂载目录的时候没有手工指定其他目录的话,系统就将该设备挂载到这个目录。大多数 Linux发行版都会为挂载点创建专门的目录,大多数是在/mnt下,但是一些发行版(比如SUSE或者ubuntu)是在/media下。

如果想把本机上的某个设备(device)挂载上来,写法如:/dev/sda1、/dev/hda2或/dev/cdrom,其中,/dev/sda1 表示第一个串口硬盘的第一个分区,也可以是第一个SCSI硬盘的第一个分区,/dev/hda1表示第一个IDE硬盘的第一个分区,/dev/cdrom 表示光驱。

要挂载的也可以是远程文件系统。做过嵌入式linux开发的朋友都可能知道 mount 192.168.1.56:/home/nfs /mnt/nfs/ -o nolock 命令所代表的意义。它的任务是把IP为192.168.1.56的远程主机上的/home/nfs/目录挂载到本机的/mnt/nfs /目录之下。如果要把它写进/etc/fstab文件中,file system这部分应填写为:192.168.1.56:/home/nfs/。

除了显式的使用设备名,你可以使用设备的UUID(Universally Unique Identifier全局唯一标识符)或设备的卷标签,例如,你可以在这个字段写成“LABEL=root”或“UUID= 3e6be9de- 8139-11d1-9106-a43f08d823a6”,这将使系统更具伸缩性。例如,如果你的系统添加或移除了一个SCSI硬盘,这有可能改变你的设备名,但它不会修改你的卷标签和UUID。

备注:用label表示之前,先要使用e2label创建卷标,如:e2label /dir_1 /dir_2,其意思是说用/dir_2来表示/dir_1的名称。然后,再在/etc/fstab下添加:LABEL=/dir_2 /dir_2 <type> <options> <dump> <pass>。重启后,系统就会将/dir_1挂载到/dir_2目录上。

有多种方式可以获得文件系统的uuid:

vic@ubuntu:~/Desktop$ sudo dumpe2fs /dev/sda5 |grep 'UUID'
dumpe2fs 1.45.5 (07-Jan-2020)
Filesystem UUID:          02c5e115-082c-4ec4-bd13-8cccf82a04be

第三列指示了设备或者分区的文件系统类型。

第四列表示设备或者分区所需要的挂载选项。

auto 和 noauto,控制设备是否自动挂载的选项。

user 和 nouser,user选项允许普通用户也能挂载设备,而nouser则只允许root用户挂载,nouser是默认选项。

exec 和 noexec,exec允许你执行对应分区中的可执行二进制程序,exec是默认选项。

ro,以只读来挂载文件系统。 rw,以可读可写的属性来挂载系统。

sync 和 async,对于该文件系统的输入输出应该以什么方式完成。sync的意思就是同步完成,就是当你拷贝一个东西到设备或者分区中时,所有的写入变化将在你输入cp命令后立即生效,这个东西应该立马就开始往设备或者分区里面拷贝了。而如果是async,也就是输入输出异步完成的话,当你拷贝一个东西到设备或者分区中时,可能在你敲击cp命令后很久,实际的写入操作才会执行,换句话说,就是进行了缓冲处理。

defaults,所有选项全部使用默认配置,包括rw, suid, dev, exec, auto, nouser, 和 async。

第五列是表示dump选项,dump工具通过这个选项位置上的数字来决定文件系统是否需要备份。如果是0,dump就会被忽略,事实上,大多数的dump设置都是0。

第六列是fsck选项,fsck命令(文件系统检测和修复)通过检测该字段来决定文件系统扫描检查/修复顺序,根文件系统/该字段的值应该为1(表示最先检查),其他文件系统通常为2(数字一致的fsck会尝试并发检测)。若文件系统无需在启动时扫描检查,则设置该字段为0。