磁盘连接的方式与设备文件名的关系
主流的磁盘接口为SATA接口。
SATA/USB/SCSI等磁盘接口都是使用SCSI模块来驱动的,因此这些接口的磁盘设备文件名都是/dev/sd[a-p]的格式。顺序需要根据Linux内核检测到磁盘的顺序来决定。
比如PC上面有两个SATA磁盘以及一个USB磁盘,而主板上面有6个SATA的插槽。这两个SATA磁盘分别安插在转的SATA1 SATA5接口上,请问这三个磁盘在Linux中的设备文件名是什么?
1.SATA1插槽上的文件名 /dev/sda
2.SATA2插槽上的文件名 /dev/sdb
3.USB磁盘(开机完成后才被系统识别) /dev/sdc
磁盘的组成复习
磁盘数据的写入实际上是在盘片上面。盘片上面又可以细分出扇区(Sector)与柱面(Cylinder)两种单位,其中扇区每个为512bytes那么大。
每块磁盘的第一个扇区特别重要,因为它记录了整块磁盘的两个重要信息:
①主引导分区(Master Boot Record MBR):可以安装引导加载程序的地方,有446 bytes
②分区表(partition table):记录整块硬盘分区的状态,有64bytes
MBR是很重要的,因为系统在开机的时候会主动去读取这个区块的内容,这样系统才会知道你的程序放在哪里且该如何进行开机。如果你要安装多重引导的系统 MBR这个区块的管理就非常重要了。
分区表记录磁盘的分区情况,在下面介绍。
磁盘分区表(partition table)
柱面是文件系统的最小单位,也就是分区的最小单位。我们就是利用参考柱面号码的方式来处理,在分区表所在的64bytes容量中,总共分为四组记录区,每组记录区记录了该区段的起始与结束的柱面号码。
假设上面的硬盘设备文件名是是/dev/hda时,那么这四个分区在Linux系统中的设备文件名如下所示:
P1:/dev/hda1
P2:/dev/hda2
P3:/dev/hda3
P4:/dev/hda4
由于分区表的容量限制,最多只能容纳四个分区。这四个分区被称为主(Primary)或者扩展(Extended)分区。
请注意以下信息:
①其实所谓的”分区”只是针对那个64bytes的分区表进行设置而已。
②硬盘默认的分区表仅能写入四组分区信息。
③这四组分区信息我们称为主(Primary)和扩展(Extended)分区。
④分区的最小单位为柱面(cylinder)。
当系统要写入磁盘时,一定会参考磁盘分区表,才能针对某个分区进行数据的处理。
为什么”分区”?
原因①:数据的安全性
原因②:系统的性能考虑
虽然分区表只能记录四个分区,但是不代表我们最多只能分区四个。既然第一个扇区所在的分区表只能记录四个数据,那可以利用额外的扇区来记录更多的分区信息。
扩展分区的目的是使用额外的扇区来记录分区信息,扩展分区本身并不能被拿来格式化。但是我们可以通过扩展分区所指向的那个区块继续做分区记录。
由扩展分区继续切出来的分区称为逻辑分区(logical partition)。由于逻辑分区是由扩展分区继续分区出来的,所以它可以使用的柱面范围就是扩展分区所设定的范围。
需要注意的时,不管分区表的4个记录用不用完,文件中1-4始终都是保留着呢。即使只用了一个主分区,扩展分区也是从5开始。
请注意以下信息:
①主分区与扩展分区最多可以有四个(硬盘的限制)。
②扩展分区最多只能有一个(操作系统的限制)。
③逻辑分区是由扩展分区持续切割出来的分区。
④能够被格式化后作为数据访问的分区为主分区和逻辑分区。扩展分区无法格式化。
⑤逻辑分区的数量依操作系统不同而不同。在Linux系统中,SATA硬盘最多有11个逻辑分区(5号到15号)
注意: 如果扩展分区被破坏,所有逻辑分区都将会被删除。因为逻辑分区的信息都记录在扩展分区里面。
所以,如果一个硬盘的第一个扇区(就是MBR与partition table所在的扇区)物理坏掉了,那这个硬盘大概就没有用了。
举个例子
举个栗子
假设PC上有两块硬盘,在第二块硬盘(sdb)分出6个可用的分区,那么每个分区在Linux系统下的设备文件名如何?
分法一: P+P+P+E的环境 (第四个做成扩展分区,扩展分区再分出3个逻辑分区)
可用的分区有:/dev/sdb(1,2,3,5,6,7)
分法二: P+E的环境
可用的分区有:/dev/sdb(1,5,6,7,8,9)
开机流程与主引导分区(MBR)
开机流程
CMOS:记录各个硬件参数并且切入在主板上面的储存器
BIOS:一个写入到主板上的韧体。
BIOS是开机的时候计算机会主动执行的第一个程序。
接着BIOS会分析计算机里面有哪些储存设备,并且到硬盘里面去读取第一个扇区的MBR位置。 MBR这个仅有446bytes的硬盘容量里面会放置最基本的引导加载程序。 接着MBR 识别硬盘内的文件系统格式,引导加载内核文件 ,进入操作系统。