Chinaunix首页 | 论坛 | 博客
  • 博客访问: 105141
  • 博文数量: 21
  • 博客积分: 415
  • 博客等级: 一等列兵
  • 技术积分: 228
  • 用 户 组: 普通用户
  • 注册时间: 2011-07-11 12:17
文章分类

全部博文(21)

文章存档

2014年(1)

2012年(7)

2011年(13)

分类: LINUX

2011-07-11 12:52:06

linux引导grub安装到非mbr(linux所在分区) 启动linux的方法     

通常大家在装双操作系统的时候(windows+linux)时候,通常会把linux的grub引导程序安装在MBR中。理由很简单,因为grub是一个非常优秀的bootloader,不仅可以引导linux而且可以引导windows 最近在网上看到有人发帖『如果在用wingrub或者grub4dos装linux的时候,将linux的grub装到非mbr中应该怎样引导linux? 』 
 我也遇到了这个问题,去查看了很多类似帖子和恢复。里面的很多恢复都是建议将grub装到mbr中便于管理,甚至有些人说『装到非mbr(linux所在分区)中干什么?那怎么引导?』如果真的装到非mbr没用的话,干嘛linux安装的时候会增加这个选项???!!!     于是找了grub的手册研究尝试,找到了解决方案。

 [解决如下:]    
在我们用wingrub或者grub4dos安装的时候,会在本地生成一个menu.list文件,其实这个就是一个脚本文件,用来运行在grub界面中的一些脚本代码。    当装好linux中(当然grub在非mbr分区中,即linux所在分区),将menu.list文件这样修改即可:         
  1. timeout 10
  2. title Windows at (hd0,0)
  3. root (hd0,0)
  4. chainloader +1
  5. title Fedora (hdx,y)
  6. root (hdx,y)
  7. chainloader +1
  8. 注:(hdx,y)即你的linux所在的分区。很简单的。

 [原理:1] 
chain-load:  chain-load is the mechanism for loading unsupported operating systems by loading another bootloader. It is typically used for loading DOS or Windows. chainloader [‘--force’] file(命令)    Load file as a chain-loader. Like any other file loaded by the filesystem code, it can    use the blocklist notation (see Section 11.3 [Block list syntax], page 44) to grab the    first sector of the current partition with ‘+1’. If you specify the option ‘--force’, then    load file forcibly, whether it has a correct signature or not. This is required when you    want to load a defective boot loader, such as SCO UnixWare 7.1. 
【以上来自the GNU GRUB manual】 

[原理:2] 
grub中chainloader +1,此处'+1'是指示GRUB读入分区的第一个扇区的引导记录。 
【以上来自百度百科】

 [原理:3] 
这样重启电脑的时候,选择自己原先定义好的标题(boot.ini中),便会进入wingrub。然后选择第二项,便会读入linux所在分区的grub记录,从而启动linux。流程:mbr----bootloader(boot.ini,进入选择界面)---wingrub(为了安装双系统而安装的wingrub)-----linux的grub(linux操作系统自带的bootloader)-----启动linux

 [总结:] 
这样一来windows的引导程序和linux的引导程序都没有丢失(以前往往是linux的grub覆盖原先windows的,造成重装windows系统后又覆盖掉linux的grub,造成不能启动linux) 当重装windows的时候只要再在wingrub的menu.list里面添加以上,就可以继续使用linux了。不需要livecd引导再建grub的过程!!!

阅读(1799) | 评论(1) | 转发(0) |
0

上一篇:没有了

下一篇:Unicode和中文的相互转换

给主人留下些什么吧!~~

iamlyg982011-07-11 13:03:35

好文!