1. Windows系统
先说熟悉的Windows系统,mount挂载,就是给磁盘分区提供一个盘符(C,D,E,…)。比如插入U盘后系统自动分配给了它I:
盘符其实就是挂载,退U盘的时候进行安全弹出,其实就是卸载unmount。
2. Linux系统
Linux系统下,不像Windows可以有C,D,E,多个目录,Linux只有一个根目录/
。在装系统时,我们分配给linux的所有区都在/
下的某个位置,比如/home
等等。插入新硬盘,分了新磁盘区sdb1。它现在还不属于/
。在命令行不知怎么访问它的目录,比如无法使用cd或者ls。也无法在编程时指定一个目录对它操作。这时使用mount /devisdb1 ~/Share/
,把新硬盘的区sdb1挂载到工作目录的~/Share/
文件夹下,之后访问这个~Share/
文件夹就相当于访问这个硬盘的sdb1分区了。对/Share/
的任何操作,都相当于对sdb1里文件的操作。
所以Linux下,mount挂载的作用,就是将一个设备(通常是存储设备)挂接到一个已存在的目录上。访问这个目录就是访问该存储设备。
Linux将所有的设备都看作文件,它将整个计算机的资源都整合成一个大的文件目录。我们要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的目录上,然后通过访问这个目录来访问存储设备。挂载就是把设备放在一个目录下,让系统知道怎么管理这个设备里的文件,了解这个存储设备的可读写特性之类的过程。
虽然/dev
是个目录,但/dev/sdb1
不是目录。可以发现ls/dev/sdb1
无法执行。/dev/sdb1
,是一个类似指针的东西,指向这个分区的原始数据块。mount前,系统并不知道这个数据块哪部分数据代表文件,如何对它们操作。
插入CD,系统其实自动执行了 mount /dev/cdrom /media/cdrom
。所以可以直接在/media/cdrom
中对CD中的内容进行管理。
3. 总结
Windows的挂载是给磁盘分区分配盘符如C: D:
,Linux的挂载是给磁盘分区分配目录如/mydata