/etc/fstab和/etc/mtab是什么关系?

发布网友 发布时间:2022-04-20 05:34

我来回答

3个回答

热心网友 时间:2023-08-30 17:48

这是我从别处引用的,说的很清楚。这个文件最好不要动它,是给你看的,不是给你改的fstab 文件想必大家都很熟悉,记录了计算机上硬盘分区的相关信息,启动 Linux 的时候,检查分区的 fsck 命令,和挂载分区的 mount 命令,都需要 fstab 中的信息,来正确的检查和挂载硬盘。我们可以看一下 mtab 文件的内容 (这是我电脑上的 mtab 文件内容):# cat /etc/mtab/dev/sda4 / reiserfs rw,noatime 0 0proc /proc proc rw,nosuid,nodev,noexec 0 0sysfs /sys sysfs rw,nosuid,nodev,noexec 0 0udev /dev tmpfs rw,nosuid 0 0devpts /dev/pts devpts rw,nosuid,noexec 0 0/dev/sda2 /boot ext2 rw,noatime 0 0shm /dev/shm tmpfs rw,noexec,nosuid,nodev 0 0/dev/sda1 /mnt/winxp ntfs rw,utf8,umask=0 0 0usbfs /proc/bus/usb usbfs rw,noexec,nosuid,devmode=06,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 文件,才能获得当前系统中的分区挂载情况。

热心网友 时间:2023-08-30 17:49

  /etc/fstab文件记录静态文件系统信息,按照维基百科/etc/fstab上的介绍,该文件记录计算机硬盘分区相关信息,启动Linux、mount挂载分区等命令执行都,都会用到fstab信息,看页面示例也是带有:
  <file system> <mount point> <type> <options> <mp> <pass>
文件系统 挂载点 分区类型 挂载选项 mp选项

  这样的格式内容,但天缘自己从Ubuntu 11.04上抓到却是这么个内容,其它细节没看,至少直接打开来查询外部SD卡驱动器路径有点问题。
  # /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <mp> <pass>
# / was on /dev/sda8 ring installation
UUID=f600226f-cc-4b40-b9a8-8888888888888 / ext4 errors=remount-ro 0 1
# swap was on /dev/sda7 ring installation
UUID=3b67dd55-b0ef-4940-a4f1-8888888888888 none
swap sw 0 0

  如果需要解析/etc/fstab,只需参照/etc/fstab的字段定义进行解析即可,具体可参考上文维基百科链接


  /etc/mtab该文件也是记载当前系统已经装载的文件系统,包括一些操作系统虚拟文件,这跟/etc/fstab有些不同。/etc/mtab文件在mount挂载、umount卸载时都会被更新,时刻跟踪当前系统中的分区挂载情况。下图我台式机上的/etc/mtab中的内容:
  /dev/sda8 / ext4 rw,errors=remount-ro 0 0
proc /proc proc rw,noexec,nosuid,nodev 0 0
sysfs /sys sysfs rw,noexec,nosuid,nodev 0 0
none /sys/fs/cgroup tmpfs rw 0 0
none /sys/fs/fuse/connections fusectl rw 0 0
none /sys/kernel/debug debugfs rw 0 0
none /sys/kernel/security securityfs rw 0 0
udev /dev devtmpfs rw,mode=0755 0 0
devpts /dev/pts devpts rw,noexec,nosuid,gid=5,mode=0620 0 0
tmpfs /run tmpfs rw,noexec,nosuid,size=10%,mode=0755 0 0
none /run/lock tmpfs rw,noexec,nosuid,nodev,size=5242880 0 0
none /run/shm tmpfs rw,nosuid,nodev 0 0
none /run/user tmpfs rw,noexec,nosuid,nodev,size=104857600,mode=0755 0 0
none /sys/fs/pstore pstore rw 0 0
systemd /sys/fs/cgroup/systemd cgroup rw,noexec,nosuid,nodev,none,name=systemd 0 0
gvfsd-fuse /run/user/1000/gvfs fuse.gvfsd-fuse rw,nosuid,nodev,user=john 0 0
/dev/sda6 /media/john/BKUP fuseblk rw,nosuid,nodev,allow_other,default_permissions,blksize=4096 0 0

  需要解析/etc/mtab,方法同上,只需了解各个字段的定义即可,/etc/mtab定义如下:驱动器 挂载点 文件系统 读写权限

热心网友 时间:2023-08-30 17:49

可以看一下 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=06,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 文件,才能获得当前系统中的分区挂载情况。
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. When the proc filesystem is mounted (say at
/proc), the files /etc/mtab and /proc/mounts have very similar con-
tents. The former has somewhat more information, such as the mount
options used, but is not necessarily up-to-date (cf. the -n option
below). It is possible to replace /etc/mtab by a symbolic link to
/proc/mounts, but some information is lost that way, and in particular
working with the loop device will be less convenient.

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

/etc/mtab文件的作用:
动态的记录现在系统已经挂载的文件系统,包括操作系统建立的虚拟文件等;而/etc/fstab是为系统启动挂载文件系统准备的。直接使用mount和确定就是通过查询它而来的。
每当 mount 挂载分区、umount 卸载分区,都会动态更新 mtab,mtab 总是保持着当前系统中已挂载的分区信息,fdisk、df 这类程序,必须要读取 mtab 文件,才能获得当前系统中的分区挂载情况。
/etc/fstab 是开机时的设定档,不过,实际 filesystem 的挂载是记录到 /etc/mtab 与 /proc/mounts 这两个档案当中的。每次我们在更动 filesystem 的挂载时,也会同时更动这两个档案喔!但是,万一发生您在 /etc/fstab 输入的资料错误,导致无法顺利开机成功,而进入单人维护模式当中,那时候的 / 可是 read only 的状态,当然您就无法修改 /etc/fstab ,也无法更新 /etc/mtab 啰~那怎么办? 没关系,可以利用底下这一招:
  [root@www ~]# mount -n -o remount,rw /
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com