unix系统中的挂载(mount)

unix系统中的挂载(mount)

我经常遇到挂载(mount)这个词,但是我一直没有理解这个词的真正含义。特总结如下。

参考文献

[1] https://unix.stackexchange.com/questions/3192/what-is-meant-by-mounting-a-device-in-linux


Unix系统有一棵单一的目录树。这个目录树有且仅有一个。任何设备如果想要通过unix系统被访问到,都unix目录树上有一个关联的位置。

unix系统和Windows系统不同。Windows系统会为每一个存储设备分配一个新的目录树。正如我们经常看到的那样,C盘一个目录,D盘一个目录,E盘一个目录。C盘,D盘,E盘属于不同的存储设备,所以Windows为不同的磁盘新创了一个目录树。但是unix则不同,整个文件系统就是一颗树。要想通过unix系统访问其他的存储设备,这个存储设备必须挂到unix目录树上来。

挂载:就是将一个存储设备关联到unix目录树某个位置。

举个例子,当unix系统启动时,一个特殊的存储设备(通常被叫做根分区)会被关联到unix目录树的根部,也就是说,这个特殊的存储设备被挂载到了/(根目录)。

再举个例子,现在假设你想要访问CD-ROM上的文件。你必须要将CD-ROM挂载到目录树的某个位置上。这个过程可能会在你将光盘插入到Unix电脑的那一刻已经自动完成了。 假设CD-ROM设备是 /dev/cdrom , 这个被选择的挂载点是/media/cdrom. 相应的挂载命令就是:

mount /dev/cdrom /media/cdrom

在上面这个命令运行完毕之后,a file whose location on the CD-ROM is /dir/file is now accessible on your systems as media/cdrom/dir/file. 当你结束使用这个光盘之后,你就可以运行下面两个命令中的任意一个将光盘退出。

umount /dev/cdrom/ 

或者

unmount /media/cdrom

这两个命令都可以达到unmount的目的。

但是,我们通常都是在图形化界面上通过eject或者safely remove来完成存储设备的unmount步骤的。

联合文件系统

既然这里说到了unix系统中的挂载,我想在这里顺便讲解一下联合文件系统的概念。联合文件系统是一类文件系统。联合文件系统允许多个文件系统叠加,并表现为一个单一的文件系统。文件夹中的文件可以来自多个文件系统,但是如果有两个文件的路径完全相同,最后挂载的文件则会覆盖较早前挂载的文件。

个人感觉,可以通过Unix系统的挂载来理解联合文件系统。

你可能感兴趣的:(Unix)