首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | HR | 镜像
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
搜索中心 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>linux基础>安装配置>正文

关于Linux系统下Grub启动流程的讨论总结

http://www.oklinux.cn  2007-08-22  赛迪网 metallcia  会员收藏  游客收藏  【 】 
您查看的文章来源于http://www.oklinux.cn

全世界linuxer都知道grub是什么东西,但对于MBR引导到grub再引导到具体操作系统的这个流程可能有不少朋友就比较迷糊了。这不,cu上一位朋友就发出了这样一个求助贴:

 

假如现在一台电脑上装了WIN2000系统,那么我现在在装上LINUX系统和GRUB,那么假如把GRUB装在主分区的话,GRUB直接引导 LINUX和WIN2000,我是可以理解的,因为MBR中是GRUB的STAGE1(对不对呢?),MBR通过检查DPT分区信息引导系统跳转至DBR (活动分区),我这里想问的活动分区是什么时候设的呢?那么装GRUB到MBR里,那原来MBR中的WIN的引导信息是怎么处理的呢?是不是我们假如说装 GRUB到MBR的时候,GRUB就把GRUB所在那个区设置为了活动分区了呢?然后GRUB引导时候,MBR就找到那个活动分区找到所需要的文件,然后继续呢?假如说把GRUB装到其他分区(非主引导区)的话,那是怎么样实现GRUB先启动的呢?不是先MBR吗?因为装到了其他分区,没有改主引导区,因此主引导区还是WIN2000的引导数据啊,怎么会GRUB先启动了呢?这是为什么呢?跟活动分区有关系没有呢?我看资料上写的是哪个系统启动哪个系统就是活动分区,可是那样的话,似乎就解释不通了啊,就是最最开始这个地方一直不懂,理不清楚。

 

下面就是cu各个玩家对这个问题分析讨论的总结。

 

首先让我们看看传统的启动流程:加载并运行Master Boot Record(MBR)主引导区内容(如lilo等)。然后扫描分区表,定位活动分区,并将活动分区上的引导扇区内容加载到内存中执行。

 

系统引导过程主要由以下几个步骤组成(以硬盘启动为例)

 

1、 开机;

2、 BIOS加电自检(POST——Power On Self Test),内存地址为0fff:0000;

3、 将硬盘第一个扇区(0头0道1扇区,也就是Boot Sector)读入内存地址0000:7c00处;

4、 检查(WORD)0000:7dfe是否等于0xaa55.若不等于则转去尝试其他介质;如果没有其他启动介质,则显示 “No ROM BASIC” ,然后死机;

5、 跳转到0000:7c00处执行MBR中的程序;

6、 MBR先将自己复制到0000:0600处,然后继续执行;

7、 在主分区表中搜索标志为活动的分区。如果发现没有活动分区或者不止一个活动分区,则停止;

8、 将活动分区的第一个扇区读入内存地址0000:7c00处;

9、 检查(WORD)0000:7dfe是否等于0xaa55,若不等于则显示 “Missing Operating System”,然后停止,或尝试软盘启动;

10、 跳转到0000:7c00处继续执行特定系统的启动程序;

11、 启动系统。

 

装grub到逻辑分区,那么就一定把grub装入的逻辑分区设为活动的。不过,这时候,grub接管了11步以后的动作:从stage 1.5读出grub.conf。再由配置和用户选择决定下一步的引导行为。

 

一般安装grub都有两种情况,对于安装到MBR这种情况而言,GRUB直接覆盖了原来的MBR引导程序。这也是为什么要换回“原来的 windows的引导方式”,只要用dos引导fdisk /mbr一下就可以的原因。为什么可以这样做,请注意,1-11步中有两个地方出现了0000:7c00。不管是dos boot sector还是nt loader它本身也是从0000:7c00运行的。其实ms当年开发分区管理的这个小程序相当于是在bios引导boot sector中插进去的。grub因为也是写的从0000:7c00这个内存开始的子程序,那么既可以被BIOS加载又可以被dos的MBR加载应该好理解了吧。

 

开机自检后,引导权交给了硬盘的MBR,此时grub就启动了。由grub来引导windows /linux都可以。注意:linux不一定要安装在活动分区,因为引导程序在MBR!但是windows一定要安装在活动分区(可引导的 windows),第二个windows可以不安装在活动分区,但它的引导文件一定在活动分区。

共2页: 上一页 1 [2] 下一页

上一篇:Ubuntu下用多个Sources.list文件加速APT   下一篇:Linux系统上Lftp工具使用的一些技巧

收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·解决重装Windows后不能引导Linux的问题
·介绍Linux操作系统下关于声卡配置的方法
·Linux系统Boot分区损坏或误删的修复方法
·在Ubuntu 7.04系统下面安装Bea tuxedo 9.1
·在Ubuntu系统中安装RPM格式软件包的方法
·Ubuntu Linux上边的CVS服务器的配置
·在硬盘中安装Linux系统最简单的方法
·Ubuntu Linux中备份安装的软件列表的技巧
·Linux与Windows系统下Cronolog安装配置
·引导Linux系统:借助ISO镜像文件的技巧
·Redhat下的软件安装 RPM包管理工具介绍
·用Kickstart远程安装Linux操作系统的方法
·多操作系统的分区划分 关于Grub设置问题
·OpenVPN在Linux系统下的安装配置和使用
·Linux下如何编译安装源码包软件
·在Linux操作系统下合理规划您的硬盘分区
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·Fedora11 beta i386安装图解
·红旗Linux 6.0 SP1桌面安装图解
·利用虚拟机在移动硬盘中安装Puppy Linu
·红旗Linux6.0 SP1桌面版安装 xfce 4.4.
·利用Ubuntu 8.10的usb-creator创建Live
·Ubuntu 8.10 更新源整理
·用kexec迅速切换内核
·Bazaar:分布式的版本控制系统
·Linux终端捕获
·openSUSE 11.0 NTFS分区硬盘安装过程
·GRUB2 引导程序的发展目标
·SUSE10.3恢复GRUB方法
  阅读排行
·Ubuntu 8.10 更新源整理
·从硬盘安装RHEL 5(Red Hat Enterprise
·Redhat5 Server下载、序列号以及相关介
·Linux对EXT3分区大小进行无损更改的步
· 在U盘上安装Damn Small Linux
·Fedora11 beta i386安装图解
·Ubuntu Linux 中 ADSL PPPoE 宽带上网
·主流显卡Linux驱动安装-Intel、ATi篇
·安装Ubuntu Linux分区的推荐方案和方法
·XP下硬盘安装Ubuntu8.04的2种方法
· U盘上运行的linux系统--babylinux
·Linux的GRUB引导程序配置方法大全
·新手学堂 详细讲解Ubuntu Server安装过
·Linux文件的复制、删除和移动命令
·让linux系统可以Mount NTFS分区
网摘收藏: