一、各硬件装置在Linux中的文件名
因为在Linux中,所有东西都是一个文件,其中就包括了硬件设备,所以各硬件设置在Linux中的文件名如下图所示(更多Linux内核支持的硬件设备与文件名可以到 https://www.kernel.org/doc/Documentation/devices.txt查看):
二、硬盘分区
1、MSDOS(MBR)GPT与磁盘分区表(partition table)
早期的Linux系统为了兼容windows的磁盘,因此使用的是支持Windows的MBR(Master Boot Record,主引导记录)的方式来处理启动引导程序与分区表,而启动引导程序纪录区与分区表则通通放在磁盘的第一个扇区,这个扇区通常是512bytes大小(旧的磁盘扇区都是512bytes),所以说,第一个扇区512bytes会有两个数据:
- 主引导记录(Master Boot Record,MBR):可以安装开机管理程序的地方,有446bytes
- 分区表(partition table):记录整颗硬盘分区的状态,有64bytes
由于分区表所在区块仅有64bytes容量,因此最多仅能有四组记录区,每组记录区记录了该区段的启动与结束的柱面号码。若将硬盘以长条形来看,然后将柱面以柱形图来看,那么那64bytes的记录区段有点像下图所示:
假设上面的硬盘设备文件名为/dev/sda时,那么这四个分区在Linux系统中的设置文件名如下所示,重点在于文件名后面会再接一个数字,这个数字与该分区所在的位置有关:
- P1:/dev/sda1
- P2:/dev/sda2
- P3:/dev/sda3
- P4:/dev/sda4
上图中我们假设硬盘只有400个柱面,共分区成4个分区,第4个分区所在为第301-400号柱面的范围。当你的操作系统为Windwos时,那么从第1到第4个分区的代号应该就是C、D、E、F,当你有资料写入F分区时,你的数据会被写入到这块磁盘301-400号柱面之间的意思。
由于分区表就只有64bytes而,最多只能容纳4个分区的记录,这4个分区的记录被称为主要(Primary)或扩展(Extended)分区,根据上面的图示与说明,我们可以得到以下几点重要信息:
- 其实所谓的【分区】只是针对那个64bytes的分区表进行 设定而已
- 硬盘默认的分区表仅能写入4组分区信息
- 这4组划分信息我们称为主要(Primary)或扩展(Extended)分区
- 分区的最小单位【通常】为柱面(cylinder)
- 当系统要写入磁盘时,一定会参考磁盘分区表,才能针对某个分区进行数据的处理
2、为何要分区?
1)、数据的安全性
因为每个分区的数据是分开的,所以,当你需要将某个分区的数据重新整理时,比如要重新安装系统的时候,可以将Windows系统的C盘重新安装系统,可以将里面的数据移动到其他分区,那么C盘在重新安装系统的时候并不会影响到其他分区,所以善于使用分区,可以让你的数据更安全。
2)、系统的性能考虑
由于分区将数据集中在某个柱面的区段中,如上图当中的第1个分区位于柱面号1-100号,如此一来,当有数据要读取自该分区时,磁盘只会搜索前面1-100的柱面范围,由于数据集中了,将有助于数据读取的速度和效能,所以说,分区很重要。
3、分区表只能记录4个组数据,那怎么解释一块硬盘可以分区成十几块
在windows/Linux系统中,我们是通过刚刚谈到的扩展分区(Extended)的方式来处理的。
扩展分区(Extended)的想法是:既然第1个扇区所在的分区表只能记录4笔数据,那我可否利用额外的扇区来记录更多的分区信息?
扩展分区(Extended)的目的是:使用额外的扇区来记录分区信息,扩展分区本身并不能被拿来格式化,扩展分区(Extended)继续切出来的分区被称为逻辑分区,如下图所示: