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文件这样修改即可:
- timeout 10
- title Windows at (hd0,0)
- root (hd0,0)
- chainloader +1
- title Fedora (hdx,y)
- root (hdx,y)
- chainloader +1
- 注:(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) |