标签:
磁盘连接与设备文件名的关系
1. 如下图所示:
2. 应当注意的是:系统是使用检测到的顺序来决定设备文件名的
关于分区
1. 如何理解分区?
我们知道一块硬盘是存储数据的。分区只是为了对这块硬盘做出更好的管理。
不同的分区机制(MSDOS/GPT)是不同的一些分区理念。
分区之后要进行“格式化”这块硬盘才能真正的存储数据,不同的格式化方法,就是不同的“文件系统”类型。
2. 如何理解分区以柱面为粒度?
分区时要考虑柱面因素,分区总是结束在柱面的最后一个扇区,也就是说分区总是结束在某个柱面的254磁头63扇区。
这就解释了为什么你要求的分区大小和实际分区大小总是有些小小的误差,例如你要分一个区是200M,操作系统在分区时考虑的是这个分区到到哪个柱面结束离你的要求误差最小。这种以柱面为粒度的分区方式肯定会有误差,误差不会超过半个柱面,一个柱面的大小是 255磁头×63扇区×512字节=7.8M
磁盘分区表partition table
1. 分区表中记录着什么?
64bytes中分为四组记录区,每组记录区记录了该区段的起始和结束的柱面号码
2. 主分区、扩展分区、逻辑分区
由于分区表只有64bytes,所以最多只能记录四组分区信息。这四组分区可以称为主分区(Primary)或扩展分区(Extended)。
主分区不能再划分了,但是扩展分区可以再划分,称之为逻辑分区(logical partition)
扩展分区的实质上是使用额外的扇区来记录分区信息
3. 关于分区我们要知道的?
(1)所谓的"分区"实际上就是针对这64bytes的DPT来进行设置
(2)由于分区表的限制,所以主分区和扩展分区总共只能有四个
(3)由于操作系统的限制,所以扩展分区最多只能有一个
(4)逻辑分区的数量不同操作系统不一样,Linux中的SATA硬盘有11个逻辑分区(5号—15号)
(5)主分区和逻辑分区可以被格式化后来存储数据,扩展分区是不能格式化的
(6)关于分区的编号:1号—4号是预留给主分区/扩展分区的,逻辑分区从5号开始
例如:
两种分区机制
1. MSDOS/MBR分区机制
MBR分区机制对分区的数量和分区的大小都有限制(IDE64,SATA16)
(1)主分区:最多只能有4个,且大小不超过2T;主分区下不能再分了
(2)扩展分区:相当于一个特殊的主分区,不能存数据,扩展分区下划分为逻辑分区
(3)逻辑分区:编号无条件从"5"开始
2. GPT分区机制
(1)对分区的数量和分区的大小没有什么限制(所以适用于大型的服务器)
(2)但windows最多只是128GPT分区
MBR
1. 磁盘的第一个扇区(512bytes)记录了什么?
(1)主引导记录MBR:446字节
(2)硬盘分区表DPT:64字节
(3)分区结束标记:2字节
2. 操作系统是一个系统软件,那么计算机是如何找到操作系统软件并执行它的?这个过程当中MBR起到了什么样的作用?
(1)开机时计算机主动执行的第一个程序是BIOS
(2)BIOS会分析计算机里有哪些存储设备,假设我们设置了从硬盘引导启动,BIOS会依据用户的设置去取得开机的硬盘
(3)到这个硬盘里面去读取第一个扇区的MBR,MBR存放着最基本的引导加载程序(Boot loader)
(4)然后通过这个引导加载程序(grub)去加载(load)内核文件
(5)引导加载程序是操作系统在安装在MBR上的,所以它会识别硬盘内的文件系统格式,所以能够读取内核文件
(6)再之后就会开始操作系统的任务
关于Boot Loader
1. boot loader的主要任务:
(1)提供菜单:用户可以选择不同的开机选项,这也是多重引导的重要功能
(2)载入内核文件:直接指向可开机的程序区段来开始操作系统
(3)转交其他loader:将引导加载功能转交给其他loader来负责
2. 从一个例子去理解多重引导
引导加载程序除了可以安装在MBR之外,还可以安装在每个分区的引导扇区(boot sector),这才能造就出"多重引导"的功能。如图所示:
这个硬盘中分成了四个分区,第一、二个分区分别安装了Windows和Linux,整个引导流程是这样的:
(1)在MBR中的引导加载程序提供了两个菜单:
M1——直接加载Windows的内核文件
M2——将引导加载工作转交给第二分区的启动扇区
(2)如果用户选择M1,则直接启动Windows系统
(3)如果用户选择M2,整个引导加载工作就会交给第二分区的启动扇区中的这个引导加载程序
(4)这个引导加载程序加载Linux的内核文件,实现启动Linux系统
3. 由上可总结得:
(1)每个分区都有自己的启动扇区/引导扇区(boot sector)
(2)实际可开机的内核文件是放置到各个分区内的
(3)loader只会认识自己系统分区内的内核文件,和别的分区的loader
(4)loader可直接指向或者间接将引导加载工作转交给另一个loader
标签:
原文地址:http://www.cnblogs.com/snsdzjlz320/p/5648017.html