学习 Linux_01: 引导程序

学习 Linux_01: 引导程序

当PC启动时,执行ROM中的BIOS程序:首先自检,然后从引导驱动器上的主引导记录(MBR)加载第一个扇区。MBR包含主分区表,因此可执行代码少于512byte,这部分代码叫做:第一阶段启动加载程序。加载过程为,加载MBR->运行,发现标记为active的引导驱动器上主分区->加载分区引导记录->运行该记录加载该分区一组块。

当一个引导程序获取控制权之后,它可能做的一件事就是加载另一个引导程序。这称为链式加载(chain loading)

GRUB(Grand Unified Bootloader)

GRUB包含三个文件:

stage1:引导扇区引导程序的备份,只有512字节(前446字节为引导程序),作用是在系统启动时装载STAGE1.5/2并将控制权交给后者

stage1.5:(选择装入)用来识别不同文件系统格式的stage2,由于紧接着mbr,fs再怎么也只能从0面1柱面1扇区开始,这样就两个好处:一来stage1可以方便的找到他,二来stage2可以通过它来解释,stage1.5是为了配合stage2安装的,例如当初安装stage2的时候如果是安装在了ext2文件系统上,stage1.5就是用来解释ext2的文件。

stage2:除了加载自己,所有功能都由它实现

start.s:加载stage1.5或stage2

整个过程为:

Bios->stage1->start.s(->stage1.5)->stage2

恢复

另一个安装损坏了MBR(本质上是stage1部分坏了)

比如又一次安装了windows,此时覆盖掉了stage1,只要想办法进入到linux,运行grub-install就可以了。具体的方法是通过启动盘(软盘,U盘,安装盘)

移动一个分区(本质上是stage2搬家了)

避免这个问题的方法是使用UUIDs,这样只需要更新配置文件而不需要更新/etc/fsab,在使用USB驱动器的时候特别有用

另一个方法是使用一个独立的boot分区,这个分区不易变动,专职启动(将stage2装于此)

构建一个自含式启动软盘或 CD-ROM

将stage1~stage2都装在CD-ROM或软盘上,用来启动

另外学到的一些知识:

grub-install命令是安装stage1到mbr或者dbr,:

grub-install /dev/sda 或

grub-install '(hd0)'

grub-install /dev/sda11或

grub-install '(hd0,10)'

grub自带命令root,setup是配置整个过程的,是按照默认的方式运行(通过help得到的知识是:自动安装grub到root指定的设备,使用的是root指定设备上的映像)

也可以将stage1和stage2直接拷贝到软盘中,这样会破坏fs,使用的是dd命令进行拷贝

posted on 2011-10-04 19:30  Observer  阅读(232)  评论(0)    收藏  举报

导航