Linux分区与文件目录结构

一直以来都十分迷惑Linux的分区与文件的关系,只是听说Linux是用文件来管理的分区的,但是由于习惯了Windows的分区与文件的关系,对于Linux的分区与文件还是不甚了解。

这个十一打算学习一下Linux以及Linux C,顺便看一下传说中的Python。于是在十一到来前,在图书馆借了几本厚厚的书。

Linux books

今天,学习了一下Linux的分区与文件系统,以及文件系统的挂载,终于对Linux的分区与文件的关系有所了解。为了防止以后忘记,现将资料整理如下:

1、Linux的硬盘和分区

在安装操作系统之前,一般需要先对硬盘进行分区。我们都知道硬盘分区包括主分区、扩展分区、逻辑分区三种类型,之所以会有这样的区分,是因为在硬盘的主引导扇区中用来存放分区信息的空间只有64 个字节(主引导扇区一共只有512字节空间),而每一个分区的信息都要占用16字节空间,因而理论上一块磁盘最多只能拥有4个分区,当然这4个分区都是主分区。这在计算机早期是没什么问题的,但后来随着硬盘空间越来越大,4个分区就远远不够了,所以才又引入了扩展分区的概念。扩展分区也是主分区,但是在扩展分区中可以再创建新的分区,这些分区就被称为逻辑分区,逻辑分区的数量就不再受主引导扇区空间大小的限制了,像IDE磁盘最多可以创建60个逻辑分区。

在Windows系统中,我们一般都是只创建一个主分区(也就是C盘),再将剩余的磁盘空间全部划给扩展分区,最后在扩展分区中创建逻辑分区。在“磁盘管理”工具中可以清楚地查看到这种逻辑关系。

Linux分区

首先,在Linux系统中所有的磁盘以及磁盘中的每个分区都是用文件的形式来表示的。比如在你的电脑中有一块硬盘,硬盘上划分了3 个分区,那么在Linux系统中就会有相应的4个设备文件,一个是硬盘的设备文件,另外每个分区也有一个设备文件,所有的设备文件都统一存放在/dev目录中。

不同类型的硬盘和分区的设备文件命名都有统一的规则,具体表述形式如下:

硬盘:对于IDE接口的硬盘设备,表示为“hdX”形式的文件名,对于SATA或SCSI接口的硬盘设备,则表示为“sdX”形式的文件名,其中“X”可以为a、b、c、d等字母序号。例如,将系统中的第1个IDE设备表示为“hda”,将第2个SATA设备表示为“sdb”。

分区:表示分区时,以硬盘设备的文件名作为基础,在后边添加该分区对应的数字序号即可。例如,第1个IDE硬盘中的第1个分区表示为“hda1”、第2个分区表示为“hda2”,第2个SATA硬盘中的第3个分区表示为“sdb3”,第4个分区表示为“sdb4”等。

需要注意的是,由于主分区的数目最多只有四个,因此主分区和扩展分区的序号也就限制在1~4之间,而逻辑分区的序号将始终从5开始。例如,即便第1个IDE硬盘中只划分了一个主分区、一个扩展分区,则新建的第1个逻辑分区的序号仍然是从5开始,应表示为“sda5”,第2个逻辑分区表示为“sda6”。

2、文件系统的目录结构

Linux文件目录

在Windows系统中,为每个分区分配一个盘符,在资源管理器中通过盘符就可以访问相应的分区。每个分区使用独立的文件系统,在每一个盘符中都会有一个根目录。

在Linux系统中,将所有的目录和文件数据组织为一个树型的目录结构,整个系统中只存在一个根目录,所有的分区、目录、文件都在同一个根目录下面。

在Linux系统中定位文件或目录位置时,使用“/”进行分隔(区别于Windows中的“\”)。在整个树型目录结构中,使用独立的一个“/”表示根目录,根目录是Linux文件系统的起点。在根目录下面按用途不同划分有很多子目录,而一个硬盘分区只有挂载到某个目录中才能被访问,这个指定的目录就被称为挂载点。例如将分区“/dev/hda2”挂载到根目录“/”,那么通过访问根目录“/”就可以访问到“/dev/hda2” 分区,这个分区也就称为根分区。

在根目录下,Linux系统将默认建立一些特殊的子目录,分别用于不同的用途。比如前面提到的/dev目录就是专门用来存放各种设备文件的,再如/boot目录用来存放Linux系统的引导文件,/root目录是root用户的主目录,/home目录是其他普通用户的主目录……等等。如果应用需要,Linux系统中所有的子目录都可以创建为独立的硬盘分区,没有进行独立分区的子目录则都会保存在根分区中。对于初学者,除了交换分区以外,一般只需要再创建2个分区,分别作为根分区和/boot分区,基本就可以满足需求了。

6 Comments

  1. 鲜活

    苦逼的程序猿啊 :mrgreen:

    Reply

    • 一念花开

      @鲜活 : 以前从没把自己看作是程序猿,现在也不是,只不过慢慢地变得像一个苦逼的程序猿了。

      Reply

  2. 疯狂的眼球

    哇喔~~~好厚的专业书~~!

    Reply

  3. 郑杰

    用了半年的Ubuntu,再换回win7,各种习惯不习惯。。。。

    Reply

  4. ★Extreme★

    没记错/etc,/bin那些不能用独立分区吧?具体是哪几个我也记不清了。

    Reply

    • 一念花开

      好像是的,我Linux很菜,前一段时间看了一下书,现在又没时间看了。

      Reply

Leave a Reply

*