![Linux快速入门与实战:基础知识、容器与容器编排、大数据系统运维](https://wfqqreader-1252317822.image.myqcloud.com/cover/769/43806769/b_43806769.jpg)
2.2.5 挂载
挂载(Mount)是Linux中非常重要的一个概念,它用于挂载Linux下的存储设备。例如Linux下使用硬盘、U盘、光盘或移动硬盘等,都要用到mount。由于mount涉及分区和目录之间的关系,再加上Windows中并未涉及此概念,对于初学者而言,会稍有一点陌生和难理解。因此,本节就对比Windows和Linux两者存储设备的使用区别,来讲解挂载的概念。
1.Windows下的目录结构是以分区为导向
Windows的目录结构如图2-21所示,有C盘、D盘和E盘这3个分区(Partition),每个分区上可以创建不同的文件系统,例如Fat32或NTFS,然后每个分区的文件系统上再创建目录。如果换一台计算机,它的分区不同,那么Windows下目录结构也会不同。当插入U盘或光盘时,对应的分区也会在这一级目录显示。因此说Windows下的目录结构是以分区为导向的。
![](https://epubservercos.yuewen.com/7143D2/23083819001905006/epubprivate/OEBPS/Images/51_04.jpg?sign=1739287750-Hh5TnihaMP4ByiESlkDKYrid3cFLqBWx-0-5e0c3af201d75cac4d3e8ae206ccf55b)
图2-21 Windows目录结构图
2.Linux下的目录结构是以目录为导向
而Linux下的目录结构则看不到分区,只有统一的目录结构,如下所示。不管当前计算机的分区情况是怎样的,Linux的目录结构都是一样的。因此说Linux的目录结构是以目录本身为导向的。
![](https://epubservercos.yuewen.com/7143D2/23083819001905006/epubprivate/OEBPS/Images/52_01.jpg?sign=1739287750-oQWhSkpq54ZBSl75P9ggQ6cwm3o2pjd4-0-50a1eb0a878b8c60cd7b274ffc7b4f73)
那么问题就来了,Linux根目录/是存储在哪呢?它总归要有一个存储的介质。使用df -h命令来查看,结果如下所示,根目录/和/dev/mapper/cl-root是关联在一起的,/dev/mapper/cl-root在Linux中称为逻辑卷(Logic Volume)设备,它的底层是由硬盘分区组成,这里也可以把它理解成硬盘分区,并称之为根分区(root分区)。因此,Linux是一定要有一个根分区的,在根分区上存储了Linux的目录结构。
![](https://epubservercos.yuewen.com/7143D2/23083819001905006/epubprivate/OEBPS/Images/52_02.jpg?sign=1739287750-3PYpbIaAP82FeF1ldbqWtILiXAR6vUIG-0-346c52d0c86df46ff9bcbb071d36292b)
那么Linux下其他的分区如何使用呢?df -h显示了其他分区的使用情况。如下所示,/dev/sda1是硬盘sda的第一个分区,该分区同 /boot相关联(本质上是/dev/sda1上的文件系统同 /boot关联),/boot目录下存储的就是/dev/sda1的内容,向 /boot写入文件,就会写入/dev/sda1的文件系统中。
![](https://epubservercos.yuewen.com/7143D2/23083819001905006/epubprivate/OEBPS/Images/52_03.jpg?sign=1739287750-lJfQDjh6SZkprshODeaTJLH0vvIC3fTL-0-616468ab4555ba151568f13c5023e58f)
3.理解mount
Linux系统启动之初,/boot并未同 /dev/sda1相关联,而是同 /dev/mapper/cl-root相关联的,后来初始化时,才使用mount操作将/dev/sda1同 /boot关联起来。因此,所谓mount就是将文件系统同目录关联起来的一种操作。
关联的目录(如/boot)称之为挂载点(Mount Point)。这样,在一个统一的目录结构下,使用mount就可以将各个分区(对应各种存储设备)与不同的目录关联起来,从而形成一个以目录为导向的存储系统。
下面通过具体操作和说明,来更好地理解mount。
(1)查看/boot及对应分区
1)使用ls命令查看 /boot的内容,如下所示。
![](https://epubservercos.yuewen.com/7143D2/23083819001905006/epubprivate/OEBPS/Images/53_01.jpg?sign=1739287750-q1fnvDA7R3lxWoEVIA3epxxsrwQNVKAF-0-7c5c9eed0d47b2000b5419c9c96eafda)
2)上述命令执行后,所显示的文件和目录,其实都是位于/dev/sda1分区上的。
![](https://epubservercos.yuewen.com/7143D2/23083819001905006/epubprivate/OEBPS/Images/53_02.jpg?sign=1739287750-xPtTglIHZlwoZ2zMn8d1KvrG6pTq8Frp-0-b9c980e7496a438e0b8976bf3b36c904)
(2)重新挂载/boot
1)再使用umount,来解除 /dev/sda1同 /boot之间的关联关系,命令如下。
![](https://epubservercos.yuewen.com/7143D2/23083819001905006/epubprivate/OEBPS/Images/53_03.jpg?sign=1739287750-6UziuJCUxLrP3By0k01y4ekp9y4TRn1F-0-62196303403eeb4a42606fa142059204)
2)再次查看 /boot的内容,命令如下,可以看到之前 /boot下的那些文件和目录都不见了,这是因为此时不是/dev/sda1同 /boot相关联了,而是/dev/mapper/cl-root同 /boot相关联了。
![](https://epubservercos.yuewen.com/7143D2/23083819001905006/epubprivate/OEBPS/Images/53_04.jpg?sign=1739287750-Ss9ujBzk8nQZ0TcqYJXzj1oLdYtS4sn8-0-a34ca859333399401bd57bad13693d6e)
(3)再次挂载/boot
1)使用mount,再次将 /dev/sda1同 /boot关联起来,命令如下。
![](https://epubservercos.yuewen.com/7143D2/23083819001905006/epubprivate/OEBPS/Images/53_05.jpg?sign=1739287750-8lk6elOG5UXmaVgWPHWxobDHgCKYb55o-0-1ea5577374c7b83baba614bb14bc5510)
2)再次查看/boot的内容,命令如下,就又可以看到之前的目录和文件了。其实,将/dev/sda1挂载到其他目录,例如/mnt,ls该目录看到的内容是完全相同的,因为都是/dev/sda1上的内容。
![](https://epubservercos.yuewen.com/7143D2/23083819001905006/epubprivate/OEBPS/Images/53_06.jpg?sign=1739287750-QCznkAc1rciZ2nnJsi0KZSe71DCftJIV-0-a8cf8edb1f35cd61c2ac912fda39a40a)
如果要实现分区自动挂载,可以编辑/etc/fstab,Linux启动后将自动挂载fstab中设置的分区。