linux 磁盘分区(partition)

一、磁盘的连接方式和设备文件名的关系

  1. 个人计算机常见的磁盘接口有两种:IDE和SATA接口。
  2. IDE接口
  3. (1)一个IDE扁平电缆可以连接两个IDE设备,这两个设备可以被区分为Master(主设备)和Slave(从设备)。
  4. (2)若一块主板上有两个IDE接口,那么全部插上磁盘之后,在linux上显示的设备文件名如下:

linux 磁盘分区(partition)

  1. SATA接口
  2. (1)SATA、USB和SCSI都是以SCSI模块来驱动的。
  3. (2)磁盘文件名都是/dev/sd[a-p]的格式,但是磁盘名根本没有顺序。其判定标准为linux内核检测到磁盘的顺序。

二、磁盘的组成复习

  1. 磁盘的组成:盘片、机械手臂、磁头和主轴马达。数据记录在盘片上。
  2. 盘片可细分成扇区(sector)和柱面(Cylinder)两种单位,每个扇区512Byte。
  3. 整块磁盘最重要的扇区就是第一个扇区,因为其记录了引导分区和分区表。
  4. (1)引导分区(Master Boot Record,MBR):可以安装引导加载程序的地方,有446Byte。
  5. (2)分区表(partition table):记录整块硬盘分区的状态,有64Byte。

三、磁盘分区表

  1. 柱面是文件系统最小单位,也是分区的最小单位。
  2. 在分区表所在的64Byte容量中,总共分为4组记录区,每组记录区记录了该区段的起始与结束的柱面号码。
  3. 栗子:
  4. 若/dev/hda一共有400个柱面,那么其分区表可能如下:
  5. P1:1~100 — /dev/hda1
  6. P2:101~200 — /dev/hda2
  7. P3:201~300 — /dev/hda3
  8. P4:301~400 — /dev/hda4
  9. 上栗中,假设硬盘只有400个柱面,共分区4个分区。当你的系统为windows时,第一到第四分区的代码应该是C、D、E、F。当你有数据写入F盘时,你的数据会被写入磁盘301~400号柱面之间。
  10. 每个分区表最多容纳4个分区,这4个分区被成为主(Primary)或扩展(Extended)分区。
  11. 其实所谓的分区,都是针对64Byte的分区表进行设置的。
  12. 进行分区的原因:
  13. (1)数据安全性。每个分区的数据是分开的,重装系统时,C盘格式化时,D盘的数据是不受影响的,哪怕二者在同一块磁盘中。
  14. (2)系统性能考虑。当使用某一分区数据时,柱头只会搜索该柱面范围数据,可以提高读取速度和性能。
  15. 分区表虽然只有记录4组数据的空间,但是可以分超过4个的分区。
  16. 栗子:
  17. 若/dev/hda一共有400个柱面,那么其分区表可能如下:
  18. P1:1~100 (Primary) — /dev/hda1
  19. P2:101~400 (Extended) — /dev/hda2
  20. P3:无记录
  21. P4:无记录
  22. (1)扩展分区的目的是使用额外的扇区来记录分区信息,扩展分区本身并不能被拿来格式化。
  23. (2)由扩展分区继续切出来的分区,被称为逻辑分区(Logical partition),其所能使用的柱面范围就是扩展分区所设定的范围。
  24. 栗子:(扩展分区第一个扇区)
  25. L1:101~160 — /dev/hda5
  26. L2:161~220 — /dev/hda6
  27. L3:221~280 — /dev/hda7
  28. L4:281~340 — /dev/hda8
  29. L5:341~400 — /dev/hda9
  30. (3)大家可以发现,上面设备文件名缺少 /dev/hda3和 /dev/hda4,因为前面4个号码都是保留给Primary或Extended用的,所以逻辑分区的设备名称号码就由5号开始了。
  31. 总结:
  32. (1)主分区和逻辑分区最多可以有4个(硬盘的限制)。
  33. (2)扩展分区最多只能有1个(操作系统限制)。
  34. (3)逻辑分区是由扩展分区持续切割出来的分区。
  35. (4)能够被格式化后作为数据访问的分区为主分区与逻辑分区。扩展分区无法格式化。
  36. (5)逻辑分区的数量依操作系统而不同,在linux系统中,IDE硬盘最多有59个逻辑分区(5号到63号),SATA硬盘则有11个逻辑分区(5号到15号)。

四、开机流程与主引导分区(MBR)

1、CMOS:记录各项硬件参数且嵌入到主板上的存储器。

2、BIOS:写入到主板上的一个固件(固件就是写入到硬件上的一个软件程序)。即:开机的时候计算机系统会主动执行的第一个程序。

3、BIOS会根据用户的设置去取得能够开机的硬盘,并且到该硬盘里面去读取第一个扇区的MBR位置。MBR这个仅有446Byte的硬盘容量里面会放置最基本的引导加载程序。到这里,BIOS任务完成,接下来就是MBR内的引导加载程序的工作了。

4、引导加载程序的目的是加载(load)内核文件。

5、接下来就是内核文件工作了,开始操作系统的功能。

6、总结:BIOS -> MBR -> 引导加载程序(Boot Loader) -> 内核文件

7、详说MBR:

(1)是操作系统安装在MBR上的一套软件。

(2)主要任务:

A、提供菜单:用户可以选择不同的开机选项,这也是多重引导的重要功能。

B、载入内核文件:直接指向可开机的程序区段来开始操作系统。

C、转交其他loader:将引导加载功能转交给其他loader负责。

(3)A和B容易理解,对于C,需要理解下面这句话:

引导加载程序除了可以安装在MBR之外,还可以安装在每个分区的引导扇区(loader sector),这也是可以实现多重引导的功能的原因。

栗子:

若硬盘分4个分区,第1分区和第2分区分别安装了windows和linux,则:

第1个扇区的MBR分区表:

M1:直接指向windows。

M2:直接指向了第2个分区的开机扇区。

第2分区的开机扇区:

M1:直接指向Linux

8、总结:

(1)每一个分区都有自己的启动扇区(boot sector)。

(2)实际可开机的内核文件是放置到各分区内的。

(3)loader只会认识自己的系统分区内的可开机的内核文件,以及其他loader而已。

(4)loader可以直接指向或者是间接将管理权转交给另一个管理程序。

(Saw:Game is Over!)

相关推荐