Linux与硬件
各个元件或设备在Linux下都是一个文件。
常见设备与其在Linux中的文件名:
磁盘分区
个人计算机常见的磁盘接口有两种,SATA和SAS接口,设备文件名由磁盘被侦测到的顺序决定。
磁盘的组成主要有盘片,机械手臂,磁头与主轴马达。数据写入是写入盘片上,盘片又可分为扇区,磁道两种单位,扇区的物理量设计有两种大小,分别是512字节或4k字节。
整颗磁盘的第一个扇区记录整颗磁盘的信息。
磁盘分区有两种格式:MBR和GPT
MBR分区格式
早期Linux系统采用MBR(Master Boot Record)的方式处理开机管理程序和分区表,开机管理程序记录区和分区表通常放在磁盘第一个扇区。
所以,第一个扇区的512字节有两个数据:
(1)开机记录区:可以安装开机管理程序的地方,有446字节(开机管理程序可以安装在这个地方,也可以安装在其他地方)
(2)分区表:记录磁盘的分区状态,有64字节,最多只能有四组记录,每组记录包括该区的起始与结束柱面号码。
分区表
分区表只有64字节,最多只能记录4组记录,这四组记录分区分为主要分区和延伸分区。延伸分区可以再分为多个分区,由延伸分区切出来的分区称为逻辑分区,逻辑分区的设备名称号码由5开始(无论有多少个主要分区)。延伸分区本身不能被格式化,能被格式化的是延伸分区范围里的逻辑分区,且延伸分区最多只能有1个。
开机流程
COMS是一个嵌入在主板上的存储器,用来记录各项硬件的参数,BIOS是一个写入主板上的软件程序,是开机时计算机系统主动执行的第一个程序。
BIOS会分析计算机里有哪些存储设备,会依据使用者的设置,取得能够开机的硬盘,当该硬盘里读取MBR分区格式中的第一个扇区,这个扇区里面会放置最基本的开机管理程序,到此BIOS的功能完成,接下来就要执行开机管理程序。
开机管理程序的主要功能是载入核心文件(即操作系统),这个开机管理程序是操作系统安装时提供的,能够读取核心文件。载入成功后,开机管理程序完成工作,接下来就是操作系统进行工作。
多重开机
通过多重开机,可以选择不同的操作系统。
开机管理程序除了可以安装在第一个扇区之外,还可以安装在每个分区的开机扇区中。第一个扇区中的开机管理程序提供菜单选择功能,可以让使用者选择不同的开机项目(也就是安装在每个分区的开机扇区中的开机管理程序),以此达到多重开机的目的。
GPT分区格式
分区表
GPT将磁盘所有区块以逻辑区块位址(LBA,Logical Block Address,默认为512字节)来规划,第一个LBA称为LBA0(从0开始编号)。GPT使用34个LBA区块记录分区信息。除了前34个LBA之外,磁盘最后33个LBA也拿来作为另一个备份。
(1)LBA0:(MBR相容区块)这个区块分为两部分,第一部分储存第一阶段的开机管理程序,第二部分放入一个特殊标志,用来表示磁盘的格式为GPT
(2)LBA1:记录分区表本身的位置和大小,同时记录备份gpt分区的位置,并放置了分区表的检验机制码
(3)LBA2-33:实际记录分区信息处。从LBA2开始,每个区块都可以记录4笔分区记录,每笔记录需要记录三样东西:一是识别码,二是相关记录,三是提供64字节来记载开始和结束扇区号码。
GPT分区没有主、延伸、逻辑分区的概念,每个分区都是主分区,每一个分区都可以格式化。
开机流程
和MBR分区格式大致相同,需要注意的是,BIOS不能正确识别GPT的分区格式,通常需要搭配使用UEFI开机