按照Linux(Unix)的设计,所有的设备都是文件。
比如打印机是文件,一块硬盘是一个文件,这块硬盘上的一个分区也是文件,声卡是文件。这种表示一个设备的文件叫做设备文件。设备文件保存在/dev这个目录里。

如果你把数据保存到打印机这个设备文件里,打印机就开始打印;如果你把音频输入到声卡这个设备文件里,电脑就开始唱歌了。

而硬盘的设备文件就有意思了。一块硬盘是一个设备文件,一般是/dev/sda(第一块);而硬盘上的每一个分区也是设备文件,比如第一个分区叫做/dev/sda1,第二个是/dev/sda2。
你可以直接读写硬盘的设备文件,但是,你得到的是硬盘的原始数据,几乎是0/1这样的二进制。因此,你可以直接像修改文件一般的修改硬盘的分区表等结构。而每一个分区也是一个设备文件,同样,你得到的是原始数据。

但是,没有人可以手工修改0101,来复制文件、删除文件。为了使你操作里面的数据,而不是原始010101,就需要进行挂载。比如,你把/dev/sda1挂到了/boot上,此时,驱动程序就会将01的原始数据转换成能操作的结构,并装到/boot上,此时,对/boot的修改同等于修改/dev/sda1,只不过你可以复制、删除等,而不是看到0101的原始数据。而你复制、删除等操作,将被驱动转换成原始数据,并直接保存到设备文件,这对你来说是透明的。

“在windows下面,什么数据放在什么C盘还是D盘,一目了然。可是在linux下我不只到放在某个目录下的文件到底实际放在哪个盘里。”Linux认为,这是没有意义的。无论保存到哪里,都是保存。举个例子,如果你在Windows下的D盘电影文件夹满了,就同等于整个D盘分区满了。那么你需要到另一个分区再建立一个保存你的电影。这对生产环境是灾难,因为这样往往不行,最后还要调整分区(先不说LVM和动态卷,它会影响理解)

而在Linux下,如果你需要一个电影文件夹,你可以把它挂载到一个250GB的硬盘上,来储存全部电影。但是你的电影文件夹该在哪里就在哪里,不用奔波于C、D、E、F。这对生产环境来说是相当方便的。

另外,如果你就是要把数据存到你的U盘,而不是别的地方,你可以专门建一个U盘的文件夹,然后特意挂载一下即可。如果你想知道你的分区挂载在哪里,就输入命令df。

如果你安装了图形界面,那么它会自动将你的设备挂载到/media/的一个自动建立的文件夹下,而且你在图形界面中看到的和C、D、E没什么区别,只不过叫做xxxGB文件系统。

最后说一句,Windows也是有挂载的,但是微软把它隐藏的很深,但是仍能看出些眉目来。

via.http://bbs.csdn.net/topics/380197703

最后修改:2017 年 02 月 19 日 06 : 03 AM