【计算机】MBR GRUB

参考文章:

主引导目录(MBR)结构及作用详解MBR 也就是主引导记录,位于硬盘的 0 磁道、0 柱面、1 扇区中,主要记录了启动引导程序和磁盘的分区表。我们通过图 1 来看看 MBR 的结构。 图 1 MBR的结构 MBR 共占用了一个扇区,也就是【计算机】MBR GRUBhttp://c.biancheng.net/view/1015.htmlgrub原理及使用详解_终身学习的程序猿-CSDN博客_grubgrub原理及使用详解转载请注明出处:http://blog.csdn.net/rosetta         实验环境VMware+CentOS5.4。         本文将会介绍Grub的基础知识、Grub的完整安装引导过程、Linux硬盘分区基本知识等。         grub(GrandUnified Boot Loader)是有名的引导内核程序(另外一款比较有名的【计算机】MBR GRUBhttps://blog.csdn.net/rosetta/article/details/8687556

1、BIOS是计算机上电时运行的代码,实现上电自检和系统加载工作。进入BIOS的时候按F12或者某个按键可以进入BIOS选项,可以进行BIOS配置。

2、BIOS配置的时候可以选择BOOT Device,可以是磁盘、网络、CDROM、U盘等。

3、选择了磁盘启动的话,BIOS会将磁盘的MBR加载到内存中运行,MBR的前446个字节是启动引导程序,也就是BootLoader代码,可以将Windows或者Linux内核加载到内存并移交控制权。MBR剩下的66个字节的内容中有64个字节存放分区内容,最后两个字节是结束标记。MBR最多可以表示4个主分区,一个主分区需要16个字节来描述。

4、一个计算机可以安装多个操作系统,例如Windows + Linux,每一个操作系统必须放在一个单独的主分区之中(MBR支持将硬盘分成4个主分区)。

4、如果系统安装了多系统,每种操作系统的加载方式不一样,所以每个装有操作系统的主分区中需要单独开辟一块区域来用于存放引导本操作系统的程序,这块区域叫做引导扇区(Boot Sector),不同的操作系统的引导扇区的内容不一样,这也是属于BootLoader。如果BIOS属于BootLoader的第一阶段,MBR里面的启动引导程序属于BootLoader的第二阶段,那么引导扇区属于BootLoader的第三阶段。

5、这时候MBR就需要能够识别、选择、加载不同主分区中的操作系统,但是限于MBR的启动引导程序的空间限制,难以仅凭借446个字节完成上诉操作,所以扩展启动引导程序的功能。

6、GRUB是一个为了解决上诉问题的启动引导程序,全称GRand Unified Bootloader,是一种BootLoader,它的一部分程序放在MBR中,剩下的放在其它位置,这样一来启动引导程序的大小就不受限制了,可以实现多系统识别、选择和加载功能。

7、做个测试,找一个不用的U盘,用WinHEX软件打开磁盘:

【计算机】MBR GRUB

把前512个字节(0x0000 - 0x1FFF)空间内容清零,这样MBR内容都是空的了:

【计算机】MBR GRUB

打开计算机管理里面的磁盘管理,发现有一个磁盘:

【计算机】MBR GRUB

 文件系统类型写的是RAW,原始数据,表示没有文件系统,因为主引导记录中没有有效的主分区记录。然后下载一个操作系统镜像文件,Windows或者Linux都行,我下的是TinyCore(TinyCore-current.iso),非常小,仅包含一个linux内核vmlinuz和一个很精简的根文件系统:Downloads Tiny Core Linux【计算机】MBR GRUBhttp://www.tinycorelinux.net/downloads.html

然后使用UltroISO软件写入硬盘镜像到U盘中去,注意写入了一个引导扇区Syslinux, 

【计算机】MBR GRUB

 这时候查看磁盘管理和我的电脑里面能看到一个正常的磁盘了:

【计算机】MBR GRUB

WinHex查看内容:

【计算机】MBR GRUB

 MBR中存在一个主分区记录,同时启动引导程序也是有有效代码了。找一个不用的电脑,插入U盘,开机的时候按F12(ThinkPad),选择U盘启动,成功启动TinyCore:

【计算机】MBR GRUB 

【计算机】MBR GRUB

【计算机】MBR GRUB

尝试将MBR里的启动引导程序随便篡改一些或者删除分区表内容,系统就无法启动了。

 

上一篇:Ubuntu系统的开机全流程介绍及grub美化


下一篇:Centos 7 的一些 基础知识