linux 磁盘分区(partition)
一、磁盘的连接方式和设备文件名的关系
- 个人计算机常见的磁盘接口有两种:IDE和SATA接口。
- IDE接口
- (1)一个IDE扁平电缆可以连接两个IDE设备,这两个设备可以被区分为Master(主设备)和Slave(从设备)。
- (2)若一块主板上有两个IDE接口,那么全部插上磁盘之后,在linux上显示的设备文件名如下:
- SATA接口
- (1)SATA、USB和SCSI都是以SCSI模块来驱动的。
- (2)磁盘文件名都是/dev/sd[a-p]的格式,但是磁盘名根本没有顺序。其判定标准为linux内核检测到磁盘的顺序。
二、磁盘的组成复习
- 磁盘的组成:盘片、机械手臂、磁头和主轴马达。数据记录在盘片上。
- 盘片可细分成扇区(sector)和柱面(Cylinder)两种单位,每个扇区512Byte。
- 整块磁盘最重要的扇区就是第一个扇区,因为其记录了引导分区和分区表。
- (1)引导分区(Master Boot Record,MBR):可以安装引导加载程序的地方,有446Byte。
- (2)分区表(partition table):记录整块硬盘分区的状态,有64Byte。
三、磁盘分区表
- 柱面是文件系统最小单位,也是分区的最小单位。
- 在分区表所在的64Byte容量中,总共分为4组记录区,每组记录区记录了该区段的起始与结束的柱面号码。
- 栗子:
- 若/dev/hda一共有400个柱面,那么其分区表可能如下:
- P1:1~100 — /dev/hda1
- P2:101~200 — /dev/hda2
- P3:201~300 — /dev/hda3
- P4:301~400 — /dev/hda4
- 上栗中,假设硬盘只有400个柱面,共分区4个分区。当你的系统为windows时,第一到第四分区的代码应该是C、D、E、F。当你有数据写入F盘时,你的数据会被写入磁盘301~400号柱面之间。
- 每个分区表最多容纳4个分区,这4个分区被成为主(Primary)或扩展(Extended)分区。
- 其实所谓的分区,都是针对64Byte的分区表进行设置的。
- 进行分区的原因:
- (1)数据安全性。每个分区的数据是分开的,重装系统时,C盘格式化时,D盘的数据是不受影响的,哪怕二者在同一块磁盘中。
- (2)系统性能考虑。当使用某一分区数据时,柱头只会搜索该柱面范围数据,可以提高读取速度和性能。
- 分区表虽然只有记录4组数据的空间,但是可以分超过4个的分区。
- 栗子:
- 若/dev/hda一共有400个柱面,那么其分区表可能如下:
- P1:1~100 (Primary) — /dev/hda1
- P2:101~400 (Extended) — /dev/hda2
- P3:无记录
- P4:无记录
- (1)扩展分区的目的是使用额外的扇区来记录分区信息,扩展分区本身并不能被拿来格式化。
- (2)由扩展分区继续切出来的分区,被称为逻辑分区(Logical partition),其所能使用的柱面范围就是扩展分区所设定的范围。
- 栗子:(扩展分区第一个扇区)
- L1:101~160 — /dev/hda5
- L2:161~220 — /dev/hda6
- L3:221~280 — /dev/hda7
- L4:281~340 — /dev/hda8
- L5:341~400 — /dev/hda9
- (3)大家可以发现,上面设备文件名缺少 /dev/hda3和 /dev/hda4,因为前面4个号码都是保留给Primary或Extended用的,所以逻辑分区的设备名称号码就由5号开始了。
- 总结:
- (1)主分区和逻辑分区最多可以有4个(硬盘的限制)。
- (2)扩展分区最多只能有1个(操作系统限制)。
- (3)逻辑分区是由扩展分区持续切割出来的分区。
- (4)能够被格式化后作为数据访问的分区为主分区与逻辑分区。扩展分区无法格式化。
- (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!)