Linux学习日记06-Linux文件属性和管理
时间:2007-03-27 来源:junzero
本来打算随便记录一下读书的体会,鉴于有网友会一不小心点了我的blog,为了能让我的文字值得一点,我决定好好做我的读书笔记!
说完废话,进入正题:
首先、为什么会有Linux硬盘管理部分内容?为什么?――我没有问过“鸟哥”,所以我不知道这位老兄的真实想法,但是有一点是肯定的:为了让Linux的爱好者多了解一些相关知识。
硬盘是PC用来存储文件的重要介质,那看看磁盘上的文件到底是怎样存储在磁盘上的?
一开始我觉得硬盘要是按照磁道(track)来划分的话,那内圈的长度会比外圈短的多,那是否意味着外圈存储的信息会多于内圈,当时的理解是每个信息量(即01代码)所占用的盘片面积是一样的,现在发现真的目前的磁盘存储,我错了!
硬盘的示意图:
(上图摘自《鸟哥的Linux私房菜》)
在这里要了解的一些概念:
磁头(Head):悬于盘片之上的用于读取盘片上信息的东西,跟随身听的磁头属于同一个概念,只是一个硬盘会有比较多的磁头
磁道(TrackCylinder):当磁头固定不动,硬盘转一圈所画出来的圆就是磁头,相当于树的年轮!
磁柱(Cylinder):同一硬盘中相同半径的磁道在不同盘片上的组合。
扇区(Sector):由圆心向外划直线,则可将磁道再细分为一个一个的单元,这个小的单元就是硬盘盘片上的最小存储区了!
以上这些概念跟文件系统将密切相关。
接下来了解一下硬盘分区的概念:
一个硬盘可以最多分成3个主分区(Primary)和1个逻辑扩展分区(Extended)或者4个主分区(Primay),当然这个逻辑扩展分区可以再细分成很多逻辑分区,那到底可分成多少个分区,我也不知道,(我将记录下这个问题,后面给答案)但是应该有结果的。
每块硬盘上都有一个MBR(Master Boot Recorder)主引导记录,就是用来记录分区心信息的,那这个MBR有多大,答案是512Bytes。
文件系统:
不同的文件系统对硬盘分区的格式都是有所不同的,那这些文件系统都是在搞些什么?文件系统规定了在该文件系统下每个最小的逻辑存储单元(Block)有多大,(Ext2的是4kb,其它的将在后面做详细介绍),另外在每个文件系统的开始(也就是该文件系统在硬盘上的开始位置)都会有个SupperBlock,用来指示这个文件系统下都有什么东西以及该文件系统的状态信息等。
Linux的文件系统都是什么样子的?
Linux的ext2文件系统会将其下的空间分为inode和block,其中inode用来存储文件的属性,而block则用来存储文件的内容。
通过下图来体验一下如何通过Linux的ext2文件系统来读取/etc/crontab文件:
(上图摘自《鸟哥的Linux私房菜》)
另外在这部分还有很多要注意的地方,鸟哥都给指出了,可以好好看看。
鸟哥在Linux文件系统的运作这部分中指出了Linux怎样利用文件系统来保存其下被修改的文件。(细节部分请参阅《鸟哥的Linux私房菜》)
了解了Linux怎样在硬盘上存储数据后,可以通过学习df和du两条指令来查看硬盘的存储信息。
在Linux中链接文件也是很值得一提的:
1、 Linux中的链接文件跟Windows下的快捷方式有点类似,但是只是类似
2、 Linux下的链接文件分为Hard link(硬链接)和Symbolic Link(符号链接)
以前一直搞不懂Hard link和Symbolic Link到底有什么区别,现在总算明白了(主要是要通过动手去实践才能真正了解)。
Hard Link:在指定的目录下建立一个跟源文件一样的关联数据,它将指向实际存储数据的硬盘块空间。关系图如下:
所以,在这里,即使删除了source的inode,依旧可以通过link来找到原数据。
Symbolic Link:这跟Windows下的快捷方式是一样的:
它的示意图如下:
|
此时如果删除源文件,通过link就无法找到原数据了!
要具体体会这两者的差别就要通过ln指令来练习了!
分区与格式化硬盘所涉及到的指令是:
fdisk 硬盘切割 partition 的工具
mke2fs 就是 Linux 底下重要的 format 格式化的工具
e2label 修改硬盘的 label (表头名称)的工具!
mknod 新增硬件对应文件的工具!
这些我一般很少碰到,因此不会太多关注,在用到的时候再看看!
在磁盘的数据存储操作中有条指令很重要:sync!它可以在操作后,立即存盘!太有用了!
另外利用mount指令来加载不同文件系统的磁盘也要好好掌握,不过现在很多的发行版都会自动mount一些文件系统。编辑/etc/fstab可以在启动后自动完成加载文件系统的动作,至于怎样修改该文件的内容就要查看相关的知识了。
个人感觉鸟哥在本章节后面的附录中介绍了ext2和ext3的相关知识还是很有用的!