文件系统【2】

硬盘分区Hard disk partition

        硬盘分区实质上是对硬盘的一种格式化,然后才能使用硬盘保存各种信息。创建分区时,就已经设置好了硬盘的各项物理参数,指定了硬盘主引导记录(即Master Boot Record,一般简称为MBR)和引导记录备份的存放位置。而对于文件系统以及其他操作系统管理硬盘所需要的信息则是通过之后的高级格式化,即Format命令来实现[1]。 它们为电脑在硬盘上存储数据起到标记定位的作用【2】。其实完全可以只创建一个分区使用全部或部分的硬盘空间。但不论划分了多少个分区,也不论使用的是SCSI硬盘还是IDE硬盘,必须把硬盘的主分区设定为活动分区,才能够通过硬盘启动系统。

       我们将包含MBR引导代码的扇区称为主引导扇区。因这一扇区中,引导代码占有绝大部分的空间,故而将习惯将该扇区称为MBR扇区(简称MBR)。

        由于这一扇区承担有不同于磁盘上其他普通存储空间的特殊管理职能,作为管理整个磁盘空间的一个特殊空间,它不属于磁盘上的任何分区,因而分区空间内的格式化命令不能清除主引导记录的任何信息。

        一个分区的所有扇区必须连续,硬盘可以有最多4个物理上的分区,这4个物理分区可以是4个主分区或者3个主分区加一个扩展分区。在DOS/Windows管理下的扩展分区里,可以而且必须再继续划分逻辑分区(逻辑盘)。

主引导扇区

        硬盘的引导记录(MBR)是不属于任何一个操作系统,也不能用操作系统提供的磁盘操作命令来读取它。但我们可以用ROM-BIOS中提供的INT13H的2号功能来读出该扇区的内容,也可用软件工具Norton8.0中的DISKEDIT.EXE来读取【4】。

        主引导扇区由三个部分组成(共占用512个字节):

MBR主要组成

        MBR 中最重要的是启动引导程序,它先于所有的操作系统被调入内存并发挥作用,加载操作系统的内核,然后才将控制权交给活动主分区内的操作系统。如果我的电脑上只安装了一个操作系统,那么这个操作系统的启动引导程序就会安装在 MBR 中。

        但是在有些时候,我的服务器中安装了多个操作系统, 每种操作系统的文件格式不同,因此,每种操作系统的启动引导程序也不一样。不同的操作系统只有使用自己的启动引导程序才能加载自己的内核, 很明显,一个 MBR 是不够用的。

        那么如何才能装载多种系统的引导呢?  每块硬盘只能有一个 MBR ,所以不可能増加 MBR 的数量。系统只能在每个文件系统(可以看成分区)中单独划分出一个扇区,称作引导扇区(Boot Sector)【5】。每个分区的引导扇区中也能安装启动引导程序,也就是说,在 MBR 和每个单独分区的引导扇区中都可以安装启动引导程序。这样多个操作系统才能安装在同一台服务器中(每个操作系统要安装在不同的分区中),而且每个操作系统都是可以启动的。

        接下就引出了另外一个话题,如何找到分区中的引导扇区加载系统程序? 由于BIOS 上电只能找到第一个扇区的MBR 中的启动引导程序,很自然的,必须在这里留下分区中的引导扇区的地址。所以,多个系统的启动过程会跳出一个可以让用户选择的菜单,来选择到底启动哪个系统,这是多系统启动的关键。选择菜单功能由第一个扇区的操作系统的引导程序提供。注意 :Windows 的启动引导程序不能调用 Linux 的启动引导程序,所以我们一般建议先安装 Windows,后安装 Linux,是为了将 Linux 的启动引导程序安装到 MBR 中,覆盖 Windows 的启动引导程序。

        当然,这个安装顺序不是绝对的,就算最后安装了 Windows,我们也可以通过手工再安装 GRUB 的方法,来保证 MBR 中安装的还是 Linux 的启动引导程序。


MBR在启动过程中的功能

同一台电脑同一个硬盘最多支持安装系统个数与分区数目有关,不管信不信,这位老哥就安装了145个操作系统。

高级格式化Advanced Format

        高级格式化,又称逻辑格式化,它是指根据用户选定的文件系统(如FAT12、FAT16、FAT32、NTFS、EXT2、EXT3等),在磁盘的特定区域写入特定数据,以达到初始化磁盘或磁盘分区、清除原磁盘或磁盘分区中所有文件的一个操作。

        长期以来,机械硬盘在储存数据时,一直都是以512byte大小的扇区(Sector)为单位分割进行读写。每512byte的数据之间,需要间隔一个同步/分隔(Sync/DAM)区域和一个ECC错误校验区域。

Windows引导方式

Legacy + MBR

        Legacy BIOS无法识别GPT分区表格式,所以也没有Legacy BIOS+GPT组合方式;

WinXP:

        读取并运行主引导记录(Master Boot Record,MBR) --> 读入活动分区的引导扇区 --> NTLDR装入并初始化,将系统有实模式转化为平滑模式 --> 运行一个迷你文件系统驱动(支持FAT和NTFS格式) --> NTLDR读入boot.ini文件,根据其内容生成开机选项,对开机系统进行选择,并加载所选择系统的加载文件。来自百度百科和Blog。【7】

Win7:

       读取MBR中的硬盘分区表DPT --> 寻找活动分区,找到其中的引导记录PBR --> PBR搜索活动区中的启动管理器Bootmgr(相当于xp里的NTLDR) --> Bootmgr寻找活动分区中的boot文件夹中的BCD文件(启动配置数据,相当于xp里的boot.ini文件) ->根据BCD文件在显示器上显示多操作系统选择画面 --> 根据选择的系统寻找对应的盘里的windows\system32\winload.exe文件,并且将控制权交给downloadable.【7】

UEFI + GPT

        UEFI BIOS可同时识别MBR分区和GPT分区,所以UEFI下,MBR和GPT磁盘都可用于启动操作系统。不过由于Windows限制,UEFI下使用Windows安装程序安装操作系统是只能将系统安装在GPT磁盘中

         开机通电自检 --> 根据引导顺序扫描存储设备,读取FAT格式的EFI系统分区 -->执行启动文件(笔者为Bootx64.efi)--> 在此分区中加载启动管理器和读取配置的BCD文件 --> 进行操作系统的选择和对应文件的加载。

        UEFI + GPT启动方式没有读取MBR;系统引导所需要的引导程序与配置文件放置在额外划分出来的FAT格式的磁盘分区上(而不像之前的引导方式一样引导程序和最终的系统文件均放置在活动分区中)。;设备通过上述分区中的bootmgfw.efi文件来读取BCD文件,用户选择系统后,BCD文件根据自身的配置内容加载系统引导文件winload.efi(对Windows而言)。

实战——Win10 + Ubuntu 17.04 双系统 

双系统

linux与windows双系统的安装步骤

过程大致如下:

1. 得到一个大约20G 的空分区

2. 重启系统,用U盘引导盘启动系统(原理与活动分区启动类似),进行linux系统安装

3. linux分区,选择安装引导文件到/boot分区(如果不这么做,恢复覆盖windows的启动文件)

4. 用EasyBCD 2.3,在windows的BCD文件(启动配置数据)中添加linux启动文件的相关信息

5. 双系统安装完成!^_^ !

数据恢复

DiskGenius

使用DiskGenius软件恢复数据的详细教程

diskGenius 目录结构扫描重组恢复数据方法

数据恢复进度保存

EasyRecovery



基本磁盘上,只准许同一磁盘上的连续空间划分为一个分区。

在动态磁盘上没有分区的磁盘概念,它以“卷”命名。卷和分区差距很大,同一分区只能存在于一个物理磁盘上,而同一个卷却可以跨越多达32个物理磁盘,这在服务器上是非常实用的功能。而且卷还可以提供多种容错功能

参考文献


【1】硬盘分区

【2】Fdisk

【3】自举概念

【4】主引导记录 MBR

【5】主引导记录

【6】引导扇区

【7】windows启动过程和双系统的启动文件配置

【8】EBR内容解析

你可能感兴趣的:(文件系统【2】)