由于时间有限,我只对方法作一些简短的介绍,如需更多信息与解释,请参见www.linuxsir.org,或者谷歌
对于文中的谬误,肯请请指正。谢谢!
一、grub 引导程序
除开版本的差别,grub 分为三种,grub1(grub lengacy)、wingrub(grub 4 dos /grub for dos)、grub2
粗略地讲,grub1是原始的grub,用于linux,而grub for dos是grub 的windows版本。二者在绝大多数命令上是一致的。
grub2是grub1的改进版,它的命令在grub1的基础上作了比较大的改变,并且具有更强的灵活性。如grub2使用的是grub.cfg而非menu.lst
其实它就是一个脚本。grub2使用linux加载内核而非 kernerl ,但是命令结构并无太大改变。
如果你还不会使用grub命令,教程:请谷歌
grub4dos新手教程 wiki
grub2基础教程
二、从windows引导进入linux(这属于间接引导)
这里要用到grub4dos.请放到系统盘根目录,然后要做的就是
1:由windows引导程序(对于XP来说是NTLDR)引导wingrub(如这个grldr).
2:然后由wingrub引导你的linux或者其它的windows系统
实例,以XP为例(在C盘),使用wingrub中引导程序grldr
a.打开boot.ini(它是只读的,请修改为可写,可采用DOS命令:attrib -r boot.ini )并添加一行:
c:/grldr="grldr"
b.在c盘创建一个menu.lst文本文件,添加你要启动的系统。
如:
三、由grub2引导进入linux或者windows系统
说明:其实方法同前面的grubfor dos类似,只是其中的kernel要改写为linux
grub2使用的菜单是grub.cfg,这个文件在/boot/grub/grub.cfg.
实例:
注:uuid=****可以用/dev/sda*替换。你自己输入命令ls -l /dev/disk/by-uuid查询 当我们安装新的系统后,有可能并没有在grub.cfg下更新新的系统,这时可以
在grub2的命令行下直接输入上面的命令以启动自己的系统,然后再修改grub.cfg,
也可以通过命令的方式更新grub.cfg:sudo update-grub2
四、从grub rescue中启动linux系统。(假设grub是被写到MBR中的)
当调整的分区后一般会引起grub找不到grub.cfg.这时可以只需要告诉grub操作系统的位置,以及boot的位置,例如:
上面的工作做了之后记得重建grub.cfg:sudo update-grub2
并且重写grub到mbr: sudo grub-install /dev/sda
大家可以参见我之前的一篇:XP与ubuntu的引导与修复