linux学习:硬盘挂载

1.Windows下的挂载:mount,就是给磁盘分区提供一个盘符(C,D,E,...),以达到可以访问它的目的。比如插入U盘后系统自动分配给了它I:盘符其实就是挂载,退优盘的时候进行安全弹出,其实就是卸载:unmount。

2.Linux下,首先要明白:Linux下,一切皆文件!包括设备!所以磁盘分区也会作为一个文件。 linux不像Windows可以有C,D,E,多个目录,Linux只有一个根目录/。在装系统时,我们分配给linux的所有区都在/下的某个位置,比如/home等等。

3.当我们插入了新硬盘,分了新磁盘区sdb1(/dev目录下)。但你还无法使用,它目前只是一个文件,你无法将它用作一个存储空间。

4.我们虽然可以在一些图形桌面系统里找到它的位置,但在命令行却不知怎么访问它的目录,比如无法使用cd或者ls。也无法在编程时指定一个目录对它操作。

5.这时提问者使用了 mount /dev/sdb1 ~/Share/ ,把新硬盘的区sdb1挂载到工作目录的~/Share/文件夹下,之后访问这个~/Share/文件夹就相当于访问这个硬盘2的sdb1分区了。对~/Share/的任何操作,都相当于对sdb1里文件的操作。这也就是挂载的作用:使用户可以访问这个分区(磁盘)。

6.所以Linux下,mount挂载的作用,就是将一个设备(通常是存储设备)挂接到一个已存在的目录上。访问这个目录就是访问该存储设备。

7.linux操作系统将所有的设备都看作文件,它将整个计算机的资源都整合成一个大的文件目录。我们要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的目录上,然后通过访问这个目录来访问存储设备。挂载就是把设备放在一个目录下,让系统知道怎么管理这个设备里的文件,了解这个存储设备的可读写特性之类的过程。

8.我们不是有/dev/sdb1 吗,直接对它操作不就行了?这不是它的目录吗?

9.这不是它的目录。虽然/dev是个目录,但/dev/sdb1不是目录。可以发现ls/dev/sdb1无法执行。/dev/sdb1,是一个类似指针的东西,指向这个分区的原始数据块。mount前,系统并不知道这个数据块哪部分数据代表文件,如何对它们操作。

10.插入CD,系统其实自动执行了 mount /dev/cdrom /media/cdrom。所以可以直接在/media/cdrom中对CD中的内容进行管理。