Chinaunix首页 | 论坛 | 博客
  • 博客访问: 849039
  • 博文数量: 90
  • 博客积分: 766
  • 博客等级: 军士长
  • 技术积分: 1867
  • 用 户 组: 普通用户
  • 注册时间: 2011-12-18 08:42
个人简介

linux

文章分类

全部博文(90)

文章存档

2021年(2)

2020年(2)

2017年(1)

2015年(11)

2014年(1)

2013年(53)

2012年(16)

2011年(4)

分类: 系统运维

2013-05-23 17:07:53

        凡是都有局限,grub也不例外,它不能引导所有的操作系统,比如windows它就不能引导。

       鉴于以上的情况,grub为了支持引导不支持的操作系统,开发了一种chainloader的引导方法,这种chainloader引导的不是操作系统,而是另外一个引导程序,下面以grub引导windows为例来讲述grub的chainloader功能。

       chainloader是不能引导windows操作系统的,首先需要做的是进入grub命令行界面(目前基本上的linux发行版都是用的grub):

点击(此处)折叠或打开

  1. grub > ls ---列出该硬盘的的所有分区设备
  2. grub > insmod ntfs ----加载ntfs功能模块,grub的功能以功能模块的方式存放在/grub/xxx.mod
  3. grub > insmod chain ----加载chainloader功能模块
  4. grub > set root=(hd0,1) ----该硬盘上的第一个分区为XP系统分区
  5. grub > boot ----启动XP引导

       上面的几句简单的命令并不是那么简单,grub对大多数人是很神秘的,这是第一个问题。其二,必须要清楚GRUB是以模块的方式来加载功能体的,和linux的内核模块是一样的,可以用lsmod列出已经加载的模块。

       网上有很多这方面的资料,但是很多是不对的,有可能是版本的差异问题,我没有去深究,我这里学习的是第二个版本,比如:

1.加载模块
       grub > insmod xxxx/nfts.mod
        grub > insmod xxxx?insmod chainloader.mod

       我擦,这些东东是不行的,很想喷下了。
2.关于引导
       首先必须明确加载GRUB的是MBR,而MBR是和任何操作系统无关的,一张硬盘只有一个MBR,所以chainloader不是引导的MBR,而且GRUB是不能引导GRUB本身的,上面是我测试的windows,在windows当中是可以的,虽然没有完全引导起来(出现XP界面,我认为是XP系统的问题)。于是得到一个结论,GRUB可以引导WINDOWS的引导程序。而这个引导程序在通常情况下是应该有MBR来引导的,多种情况的引导图:

点击(此处)折叠或打开

  1. grub引导:

  2. 1.MBR->GRUB->linux
  3. 2.MBR->GRUB->chainloader

  4. windows引导:
  5. 1.MBR->windows引导程序(和windows系统放在一起)

  6. grub引导windows:
  7. MBR->GRUB->chainloader->windows引导程序
        由于讨论的是grub的基础知识,就不讨论另外的引导情况了。windows当然也能引导linux,比如用wubi安装的ubuntu,就是可以用windows的引导程序引导的。

阅读(1730) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~