您的位置:首页 > 运维架构 > Linux

linux fstab文件

2015-07-25 08:57 543 查看

/etc/fstab是用来存放文件系统的静态信息的文件。位于/etc/目录下,可以用命令less /etc/fstab 来查看,如果要修改的话,则用命令 vi /etc/fstab 来修改。

当系统启动的时候,系统会自动地从这个文件读取信息,并且会自动将此文件中指定的文件系统挂载到指定的目录。下面我来介绍如何在此文件下填写信息。



文件示例

一个简单的
/etc/fstab
,使用内核名称标识磁盘:

/etc/fstab

# <file system>        <dir>         <type>    <options>             <dump> <pass>
tmpfs                  /tmp          tmpfs     nodev,nosuid          0      0
/dev/sda1              /             ext4      defaults,noatime      0      1
/dev/sda2              none          swap      defaults              0      0
/dev/sda3              /home         ext4      defaults,noatime      0      2

字段定义

/etc/fstab
文件包含了如下字段,通过空格或 Tab 分隔:

<file system>	<dir>	<type>	<options>	<dump>	<pass>


<file systems> - 要挂载的分区或存储设备.
<dir> - <file systems>的挂载位置。
<type> - 要挂载设备或是分区的文件系统类型,支持许多种不同的文件系统:
ext2
,
ext3
,
ext4
,
reiserfs
,
xfs
,
jfs
,
smbfs
,
iso9660
,
vfat
,
ntfs
,
swap
auto
。 设置成
auto
类型,mount 命令会猜测使用的文件系统类型,对 CDROM 和 DVD 等移动设备是非常有用的。
<options> - 挂载时使用的参数,注意有些mount 参数是特定文件系统才有的。一些比较常用的参数有:

auto
- 在启动时或键入了
mount -a
命令时自动挂载。
noauto
- 只在你的命令下被挂载。
exec
- 允许执行此分区的二进制文件。
noexec
- 不允许执行此文件系统上的二进制文件。
ro
- 以只读模式挂载文件系统。
rw
- 以读写模式挂载文件系统。
user
- 允许任意用户挂载此文件系统,若无显示定义,隐含启用
noexec
,
nosuid
,
nodev
参数。
users
- 允许所有 users 组中的用户挂载文件系统.
nouser
- 只能被 root 挂载。
owner
- 允许设备所有者挂载.
sync
- I/O 同步进行。
async
- I/O 异步进行。
dev
- 解析文件系统上的块特殊设备。
nodev
- 不解析文件系统上的块特殊设备。
suid
- 允许 suid 操作和设定 sgid 位。这一参数通常用于一些特殊任务,使一般用户运行程序时临时提升权限。
nosuid
- 禁止 suid 操作和设定 sgid 位。
noatime
- 不更新文件系统上 inode 访问记录,可以提升性能(参见 atime 参数)。
nodiratime
- 不更新文件系统上的目录 inode 访问记录,可以提升性能(参见 atime 参数)。
relatime
- 实时更新 inode access 记录。只有在记录中的访问时间早于当前访问才会被更新。(与 noatime 相似,但不会打断如 mutt 或其它程序探测文件在上次访问后是否被修改的进程。),可以提升性能(参见 atime 参数)。
flush
-
vfat
的选项,更频繁的刷新数据,复制对话框或进度条在全部数据都写入后才消失。
defaults
- 使用文件系统的默认挂载参数,例如
ext4
的默认参数为:
rw
,
suid
,
dev
,
exec
,
auto
,
nouser
,
async
.

<dump> dump 工具通过它决定何时作备份. dump 会检查其内容,并用数字来决定是否对这个文件系统进行备份。 允许的数字是 0 和 1 。0 表示忽略, 1 则进行备份。大部分的用户是没有安装 dump 的 ,对他们而言 <dump> 应设为 0。

<pass> fsck 读取 <pass> 的数值来决定需要检查的文件系统的检查顺序。允许的数字是0, 1, 和2。 根目录应当获得最高的优先权 1, 其它所有需要被检查的设备设置为 2. 0 表示设备不会被 fsck 所检查。

文件系统标识

/etc/fstab
配置文件中你可以以三种不同的方法表示文件系统:内核名称、UUID 或者 label。使用 UUID 或是 label 的好处在于它们与磁盘顺序无关。如果你在 BIOS 中改变了你的存储设备顺序,或是重新拔插了存储设备,或是因为一些 BIOS 可能会随机地改变存储设备的顺序,那么用 UUID 或是 label 来表示将更有效。参见 持久化块设备名称 。

要显示分区的基本信息请运行:

$ lsblk -f

NAME   FSTYPE LABEL      UUID                                 MOUNTPOINT
sda                                                         
├─sda1 ext4   Arch_Linux 978e3e81-8048-4ae1-8a06-aa727458e8ff /
├─sda2 ntfs   Windows    6C1093E61093B594                     
└─sda3 ext4   Storage    f838b24e-3a66-4d02-86f4-a2e73e454336 /media/Storage
sdb                                                           
├─sdb1 ntfs   Games      9E68F00568EFD9D3                     
└─sdb2 ext4   Backup     14d50a6c-e083-42f2-b9c4-bc8bae38d274 /media/Backup
sdc                                                           
└─sdc1 vfat   Camera     47FA-4071                            /media/Camera

内核名称

你可以使用
fdisk -l
来获得内核名称,前缀是
dev
.

标签

注意: 使用这一方法,每一个标签必须是唯一的.
要显示所有设备的标签,可以使用
lsblk -f
命令。在
/etc/fstab
中使用
LABEL=
作为设备名的开头 :

/etc/fstab

# <file system>        <dir>         <type>    <options>             <dump> <pass>

tmpfs /tmp tmpfs nodev,nosuid 0 0
LABEL=Arch_Linux / ext4 defaults,noatime 0 1LABEL=Arch_Swap none swap defaults 0 0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: