使用/etc/fstab完成文件系统的挂载
介绍
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 查询如哪个用户在使用文件系统
本文出自 “Adelphos” 博客,请务必保留此出处http://adelphos.blog.51cto.com/2363901/1618394