一、/etc/fstab文件的作用

  磁盘被手动挂载之后都必须把挂载信息写入/etc/fstab这个文件中,否则下次开机启动时仍然需要重新挂载。

  系统开机时会主动读取/etc/fstab这个文件中的内容,根据文件里面的配置挂载磁盘。这样我们只需要将磁盘的挂载信息写入这个文件中我们就不需要每次开机启动之后手动进行挂载了。


二、挂载的限制

    在说明这个文件的作用之前我想先强调一下挂载的限制。

1、根目录是必须挂载的,而且一定要先于其他mount point被挂载。因为mount是所有目录的跟目录,其他木有都是由根目录 /衍生出来的。

2、挂载点必须是已经存在的目录。

3、挂载点的指定可以任意,但必须遵守必要的系统目录架构原则

4、所有挂载点在同一时间只能被挂载一次

5、所有分区在同一时间只能挂在一次

6、若进行卸载,必须将工作目录退出挂载点(及其子目录)之外。

 

三、/etc/fstab文件中的参数

下面我们看看看/etc/fstab文件,这是我的linux环境中/etc/fstab文件中的内容

[root@ ~]# cat /etc/fstab

#


#
# /etc/fstab
# Created by anaconda on Tue Feb 16 02:46:03 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=6121ee3b-fe66-4b99-b61c-edbd40f87422 /                       ext4    defaults        1 1
UUID=40a33812-b123-418e-add6-765d8884e9ca /boot                   ext4    defaults        1 2
UUID=6b3ff35f-da8b-405b-a349-6776dadedbf0 swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/sda4               /data1                  xfs     defaults        1 2
UUID=528245ee-b4d1-4c9b-b52f-0bccfd2cfc19  /data2   xfs   defaults  1 2
UUID=bbc30f84-70aa-4233-aa47-606a0ef01e75  /data3   xfs   defaults  0 0


在文件中我已经把每一列都做出来表示方便识别,我们可以看到一共有六列。

第一列 Device

        磁盘设备文件或者该设备的Label或者UUID

1)查看分区的label和uuid

 Label就是分区的标签,在最初安装系统是填写的挂载点就是标签的名字。可以通过查看一个分区的superblock中的信息找到UUID和Label name。

例如我们要查看/dev/sda1这个设备的uuid和label name

[root@ u02]# dumpe2fs -h /dev/sda1

$ dumpe2fs -h /dev/sda1
dumpe2fs 1.41.12 (17-May-2010)
Filesystem volume name:   <none>
Last mounted on:          /boot
Filesystem UUID:          40a33812-b123-418e-add6-765d8884e9ca
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              51200
Block count:              204800
Reserved block count:     10240
Free blocks:              158241
Free inodes:              51162
First block:              1
Block size:               1024
Fragment size:            1024
Reserved GDT blocks:      256
Blocks per group:         8192
Fragments per group:      8192
Inodes per group:         2048
Inode blocks per group:   256
RAID stride:              4
Flex block group size:    16
Filesystem created:       Tue Feb 16 02:35:32 2016
Last mount time:          Mon Mar 14 13:04:48 2016
Last write time:          Mon Mar 14 13:04:48 2016
Mount count:              8
Maximum mount count:      -1
Last checked:             Tue Feb 16 02:35:32 2016
Check interval:           0 (<none>)
Lifetime writes:          45 MB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               128
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      9e0568d1-da80-46a8-b116-e07bac57c0c1
Journal backup:           inode blocks
Journal features:         (none)
Journal size:             4096k
Journal length:           4096
Journal sequence:         0x00000024
Journal start:            0

通过下面这个命令blkid 来查看uuid

 blkid  |sort 
/dev/sda1: UUID="40a33812-b123-418e-add6-765d8884e9ca" TYPE="ext4" 
/dev/sda2: UUID="6121ee3b-fe66-4b99-b61c-edbd40f87422" TYPE="ext4" 
/dev/sda3: UUID="6b3ff35f-da8b-405b-a349-6776dadedbf0" TYPE="swap" 
/dev/sda4: UUID="71d35b53-1b72-4e84-a88b-47f9c6463ef1" TYPE="xfs" 
/dev/sdb: UUID="528245ee-b4d1-4c9b-b52f-0bccfd2cfc19" TYPE="xfs" 
/dev/sdc: UUID="650a21b1-1875-41f7-bd79-d4a27ce53640" TYPE="xfs" 
/dev/sdd: UUID="959e68d8-215e-43b5-bc4d-e32ce41496bf" TYPE="xfs" 
/dev/sde: UUID="4898ab43-1270-4f39-8e56-6c44f9070ef6" TYPE="xfs" 
/dev/sdf: UUID="bdee9783-5a20-4ece-953e-ae4ad8f2df02" TYPE="xfs" 
/dev/sdg: UUID="3d1c823b-6638-4320-b9d6-e73de5762176" TYPE="xfs" 
/dev/sdh: UUID="53a5dfc5-c678-4573-b9da-e9fc6cd98a00" TYPE="xfs" 
/dev/sdi: UUID="2e831076-31d1-4f07-af1d-7d50968d9e21" TYPE="xfs" 
/dev/sdj: UUID="60411ed1-4f88-4aed-9d89-25427aa61c92" TYPE="xfs" 
/dev/sdk: UUID="3cb76b32-dedf-4f59-acb9-1d2cd2dfa1bc" TYPE="xfs" 
/dev/sdl: UUID="7e7f2def-a58d-4d7e-8473-df904537e3a7" TYPE="xfs" 
/dev/sdm: UUID="773c6298-cfa7-4874-bae3-2428707655e5" TYPE="xfs"

2)使用设备名和label及uuid作为标识的不同

   使用设备名称(/dev/sda)来挂载分区时是被固定死的,一旦磁盘的插槽顺序发生了变化,就会出现名称不对应的问题。因为这个名称是会改变的。

不过使用label挂载就不用担心插槽顺序方面的问题。不过要随时注意你的Label name。

至于UUID,每个分区被格式化以后都会有一个UUID作为唯一的标识号。使用uuid挂载的话就不用担心会发生错乱的问题了。

 

第二列 Mount point :设备的挂载点,就是你要挂载到哪个目录下。

 

第三列 filesystem  :磁盘文件系统的格式,包括ext2、ext3、reiserfs、nfs、vfat等

 

第四列 parameters文件系统的参数

Async/sync  设置是否为同步方式运行,默认为async

auto/noauto  当下载mount -a 的命令时,此文件系统是否被主动挂载。默认为auto

rw/ro      是否以以只读或者读写模式挂载

exec/noexec  限制此文件系统内是否能够进行"执行"的操作

user/nouser  是否允许用户使用mount命令挂载

suid/nosuid  是否允许SUID的存在

Usrquota  启动文件系统支持磁盘配额模式

Grpquota  启动文件系统对群组磁盘配额模式的支持

Defaults  同事具有rw,suid,dev,exec,auto,nouser,async等默认参数的设置

 

第五列:能否被dump备份命令作用

         dump是一个用来作为备份的命令。通常这个参数的值为0或者1

         0  代表不要做dump备份

         1  代表要每天进行dump的操作

         2  代表不定日期的进行dump操作

 

第六列 是否检验扇区

开机的过程中,系统默认会以fsck检验我们系统是否为完整(clean)。

0   不要检验

1   最早检验(一般根目录会选择)

2   1级别检验完成之后进行检验