什么是挂载,Linux挂载如何实现详解

挂载指的就是将设备文件中的顶级目录连接到 linux 根目录下的某一目录(最好是空目录),访问此目录就等同于访问设备文件 。
Linux 系统中“一切皆文件”,所有文件都放置在以根目录为树根的树形目录结构中 。在 inux 看来,任何硬件设备也都是文件,它们各有自己的一套文件系统(文件目录结构) 。

因此产生的问题是,当在 Linux 系统中使用这些硬件设备时,只有将Linux本身的文件目录与硬件设备的文件目录合二为一,硬件设备才能为我们所用 。合二为一的过程称为“挂载” 。
如果不挂载,通过Linux系统中的图形界面系统可以查看找到硬件设备,但命令行方式无法找到 。
并不是根目录下任何一个目录都可以作为挂载点,由于挂载操作会使得原有目录中文件被隐藏,因此根目录以及系统原有目录都不要作为挂载点,会造成系统异常甚至崩溃,挂载点最好是新建的空目录 。
例如:
我们想通过命令行访问某个 U 盘中的数据,图 1 所示为 U 盘文件目录结构和 Linux 系统中的文件目录结构 。
什么是挂载,Linux挂载如何实现详解

文章插图
 
可以看到,目前 U 盘和 Linux 系统文件分属两个文件系统,还无法使用命令行找到 U 盘文件,需要将两个文件系统进行挂载 。
如何把U盘文件挂载到系统文件中?
1、我们在文件根目录下新建一个目录 /sdb-u,通过挂载命令将 U 盘文件系统挂载到此目录,挂载效果如图 2 所示 。
什么是挂载,Linux挂载如何实现详解

文章插图
 
2、实现命令
3、可以看到,U 盘文件系统已经成为 Linux 文件系统目录的一部分,此时访问 /sdb-u/ 就等同于访问 U 盘
根目录下的 /dev/ 目录文件负责所有的硬件设备文件,事实上,当 U 盘插入 Linux 后,系统也确实会给 U 盘分配一个目录文件(比如 sdb1),就位于 /dev/ 目录下(/dev/sdb1),但无法通过 /dev/sdb1/ 直接访问 U 盘数据,访问此目录只会提供给你此设备的一些基本信息(比如容量) 。
总之,Linux 系统使用任何硬件设备,都必须将设备文件与已有目录文件进行挂载 。
Linux命令扩展:1、df 命令
用于显示 Linux 系统中各文件系统的硬盘使用情况,包括文件系统所在硬盘分区的总容量、已使用的容量、剩余容量等 。
df 命令的基本格式为:
[root@localhost ~]# df [选项] [目录或文件名]
df命令常用选项及作用
-a: 显示所有文件系统信息,包括系统特有的 /proc、/sysfs 等文件系统;
-m: 以 MB 为单位显示容量;
-k: 以 KB 为单位显示容量,默认以 KB 为单位;
-h: 使用人们习惯的 KB、MB 或 GB 等单位自行显示容量;
-T: 显示该分区的文件系统名称;
-i: 不用硬盘容量显示,而是以含有 inode 的数量来显示 。
【例 1】
[root@localhost ~]# dfFilesystem 1K-blocks Used Available Use% Mounted on/dev/hdc2 9920624 3823112 5585444 41% //dev/hdc3 4956316 141376 4559108 4% /home/dev/hdc1 101086 11126 84741 12% /boottmpfs 371332 0 371332 0% /dev/shm不使用任何选项的 df 命令,默认会将系统内所有的文件系统信息,以 KB 为单位显示出来 。本例中,由 df 命令显示出的各列信息的含义分别是:
  • Filesystem:表示该文件系统位于哪个分区,因此该列显示的是设备名称;
  • 1K-blocks:此列表示文件系统的总大小,默认以 KB 为单位;
  • Used:表示用掉的硬盘空间大小;
  • Available:表示剩余的硬盘空间大小;
  • Use%:硬盘空间使用率 。如果使用率高达 90% 以上,就需要额外注意,因为容量不足,会严重影响系统的正常运行;
  • Mounted on:文件系统的挂载点,也就是硬盘挂载的目录位置 。
【例 2】
[root@localhost ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/hdc2 9.5G 3.7G 5.4G 41% //dev/hdc3 4.8G 139M 4.4G 4% /home/dev/hdc1 99M 11M 83M 12% /boottmpfs 363M 0 363M 0% /dev/shm这里使用了 -h 选项,因此文件系统的各种容量数据,会以人们习惯的单位(通常使用 GB 或 MB)显示出来 。
【例 3】
[root@localhost ~]# df -h /etcFilesystem Size Used Avail Use% Mounted on/dev/hdc2 9.5G 3.7G 5.4G 41% /这里在 df 命令后添加了目录名,在这种情况下,df 命令会自动分析该目录所在的分区,并将所在分区的有关信息显示出来 。由此,我们就可以知道,该目录下还可以使用多少容量 。


推荐阅读