当前位置: > Linux教程 > Linux学习 >

使用/etc/fstab完成文件系统的挂载

时间:2015-12-20 01:22来源:linux.it.net.cn 作者:IT
介绍
      Linux系统中/etc/fstab是一个文本文件,系统引导时自动加载文件系统的配置文件,每个文件系统(包括分区或者设备)用一行来描述,在每一行中,用空格或TAB符号来分隔各个字段,文件中以#开头的行是注释信息。 fstab文件中的记录的排序也很重要。因为 fsck,mount或umount等程序在做它们的工作时会按此顺序进行,按约定RHEL用文件系统挂载点作标签来指定设备。
暂时不想使用的文件系统可用#注释掉,方便日后重新启用
/etc/mtab, 此文件实时反映系统中挂载的文件系统,其显示格式与/etc/fstab 一致。

example
#
# /etc/fstab
# Created by anaconda on Sun Nov 20 15:16:50 2011
#
# 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
#
<fs>                                                                                    <mountpiont>  <type> <opts>   <dump/pass>
UUID=e5d9736b-cf07-4bfe-a686-8c007c9ae347      /                             ext4    defaults        1 1
UUID=2b00d6a6-45fd-4f34-98bc-0c0a760ec14e     /boot                     ext4    defaults        1 2
UUID=47981aa4-f28b-4ac7-9126-4adbd53243a9    /fedora                  ext4    rw                   1 2
UUID=054cfc38-954a-45da-9526-561c6c92c7f0      /home                    ext4    defaults         1 2
UUID=83b5a64c-4013-4f0b-881a-2f4ab7ce2f5f       /share                     ext4    rw                   1 2
UUID=000F-F278          /study                  vfat    umask=0,rw,iocharset=gb2312          0 0
UUID=2A1D-0905          /winxp                  vfat    umask=0,rw,iocharset=gb2312          0 0

#普通用户挂载fat32 ntfs 分区有W权限
UUID=48d2c510-3c6b-4422-8792-8046ac65a792 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
/study/rhel-server-6.0-i386-dvd.iso /mnt/rheliso udf,iso9660 loop        0 0
/study/Fedora-16-i386-DVD.iso  /mnt/fedora16iso         udf,iso9660 loop        0 0
#自动挂载ISO, 为避免挂载错误,可以使用指令在/etc/rc.d/rc.local 中添加指令来自动挂载ISO

192.168.100.20:/home    /mnt     nfs     defaults   0 0
#NFS挂载, 服务器名称/ip地址:共享目录   挂载点 文件类型  挂载选项 备份频率 检查选项

/dev/mapper/name     /cryptest   ext4     defaults     1  2
#挂载luks 设备时name 需要下/etc/crypttab 中设置的name 一致

//192.168.1.3/game    /media        cifs     -o username=Joen%password   0 0

none /tmp tmpfs defaults 0 0


文件内容解析
设备文件  挂载点  文件系统类型  mount参数  dump参数  fsck顺序
文件系统所在的设备或者文件系统标签:使用文件系统标签可避免因删减分区或者添加SCSI设备等造成设备名改变而使/etc/fstab文件混淆   ,挂载的形式, /dev/sda1 , LABEL=/home , UUID=  ..
挂载点, 特殊的是swap ,无挂载点.
文件系统类型;/proc/filesystems   auto ….
option: default值为rw,ruid,dev,exec,auto,nouser,async
dump_freq 工具备份标志,现在已很少使用dump,0,1作标记, 是否使用dump备份
fsck_order启动时fsck(文件系统检查(FileSystem ChecK))的检查顺序(是否需要自检),1保留给/root,2 除/root 外所有要检查的文件系统,0启动时不检查 ,非零代表检查的顺序


挂载形式
LABEL=/           /        ext4        defauts        1 1
/dev/sda1          /boot        ext4        defauts        1 2
uuid=xxx-xxx-xxx  /test  ext4  default  0 0
用户可以通过blkid <设备名>查询设备的文件系统类型与UUID,RHEL 6 中习惯是使用UUID挂载设备(名称固定)持久的设备命名方式通常是使用设备唯一的UUID,也常用于开机后自动挂载iSCSI上的文件系统
LABEL=labelname    与/dev/sdaX(设备名)等价,可用于mount 命令和fstab中.
swap 分区行不需要挂载点

挂载选项

共享挂载选项
共享挂载参数一般是两个一组且互斥。
async/sync
执行时是否使用同步读取方式
auto/noauto
mount -a时是否自动挂载,开机自动挂载
exec/noexec
该文件系统中的执行文件是否允许执行
atime/noatime
文件被改动时是否更新访问时间
dev/nodev
是否启用这个文件系统上的设备节点文件(块和字符设备)
suid/nosuid
在这个文件系统上是否要启用特殊权限
user/nouser
是否允许普通用户执行mount 命令
rw/ro
文件系统是可读写还是只读挂载
default
相当于rw,suid,dev,exec,auto,nouser,async 的组合
noexec:不允许可执行文件执行,可防止用户上传恶意可执行代码,但千万不要把根分区挂载为noexec,那就无法使用系统了,连mount命令都无法使用了,这时只有重新做系统了!

noatime 关闭atime特性,提高性能,这是一个很老的特性,放心关闭,还能减少loadcycle
defaults 使用默认设置。等于rw,suid,dev,exec,auto,nouser,async,具体含义看下面的解释。
自动与手动挂载:
auto 在启动或在终端中输入mount -a时自动挂载
noauto 设备(分区)只能手动挂载
读写权限:
ro 挂载为只读权限
rw 挂载为读写权限
可执行:
exec 是一个默认设置项,它使在那个分区中的可执行的二进制文件能够执行
noexec 二进制文件不允许执行。千万不要在你的root分区中用这个选项!!!
I/O同步:
sync 所有的I/O将以同步方式进行
async 所有的I/O将以非同步方式进行
户挂载权限:
user 允许任何用户挂载设备。 Implies noexec,nosuid,nodev unless overridden.
nouser 只允许root用户挂载。这是默认设置。
临时文件执行权限:
suid Permit the operation of suid, and sgid bits. They are mostly used to allow users on a computer system to execute binary executables with temporarily elevated privileges in order to perform a specific task.
nosuid Blocks the operation of suid, and sgid bits.


文件系统特定挂载选项
usrquota, grpquota
启用对用户和群组磁盘配额功能的选项.
_netdev
  iSCSI 等设备的挂载,避免网络启动前挂载出现错误
acl
只有ext 文件系统支持的选项功能


关于卷标
由于设备文件名可能在硬盘结构发生变化时更动,因此RHEL对ext2文件系统使用卷标来挂载与卸载。更换设备时,更改设备的卷标即可,卷标与设备文件无关,它记录在文件系统中的超级块中。
用户可以用e2label指令来查询与更改ext2/ext3文件系统的卷标, 使用卷标后,用户可以使用LABEL=labelname来取代命令行中的设备名称。
用卷标名挂载文件系统,一般直接以挂载点命名,或者明显区分其用途的名称。
mount  –L   jb  /myjb
mount  LABEL=jb  /myjb

不同的文件系统,需要用不同的工具来设置卷标
Mtools 适用于 FAT32 格式分区.
ntfsprogs 适用于 NTFS 格式分区.
e2label适用于 ext2 和 ext3 型格式分区.

sudo e2label /dev/xxx labelname
sudo ntfslabel /dev/xxx labelname


开机自动加载光驱
修改/etc/fstab
/dev/cdrom    /mnt/cdrom  udf,iso9660 noauto,owner,kudzu 0 0
/dev/cdrom    /mnt/cdrom  udf,iso9660 auto          0 0
/dev/cdrom    /mnt/cdrom   udf,iso9660  defaults  0 0

Linux下挂载NTFS分区
ntfs3g和ntfsprogs包提供了Linux系统下管理NTFS分区的功能,其中ntfs3g只提供挂载ntfs分区的功能,更多ntfs分区管理操作需要使用ntfsprogs(ntfsmount, mkntfs,ntfslabel)
yum install ntfs3g
mount -t ntfs3g /dev/  mount_point



/etc/fstab 恢复
光盘启动进入恢复模式下手动编辑/etc/fstab进行恢复,完成后使用mount/umount来测试是否可以正常挂载。
其中的信息参考来源有
fdisk -l
mount
/etc/mtab

命令
fuser -v /usr 查询如哪个用户在使用文件系统
df
du
fsck
e2label
mount


(责任编辑:IT)
------分隔线----------------------------