fstab与mtab

2024-01-29 16:32
文章标签 fstab mtab

本文主要是介绍fstab与mtab,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

mtab的内容

proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
devfs /dev devfs rw 0 0
devpts /dev/pts devpts rw 0 0

我们对照fstab内容
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
devfs /dev devfs defaults 0 0
devpts /dev/pts devpts defaults 0 0

fstab说明了我们需要挂载的文件系统,即在此声明的文件系统,我们的系统才能识别、挂载
mtab说明在我们的系统中当前实际挂载的文件系统,包括具体的属性(defaults默认实际挂载会显示属性为rw)

fstab 和 mtab 的区别
2007年10月27日 星期六 01:40
fstab 文件想必大家都很熟悉,记录了计算机上硬盘分区的相关信息,启动 Linux 的时候,检查分区的 fsck 命令,和挂载分区的 mount 命令,都需要 fstab 中的信息,来正确的检查和挂载硬盘。

除了 fstab 文件之外,还有一个 mtab 文件,和 fstab 文件一样在 /etc 文件下,位于 /etc/mtab ,这个文件又是干什么用的呢?

我们可以看一下 mtab 文件的内容 (这是我电脑上的 mtab 文件内容):

cat /etc/mtab

/dev/sda4 / reiserfs rw,noatime 0 0
proc /proc proc rw,nosuid,nodev,noexec 0 0
sysfs /sys sysfs rw,nosuid,nodev,noexec 0 0
udev /dev tmpfs rw,nosuid 0 0
devpts /dev/pts devpts rw,nosuid,noexec 0 0
/dev/sda2 /boot ext2 rw,noatime 0 0
shm /dev/shm tmpfs rw,noexec,nosuid,nodev 0 0
/dev/sda1 /mnt/winxp ntfs rw,utf8,umask=0 0 0
usbfs /proc/bus/usb usbfs rw,noexec,nosuid,devmode=0664,devgid=85 0 0
/dev/sdb5 /media/SWAP vfat rw,nosuid,nodev,shortname=lower,uid=1000 0 0
乍看上去,和 fstab 文件的结构和内容基本相同,但是不同的是,mtab 文件记录的是,当前已挂载的分区信息。
每当 mount 挂载分区、umount 卸载分区,都会动态更新 mtab,mtab 总是保持着当前系统中已挂载的分区信息,fdisk、df 这类程序,必须要读取 mtab 文件,才能获得当前系统中的分区挂载情况

/etc/fstab和/etc/mtab是什么关系?
具体说说看?-----/etc/fstab是个配置文件,

而/etc/mtab则显示的是已经被挂载的fs的清单文件 PS:个人观点

FSTAB 和 MTAB 文件
这是两个很危险的文件!没有他们,计算机将找不到驱动器设备和分区。修改前一定要做好备份。

/etc/fstab
本文件描述了各种不同的文件系统。"fsck"和"mount"等命令都需要这些文件才能工作。看起来有点复杂,不过其实只要我们把这个文件拆分成下面几个部分后,一切都会变得很清晰。清往下看:
(另一种理解:/etc/fstab 文件的存在价值就是,让计算机内的程序能知道如何寻找各个分区)
例:
< 分区 >< 挂载点 >< 文件系统 > < 选项 >< dump >< fsck order >
/dev/hdb1 . . . . / . . . . . . . . . . . . ext3 . . . . . . . . . defaults . . . . . . . 1 . . . . . . . . . 1
/dev/hdb6 . . . . /home. . . . . . . ext3 . . . . . . . . . defaults . . . . . . . 1 . . . . . . . . . 2
/dev/hdb5 . . . . swap . . . . . . . . swap . . . . . . . . defaults . . . . . . . 0 . . . . . . . . . 0
/dev/hda1 . . . . /mnt/win_c vfat . . . iocharset=iso8859-1,codepage=850,umask=0 0 0
none . /mnt/cdrom . . supermount dev=/dev/hdc,fs=auto,ro,–,iocharset=iso8859-1,codepage=850,umask=0 0 0
none . /mnt/floppy supermount dev=/dev/fd0,fs=auto,–,iocharset=iso8859-1,sync,codepage=850,umask=0 0 0
/dev/sda1 /mnt/memory_card auto user,iocharset=iso8859-1,kudzu,codepage=850,noauto,umask=0,exec 0 0
前面列比较好理解,<分区><文件系统><加载选项>。比较特殊的是最后两列,重点说明一下
dump:转存列,被转存工具调用,用来决定是否备份文件系统。1表示备份,0表示不备份。本文档不会涉及转存工具的工作细节。
fsck order:fsck顺序列,表明系统启动时,fsck 检查文件系统的顺序。0表示不检查,CD和软盘之类的可以动存储设备需要指定为这个值。大于1的值告诉fsck启动时需要检查这个文件系统。数字大小决定开机时检测这个文件系统的顺序。

/etc/mtab
这个文件记录已经加载的设备,本文件在 mount 命令执行后自动更新
另外,本文件和 fstab看起来很相像,但是又不完全相同(注意 rw 和 ro 是 keduxie 和 只读 的意思),本文件中列出的,都是已经加载好的设备
例:
/dev/hdb1 / ext3 rw 0 0
none /proc proc rw 0 0
none /proc/bus/usb usbdevfs rw 0 0
none /dev devfs rw 0 0
none /dev/pts devpts rw,mode=0620 0 0
/dev/hdb6 /home ext3 rw 0 0
none /mnt/cdrom supermount ro,dev=/dev/hdc,fs=auto,–,iocharset=iso8859-1,codepage=850,umask=0 0 0
none /mnt/cdrom2 supermount ro,dev=/dev/scd0,fs=auto,–,iocharset=iso8859-1,codepage=850,umask=0 0 0
none /mnt/floppy supermount rw,sync,dev=/dev/fd0,fs=auto,–,iocharset=iso8859-1,codepage=850,umask=0 0 0
/dev/hda1 /mnt/windows vfat rw,iocharset=iso8859-1,codepage=850,umask=0 0 0
/dev/hdb7 /usr ext3 rw 0 0
/dev/sda1 /mnt/memory_card vfat rw,nosuid,nodev,iocharset=iso8859-15,codepage=850,umask=0,user=julia 0 0

請問 /etc/mtab 與/etc/fstab 有什麼不同呢 ?
fstab - static information about the filesystems
The file fstab contains descriptive information about the various file systems. fstab is only read by programs, and not written

這是man page說得

man mount有一段
The programs mount and umount maintain a list of currently mounted file systems in the file /etc/mtab. If no arguments are given to mount,this list is printed

所以說 有mount上的filesystem會出現在/etc/mtab

fstab只是讓你是先設定一下mount point跟一些mount option 沒有的話其實也可以mount

白話的說…
fstab 是系統開機時用來判斷那些要 mount 上來的設定檔
(這個檔案是死的!)
而…
mtab 則是根據你現行系統已經 mount 上了那些會自行更新
(這個檔案是活的!)

认识/etc/fstab和/etc/mtab文件
/etc/fstab文件的作用

文件/etc/fstab存放的是系统中的文件系统信息。当正确的设置了该文件,则可以通过"mount /directoryname"命令来加载一个文件系统,每种文件系统都对应一个独立的行,每行中的字段都有空格或tab键分开。同时fsck、mount、umount的等命令都利用该程序。

/etc/mtab文件的作用:

记载的是现在系统已经装载的文件系统,包括操作系统建立的虚拟文件等;而/etc/fstab是系统准备装载的。直接使用mount和确定就是通过查询它而来的。

fstab文件格式:

下面是/etc/fatab文件的一个示例行:

fs_spec   fs_file  fs_type   fs_options  fs_dump fs_pass

/dev/hda1  /     ext2    defaults    1     1

其中:

fs_spec:设备名或者设备卷标名。该字段定义希望加载的文件系统所在的设备或远程文件系统,对于一般的本地块设备情况来说:IDE设备一般描述为/dev/hdaXN,X是IDE设备通道(a, b, or c),N代表分区号;SCSI设备一描述为/dev/sdaXN。对于NFS情况,格式一般为“IP:directory”: ,例如:`knuth.aeb.nl:/'。对于procfs,使用`proc'来定义。 当然,此列可以使用加载分区的label名称来代替具体的分区名称。fs_file:设备挂载目录。该字段描述希望的文件系统加载的目录点,对于swap设备,该字段为none;对于加载目录名包含空格的情况,用40来表示空格。 fs_type:设备文件系统。此项定义了该设备上的文件系统,一般常见的文件类型为ext2 (Linux设备的常用文件类型)、vfat(Windows系统的fat32格式)、NTFS、iso9600等。 fs_options:挂载参数。指定加载该设备的文件系统是需要使用的特定参数选项,多个参数是由逗号分隔开来。对于大多数系统使用"defaults"就可以满足需要。其他常见的选项包括:   

选项
含义

ro
read only以只读模式加载该文件系统

sync
不对该设备的写操作进行缓冲处理,这可以防止在非正常关机时情况下破坏文件系统,但是却降低了计算机速度

user
允许普通用户加载该文件系统

quota
强制在该文件系统上进行磁盘定额限制

noauto
不再使用mount -a命令(例如系统启动时)加载该文件系统

noexec
不允许可执行文件可执行,但千万不要把根分区挂为noexec,那就无法使用系统了,连mount 命令都无法使用了,这时只有重新做系统了

nodev
不允许挂载设备文件

nosuid,nosgid
不允许有suid和sgid属性

nouser
不允许普通用户挂载

 fs_dump:指明是否要备份。该选项被"dump"命令使用来检查一个文件系统应该以多快频率进行转储,若不需要转储就设置该字段为0。0为不备份,1为要备份,一般根分区要备份。fs_pass:指明自检顺序。该字段被fsck命令用来决定在启动时需要被扫描的文件系统的顺序,根文件系统"/"对应该字段的值应该为1,其他文件系统应该为2。若该文件系统无需在启动时扫描,则设置该字段为0。

一个例子:

[root@devdbc root]# nl /etc/fstab

 1  LABEL=/                 /                       ext3    defaults        1 12  LABEL=/boot             /boot                   ext3    defaults        1 23  LABEL=/home             /home                   ext3    defaults        1 24  LABEL=/var              /var                    ext3    defaults        1 25  LABEL=/opt              /opt                    ext3    defaults        1 26  none                    /dev/pts                devpts  gid=5,mode=620  0 07  none                    /proc                   proc    defaults        0 08  /dev/sda3               swap                    swap    defaults        0 09  /dev/sda7               swap                    swap    defaults        0 010  /dev/sda9               swap                    swap    defaults        0 011  /dev/sda8               swap                    swap    defaults        0 012  none                    /dev/shm                tmpfs   defaults        0 013  shmfs /dev/shm shm size=8g 0 014  #archive logs15  /dev/sde1              /archive_log             ext3    defaults        1 116  #cx300_data17  /dev/emcpowerbi1       /cx300_devdbc/data1       ext3    defaults        1 118  /dev/emcpowerbj1       /cx300_devdbc/data3       ext3    defaults        1 119  /dev/emcpowerbh1       /cx300_devdbc/data4       ext3    defaults        1 120  /dev/emcpowerbg1       /cx300_devdbc/data2       ext3    defaults        1 121  #backup directory22 10.1.5.51:/vol/data      /netapp51              nfs     rw,soft,nointr,tcp,vers=3,timeo=600,rsize=32768,wsize=3276823  /dev/cdrom              /mnt/cdrom              udf,iso9660 noauto,owner,kudzu,ro 0 024  /dev/fd0                /mnt/floppy             auto    noauto,owner,kudzu 0 0

[root@devdbc root]# nl /etc/mtab

 1  /dev/sda2 / ext3 rw 0 02  none /proc proc rw 0 03  none /dev/pts devpts rw,gid=5,mode=620 0 04  usbdevfs /proc/bus/usb usbdevfs rw 0 05  /dev/sda1 /boot ext3 rw 0 06  /dev/sda5 /home ext3 rw 0 07  /dev/sda6 /var ext3 rw 0 08  /dev/sda10 /opt ext3 rw 0 09  none /dev/shm tmpfs rw 0 010  /dev/sde1 /archive_log ext3 rw 0 011  ramfs /dev/shm ramfs rw 0 012  /dev/emcpowerbi1 /cx300_devdbc/data1 ext3 rw 0 013  /dev/emcpowerbg1 /cx300_devdbc/data2 ext3 rw 0 014  /dev/emcpowerbj1 /cx300_devdbc/data3 ext3 rw 0 015  /dev/emcpowerbh1 /cx300_devdbc/data4 ext3 rw 0 016  10.1.5.51:/vol/data /netapp51 nfs rw,soft,nointr,tcp,vers=3,timeo=600,rsize=32768,wsize=32768,addr=10.1.5.51 0 0

这篇关于fstab与mtab的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/657502

相关文章

单用户模式下 /etc/fstab文件不能修改的解决办法

1。进入Linux单用户模式      执行 root# mount -o remount,rw /      然后/etc/fstab就可以修改了 2。用光盘进入Linux修复模式 (光盘启动按F2 接着输入linux rescue回车进入)     然后修改fstab     注意进入修复模式后fstab路径为    vi /mnt/sysimage/etc

/etc/fstab、/etc/mtab 文件详解及永久挂载(文件系统、ISO镜像、文件网络共享)

/etc/mtab /etc/mtab 是当前的分区挂载情况,记录的是当前系统已挂载的分区。每次挂载/卸载分区时会更新 /etc/mtab 文件中的信息(执行 mount 命令会改变 /etc/mtab 的信息)。  文件样例 /etc/fstab 系统开机时会主动读取 /etc/fstab 这个文件中的内容,根据文件里面的配置挂载文件系统、ISO镜像和文件网络共享。这样我们只需要将挂

linux系统fstab系统自动挂载磁盘配置文件 /etc/fstab

一、/etc/fstab文件的作用          磁盘被手动挂载之后都必须把挂载信息写入/etc/fstab这个文件中,否则下次开机启动时仍然需要重新挂载。         系统开机时会主动读取/etc/fstab这个文件中的内容,根据文件里面的配置挂载磁盘。这样我们只需要将磁盘的挂载信息写入这个文件中我们就不需要每次开机启动之后手动进行挂载了。 二、挂载的限制     在说明这个文件

Linux mount 挂载出现疑难问题;mount can‘t find in /etc/fstab

当挂载出现 “mount can't find in /etc/fstab” 疑难问题时,你需要检查挂载的虚拟文件目录是否已经被创建成功。 或者挂载路径不是一个文件目录,而不是一个文件。 如果是文件你就删除它,并且在重建为目录类型,如果这样都无法解决,那么说明问题需要更进一步尝试分析处理。 检查 /etc/fstab 文件是否存在,如果不存在就需要用 find / -name

在fstab文件中配置UUID方式自动挂载数据盘、swap、目录(**)

linux如何挂在硬盘,自动挂载和手动挂载(详细说明)https://gitcode.csdn.net/65eedcea1a836825ed7a06f4.html 解决linux重启后磁盘挂载失效的问题  https://blog.csdn.net/sugarbliss/article/details/107033034 linux /etc/fstab 文件详细说明(整理版) https

/etc/mtab与/proc/mounts

现在的 Linux 系统里一般都有这么三个文件:/etc/fstab,/etc/mtab,和 /proc/mounts,比较容易让人迷惑。简单解释一下。 This file provides a list of all mounts in use by the system: [cpp] view plain copy rootfs / rootfs rw 0 0   /proc

关于Arch Linux挂载磁盘时的“无法在/etc/fstab中找到”报错【启动挂载】

在挂载/dev/sdc4这个区时,出现的标题所说的报错 在其中提到了/etc/fstab,用vim打开这个文件时发现sdc4并不在文件中 而fstab决定了linux在启动时的动作:挂载某个分区到指定路径上   用文件上方说明中提到的blkid寻找信息 blkid   //显示设备中所有设备的[路径] 及其信息blkid /dev/[硬盘号]   显示指定的硬盘信息//例如[s

ubuntu系统更改了/etc/fstab文件后无法进入系统,解决办法!

背景: ubuntu更改了/etc/fstab文件后,重启无法进入系统,比如设置硬盘自动挂载之类的。 说明: /etc/fstab是linux系统的文件系统表。 在进入系统前是通过检查此文件来加载相应的分区文件系统(被记录到本文件中的所有文件分区都是在开机之后自动加载)。 一旦此文件有错误直接导致文件中配置的分区无法自动加载到系统中。 (比如我遇到的问题是无法进入到图形界面中去,因为我把硬

开源书签管理程序Mtab网站源码,附带视频搭建教程

源码介绍 跨设备同步,无忧切换:别再为找不到书签或笔记而焦虑。Mtab书签确保你的浏览轨迹、珍藏网址与关键笔记在任意设备上如影随形。手机、平板、PC到Mac,信息随手可得。 全浏览器适配,无拘无束:不论你钟爱Chrome、Firefox、Edge还是Safari,Mtab书签都能在这些浏览器的工具箱中为你守护那一份重要数据。 功能丰富,一应俱全:Mtab书签不仅是书签的归宿,更是你随身的