0
点赞
收藏
分享

微信扫一扫

Linux文件系统的的挂载与卸载(mount、umount)


一、前言

在进行挂载之前,要明确几件事情


  • ​单一文件系统不应该被重复挂载在不同的挂载点(目录)中
  • ​单一目录不应该重复挂载多个文件系统
  • ③重点:​要作为挂载点的目录,理论上应该都是空目录才行
  • ④重点:​系统自动挂载的信息记录在/etc/fstab文件中,只有记录到这个文件中的磁盘在系统启动时才会自动挂载。不在这个文件中记录的磁盘挂载了关机后就自动卸载,开机后又需要自己手动挂载。

承上,为什么③中要求是空目录?原因如下


  • 如果你挂载点的目录不是空的,那么挂载了文件系统之后,挂载点目录下原来的所有文件/目录都会被隐藏
  • 例如:你的/home目录下原来有/home/test1与/home/test2两个目录。如果此时你加入了一个新的磁盘,并将其直接挂载在/home目录下,那么你原来的/home/test1与/home/test2这两个目录都会被隐藏(但不是覆盖)。当你将新的磁盘卸载掉之后,/home目录下原来的东西都会再跑出来

二、文件系统挂载命令:mount


  • 格式:
  • mount  -a
  • mount  [-l]
  • mount  [-t 文件系统]  LABEL=' '  挂载点 ===>使用磁盘的Label name来挂载磁盘
  • mount  [-t 文件系统]  UUID=' '    挂载点 ===>使用磁盘的UUID来挂载磁盘
  • mount  [-t 文件系统]  设备文件名  挂载点 ===>使用磁盘的设备文件名来挂载磁盘

相关参数:


  • -a:依照配置文件/etc/fstab的数据将文件内未挂载的磁盘都挂载上来
  • -l:单纯的输入mount会显示目前挂载的信息,加上-l之后可增列Label名称
  • -t:可以加上文件系统的种类名来指定预挂载的类型。Linux常见支持的类型有:xfs、ext3、ext4、reiserfs、vfat、iso9660(光盘格式)、nfs、cifs、smbfs(后三种是网络文件系统类型)
  • -n:在默认的情况下,系统会将实际挂载的情况即时写入​/etc/mtab​中,以利于其他程序的运行。但是在某些情况下(例如单人维护模式),为了避免问题会刻意不写入,此时就需要加上-n选项
  • -o:后面可以接一些挂载时额外加上的参数。比如:账号、密码、读写权限等,参数如下

async,sync

此文件系统是否使用​同步写入的内存机制​。默认为async

atime,noatime

文件系统是否会修改文件的​读取时间​。为了性能,某些时刻会使用noatime

ro,rw

文件系统是​只读​(ro)还是​可读写​(rw)

auto,noauto

文件系统是否以​mount -a自动挂载

dev,nodev

文件系统是否可​建立设备文件

suid,nosuid

文件系统是否含有​suid/sgid​的文件格式

exec,noexec

文件系统是否拥有可执行的​二进制文件

user,nouser

是否允许文件系统让​任何使用者​执行mount。一般来说,mount仅有root可以进行

defaults

默认值​为:rw、suid、dev、exec、auto、nouser、async

remount

重新挂载​。这在系统出错,或重新更新参数时很有用

codepage=数值


挂载USB移动磁盘时,指定挂载的文件系统所使用的语系。中文语系为:950


iocharset=编码名

挂载USB移动磁盘时,指定移动磁盘的编码。一般有:utf8、Big5

loop

Linux下的文件制作loop设备挂载时时会用到

  • --bind:挂载不特定目录,将一个挂载目录挂载到另一个目录下

注意事项

①承上,我们不需要加上-t这个选项,系统会自动分析最恰当的文件系统来尝试挂载你需要的设备


  • 那么系统是如何找出文件系统类型的呢?​由于文件系统几乎都有超级区块,我们的Linux可以通过分析超级区块搭配Linux自己的驱动程序去测试挂载,如果测试成功,就立刻自动使用该类型的文件系统挂在起来。
  • 系统只会​指定某些部分​的类型的文件系统进行上述的挂载测试(主要参考下面这两个文件)

/etc/filesystems

系统指定的测试挂载文件系统类型的优先级

/proc/filesystems

Linux系统已经加载的文件系统类型

  • 我们Linux支持的文件系统的​驱动程序​都写在如下的目录中
/lib/modules/$(uname -r)/kernel/fs/
例如ext4的驱动程序就写在:/lib/modules/$(uname -r)/kernel/fs//ext4/这个目录下

②系统会将实际挂载的情况即时写入/etc/mtab中​:下面只是部分截图

Linux文件系统的的挂载与卸载(mount、umount)_umount

③单独使用mount也可以查看系统下所有设备文件的挂载情况​:下面只是部分截图

Linux文件系统的的挂载与卸载(mount、umount)_mount_02

④我们尽量使用设备的UUID来挂载目录​。原因:相同的一个磁盘在不同的Linux系统中,文件名是很容易重复的,但是UUID是很难重复的

演示案例

①挂载xfs/ext4/vfat等文件系统

  • 我们使用UUID来挂载一个ext4文件系统类型的/dev/sda3磁盘分区到/data/ext4目录下

Linux文件系统的的挂载与卸载(mount、umount)_文件系统_03

Linux文件系统的的挂载与卸载(mount、umount)_文件系统_04

②挂载CD或DVD光盘(不是镜像文件)

  • 将用来安装Linux的安装光盘/dev/sr0挂载到/data/cdrom下

Linux文件系统的的挂载与卸载(mount、umount)_文件系统的挂载与卸载_05

Linux文件系统的的挂载与卸载(mount、umount)_umount_06

注意事项:


  • 光驱一挂载之后就无法退出光盘了,除非你将它卸载才能够退出
  • 从上图可看出:因为是光盘,所以磁盘使用率为100%。且无法直接写入任何数据到光盘中
  • 此外,如果你使用的是图形界面,那么系统会自动帮你把光盘挂载到/media目录

③挂载vfat中文移动磁盘(USB磁盘)

  • 我将我的USB插入到Linux主机的USB接口上,并挂载到/data/usb目录下(注意:USB移动磁盘是NTFS文件系统格式,Linux需要有NTFS文件系统的驱动程序才可识别)

Linux文件系统的的挂载与卸载(mount、umount)_umount_07

Linux文件系统的的挂载与卸载(mount、umount)_mount_08

注意事项


  • codepage:挂载时指定挂载文件系统所使用的语系。在man mount找到vfat文件格式当中可以使用codepage来处理(中文语系为950)
  • iocharset:指定中文是Unicode还是Big5,因为我的移动磁盘为UTF=-8编码,所以上面选择的是utf8

④重新挂载根目录


  • 整个目录树最重要的就是根目录,所以根目录不能够被卸载
  • 但是如果你的挂载参数改变或是根目录出现只读的状态时,需要重新挂载。方式有:重新启动(reboot)或者使用mount的remount参数
  • 第二种重新挂在方法很重要,尤其是那个remount参数。当你进入单人维护模式时,你的根目录常会被系统挂载为只读,此时就需要这个命令参数

mount -o remount,rw,auto /

⑤挂载不特定目录(挂载多个目录)


  • 概念:​我们可以利用mount将某个目录挂载到另一个目录下。这不是挂载新的文件系统,只是单纯的某个目录挂载到其它另一个目录下而已
  • 方法:​使用符号链接来做链接实现,或者使用下面这种方法(推荐)
  • 下图:我们将原来的/var目录挂载到/data/var目录下,然后使用ls命令可以看到两者链接到同一个inode。也可以使用mount看到/var挂载在/data/var目录下

Linux文件系统的的挂载与卸载(mount、umount)_文件系统的挂载与卸载_09

Linux文件系统的的挂载与卸载(mount、umount)_文件系统的挂载与卸载_10

三、文件系统卸载命令:umount

  • 格式:
umount  [选项]  设备文件名/挂载点
  • 选项:

  • -f:​强制卸载​,可用在类似网络文件系统(NFS)无法读取的情况下
  • -l:立刻卸载文件系统,比​-f还强
  • -n:​不更新​/etc/mtab情况下卸载

注意事项


  • ①文件系统卸载的方式,最后可以是​设备文件名​也可以是​挂载点(建议)​。但是如果你的挂载点被另一个挂载点所挂载,则必须使用挂载点卸载
  • ②如果你当前的路径在你的挂载点内,则你需要​退出​到当前挂载点路径外才可以卸载

演示案例

①将上面③的USB移动磁盘卸载

Linux文件系统的的挂载与卸载(mount、umount)_linux_11

②将上面⑤中的/var/data挂载点卸载掉:​因为/var目录挂载到/data/var下,所以需要先卸载/data/var

Linux文件系统的的挂载与卸载(mount、umount)_mount_12

③将上面②的光盘卸载掉

Linux文件系统的的挂载与卸载(mount、umount)_文件系统的挂载与卸载_13

  • 我是小董,V公众点击"笔记白嫖"解锁更多【Linux入门基础】资料内容。

Linux文件系统的的挂载与卸载(mount、umount)_linux_14


举报

相关推荐

0 条评论