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

善良超锅锅 2012-02-28 05:26:39

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

也不知道该不该在这里发帖,总觉得这里亲切一点,大家都很热心。
...全文
4034 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
shendu74110 2014-08-25
  • 打赏
  • 举报
回复
上面最高为叶子节点错了, 应该是最低为叶子节点 现想现写, 有点乱, 但是仔细看看, 我觉得对理解挂载点很有用
shendu74110 2014-08-25
  • 打赏
  • 举报
回复
按照我的理解通俗的说说: 以使用光盘为例,来说说什么是挂载点, 首先来说说windows下如何使用光盘, 我们要使用光盘, 将光盘插入光驱, 然后双击计算机中的光驱图标, 我们就能读取到光盘中的内容, 而在linux中的文件系统是树状结构, 准确的说是倒置的树状结构, 什么是树状结构?倒置的 树状最高为根节点,按照根分叉(树杈→目录),最高为叶子节点, 叶子节点(文件)不能再分叉, 所以我们无论要使用什么设备, 都要将其关联到某个节点(目录)上, 这个关联过程就是挂载, 而这个关联点 , 就是挂载点.为什么linux要挂载? 还是以光盘为例来说明: linux下有一个重要的思想就是一切皆文件, 它将所有的设备都虚拟为文件, ls /dev 我们看到有一个cdrom, 注意这个cdrom仅仅是提供访问光驱设备的一个入口, 我们不能直接访问cdrom(事实上cdrom也没有内容), 所以我们想要访问光盘中的内容必须将cdrom和一个节点相关联, 这个节点通常是/media, 然后我们通过media去访问光盘中内容 愚见~高手指教
善良超锅锅 2012-02-29
  • 打赏
  • 举报
回复
ls的讲的好啊
maogou4260 2012-02-29
  • 打赏
  • 举报
回复 11
再讲的详细一点:

按照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
maogou4260 2012-02-29
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 shimachao 的回复:]

/目录下的子目录居然和/目录不在一个分区.这是为什么?
[/Quote]

举个例子,/usr已经有内容了(当然,不管有没有),而且位于/上,但是你却mount /usr到另一个分区了,原先的内容将被隐藏无可访问,直到被卸载为止。
善良超锅锅 2012-02-28
  • 打赏
  • 举报
回复
谢谢啊,有那么一点点懂了
[Quote=引用 19 楼 ma100 的回复:]

/usr /lib
可以是一个区内, 他们都在/分区

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

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

总之,至少1个/, 其他的可以独立分区也可以就是/下一个文件夹
当独立分区时, 比如/usr是独立的, 那么/分区必须有一个usr文件夹, 然后执行mount命令, 把那个独立……
[/Quote]
ma100 2012-02-28
  • 打赏
  • 举报
回复
/usr /lib
可以是一个区内, 他们都在/分区

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

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

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

当然, 不限于挂载到/下, 你还可以把一个独立的分区挂载到任何 /下的任何子目录
如此美丽的你 2012-02-28
  • 打赏
  • 举报
回复
目录只占磁盘里的一个inode,存放文件属性等信息
灼眼的超哥 2012-02-28
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 shimachao 的回复:]

我是不是要补操作系统的知识?
[/Quote]
嗯,需要体验一下linux。
善良超锅锅 2012-02-28
  • 打赏
  • 举报
回复
/目录下的子目录居然和/目录不在一个分区.这是为什么?
善良超锅锅 2012-02-28
  • 打赏
  • 举报
回复
我是不是要补操作系统的知识?
Ture2011 2012-02-28
  • 打赏
  • 举报
回复
linux,很有兴趣
鲲尘千古 2012-02-28
  • 打赏
  • 举报
回复
linux下的话,你插一个U盘,会被自动挂载到 /media/下面,“/media/XXX”就是挂载点
善良超锅锅 2012-02-28
  • 打赏
  • 举报
回复
还是不懂1
善良超锅锅 2012-02-28
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 czh3642210 的回复:]

linux磁盘分区详解:http://blog.csdn.net/aaronychen/article/details/2270048
[/Quote]
谢谢啊!我去看看
面包大师 2012-02-28
  • 打赏
  • 举报
回复
linux磁盘分区详解:http://blog.csdn.net/aaronychen/article/details/2270048
面包大师 2012-02-28
  • 打赏
  • 举报
回复
Linux分区方案、文件结构与挂载:http://os.51cto.com/art/201001/175635.htm
善良超锅锅 2012-02-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 czh3642210 的回复:]

需要分区,主分区/dev/hda1,逻辑分区/dev/hda2、、、、之类的
[/Quote]
说详细点不?有什么好的文章吗?
空弦 2012-02-28
  • 打赏
  • 举报
回复
linux 的理念就是everything is file
一些磁盘都用文件来描述了
挂载就是把usb,磁盘什么的 挂在linux的某个目录下,然后通过这个目录去操作,挂载点就是你要挂的那个目录,而且挂载最好自己新建一个目录,因为你挂载完后 ,这个目录以前的文件都会没法使用
Lactoferrin 2012-02-28
  • 打赏
  • 举报
回复
linux和win32命名法不一样
win32路径中为卷名提供独特的位置
linux中看起来就是一般的目录
加载更多回复(5)

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧