100分,什么叫“挂载”,“挂载点”?linux文件系统中的概念。求解释,该如何解决

100分,什么叫“挂载”,“挂载点”?linux文件系统中的概念。求解释
本帖最后由 shimachao 于 2012-02-28 17:31:45 编辑

鸟哥的私房菜中说 将文件系统与目录树结合的操作称为挂载。我还是不理解。为什么在linux下面看不到什么C盘,D盘。
在windows下面,什么数据放在什么C盘还是D盘,一目了然。可是在linux下我不只到放在某个目录下的文件到底实际放在哪个盘里。

也不知道该不该在这里发帖,总觉得这里亲切一点,大家都很热心。

------解决方案--------------------
linux区啊。。。。。为什么来这,还有linux是没什么CD盘的,有的是目录结构。。。
------解决方案--------------------
2、一个分区挂载在一个已存在的目录上,这个目录可以不为空,但挂载后这个目录下以前的内容将不可用。对于其他操作系统建立的文件系统的挂载也是这样。
------解决方案--------------------
需要分区,主分区/dev/hda1,逻辑分区/dev/hda2、、、、之类的
------解决方案--------------------
linux和win32命名法不一样
win32路径中为卷名提供独特的位置
linux中看起来就是一般的目录
------解决方案--------------------
linux 的理念就是everything is file
一些磁盘都用文件来描述了
挂载就是把usb,磁盘什么的 挂在linux的某个目录下,然后通过这个目录去操作,挂载点就是你要挂的那个目录,而且挂载最好自己新建一个目录,因为你挂载完后 ,这个目录以前的文件都会没法使用
------解决方案--------------------
Linux分区方案、文件结构与挂载:http://os.51cto.com/art/201001/175635.htm
------解决方案--------------------
linux磁盘分区详解:http://blog.csdn.net/aaronychen/article/details/2270048
------解决方案--------------------
linux下的话,你插一个U盘,会被自动挂载到 /media/下面,“/media/XXX”就是挂载点
------解决方案--------------------
引用:
我是不是要补操作系统的知识?

嗯,需要体验一下linux。
------解决方案--------------------
目录只占磁盘里的一个inode,存放文件属性等信息
------解决方案--------------------
/usr   /lib
可以是一个区内, 他们都在/分区 

你在分区的时候也可以分成2个区 / 和  /usr   或  /和 /lib

你也可以分成3个区  /   /usr   /lib

总之,至少1个/,   其他的可以独立分区也可以就是/下一个文件夹
当独立分区时, 比如/usr是独立的,   那么/分区必须有一个usr文件夹, 然后执行mount命令, 把那个独立的分区挂载到那里.

当然, 不限于挂载到/下, 你还可以把一个独立的分区挂载到任何 /下的任何子目录
------解决方案--------------------
引用:
/目录下的子目录居然和/目录不在一个分区.这是为什么?


举个例子,/usr已经有内容了(当然,不管有没有),而且位于/上,但是你却mount /usr到另一个分区了,原先的内容将被隐藏无可访问,直到被卸载为止。
------解决方案--------------------
再讲的详细一点:

按照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也是有挂载的,但是微软把它隐藏的很深,但是仍能看出些眉目来。
如果对这个问题有兴趣,请看我的帖子:http://www.linuxdiyf.com/bbs/viewthread.php?tid=206729&extra=page%3D&page=1