多系统引导背后的知识:磁盘、分区、文件系统、GPT、UEFI
【Windows 7 + Windows 8 (PE) + Windows 10 + deepin-Linux + MacOS X】
<电脑修的好,备胎当到老>
前言:随着软硬件技术的发展UEFI引导逐渐取代传统BIOS引导,最新的操作系统都适用于EFI引导,这让各他们可以共存于一台机器。
工具:两个8GB U盘(一个安装PE,一个刻录系统)、Disk Genius磁盘工具、微PE、EasyUEFI、EasyBCD、TransMac v12。
笔记本型号:戴尔灵越5557
配置:i5-6200U + 8G RAM + SAMSUNG 860 EVO SSD(512GB)+ BCM94352Z(802.11ac 支持黑苹果千兆网卡)
引导过程:
磁盘结构:
Clover Bootloader引导界面:
以下是我对这些系统的使用方式:
Windows 7:兼容老旧的开发工具、驱动程序,用于各种EDA和嵌入式开发。
Windows 10:微软最新的操作系统,安装VS2017学习UWP开发。
Deepin-Linux:用于学习Linux、Python等。
MacOS X:安装Xcode学习Swift,IOS开发等。
Windows 8 PE:Win8内核版微PE,集成大量引导修复、磁盘工具,备份和修复其他系统。
1. 磁盘和文件系统
作为数据存储的介质,现在市面上硬盘有机械硬盘(磁记录旋转介质)和固态硬盘(NAND-Flash)两种,虽然所用技术和材料大不一样,但都会被软件抽象成同样的设备所看待。
1.1 MBR和GPT
新的磁盘需要初始化,指定分区表为MBR(旧)或GPT(新):
MBR(Master Boot Record),即硬盘的主引导记录。为了便于理解,一般将MBR分为广义和狭义两种:广义的MBR包含整个扇区(引导程序、分区表及分隔标识),也就是上面所说的主引导记录;而狭义的MBR仅指引导程序而言。
对于MBR磁盘上的分区类型:
1)主分区:也叫引导分区,最多可能创建4个,当创建四个主分区时候,就无法再创建扩展分区了,当然也就没有逻辑分区了。主分区是独立的,对应磁盘上的第一个分区,“一般”就是C盘。在Windows系统把所有的主分区和逻辑分区都叫做“盘”或者“驱动器”,并且把所有的可存储介质都显示为操作系统的“盘”。因此,从“盘”的概念上无法区分主分区和逻辑分区。并且盘符可以在操作系统中修改,这就是要加上“一般”二字的原因。
2)扩展分区:除了主分区外,剩余的磁盘空间就是扩展分区了,扩展分区是一个概念,实际上是看不到的。当整个硬盘分为一个主分区的时候,就没有了扩展分区。
3)逻辑分区:在扩展分区上面,可以创建多个逻辑分区。逻辑分区相当于一块存储截止,和操作系统还有别的逻辑分区、主分区没有什么关系,是“独立的”。
4)活动分区:就是当前活动的、操作系统可以启动的分区。
格式化是针对主分区和逻辑分区的。要格式化是因为这和操作系统管理文件系统有关系。没有格式化的分区就像一张白纸,要写入数据,必须对白纸打上“格子”,每格子里面写一块。而操作系统只认这些格子。
MBR磁盘图解:
GPT(GUID Partition Table),即全局唯一标识分区列表,是一个物理硬盘的分区结构。它用来替代BIOS中的主引导记录分区表(MBR)。它是可扩展固件接口(EFI)标准(被Intel用于替代个人计算机的BIOS)的一部分,被用于替代BIOS系统中的一32bits来存储逻辑块地址和大小
对于GPT磁盘上的分区类型:只有主分区,理论上支持128个主分区,每个主分区上都可以引导操作系统。
1.2文件系统
文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构;即在磁盘上组织文件的方法。也指用于存储文件的磁盘或分区,或文件系统种类。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统由三部分组成:与文件管理有关软件、被管理文件以及实施文件管理所需数据结构。从系统角度来看,文件系统是对文件存储器空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。
常见的操作系统所依赖的文件系统:
Windows :FAT16、FAT32、NTFS等
MacOS X: HFS、HFS+、APFS(MacOS 10.13+)
Linux:EXT系列、JFFS2、YAFFS、RAMFS等,由于底层虚拟文件系统(VFS)的支持,Linux可以兼容其他大多数操作系统的文件系统。
2. BIOS和UEFI
2.1 名词解释
BIOS(Basic Input Output System)全称"基本输入输出系统"。它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。
UEFI(Unified Extensible Firmware Interface)全称“统一的可扩展固件接口”, 是一种详细描述全新类型接口的标准。这种接口用于操作系统自动从预启动的操作环境,加载到一种操作系统上,从而使开机程序化繁为简,节省时间。可扩展固件接口(Extensible Firmware Interface,EFI)是 Intel 为 PC 固件的体系结构、接口和服务提出的建议标准。其主要目的是为了提供一组在 OS 加载之前(启动前)在所有平台上一致的、正确指定的启动服务。传统BIOS主要支持MBR引导,UEFI则是取代传统BIOS,它加入了对新硬件的支持,其中就有2TB以上硬盘。
2.2 启动过程(以Windows为例)
BIOS下的启动过程:
加电自检->按顺序尝试启动项->主引导记录(mbr)->分区引导记录(pbr)->启动管理器(bootmgr)->配置文件(bcd)->winload.exe->ntoskrnl.exe->注册表
UEFI下的启动过程:
加电初始化->efi shell->启动管理器(*.efi)->配置文件(bcd)->winload.efi->ntoskrnl.exe->注册表信息的主开机纪录(MBR)分区表。
附图:
3. Windows 部署篇
3.1 Windows 10安装, 略。
3.2 Windows 10 + Windows 7 双系统安装经验分享(待更)
3.3 Win 8 PE 加入BCD引导菜单(待更)
4. Deepin-Linux篇
官网:https://www.deepin.org/
5. Mac OS X 篇
国内权威黑苹果论坛 - DIY你的苹果系统:
远景论坛:http://bbs.pcbeta.com/forum.php?gid=86
Clover详解:
https://blog.csdn.net/geekmubai/article/details/81608491
一些经验(待更)