实践系统:Windows 2003和OpenSUSE Linux 12.1
---
个人比较追求完美,把硬盘分区全部清空,完全的全新安装。
需要说明的是,OpenSUSE系统的引导采用的是GRUB 0.97,且并没有grldr,我网上找了一下,最后一个版本的grldr是0.4.4,并不支持ext4,实践得知,修改了主引导记录MBR,从MBR直接跳到OpenSUSE所在分区并启动。
我原来的想法是通过grldr手写启动列表,可惜失败了。
通常系统的启动顺序是BIOS->MBR->活动分区->引导文件->加载内核,而装上OpenSUSE后跳过了"活动分区"这一步。(个人研究,不确保正确性)
综上:必须采用OpenSUSE的引导方式。
---
一般来说是先安装Windows,再安装Linux,原因如上所述。
如果后期重装了Windows,则MBR会改动,Linux无法启动。
不知道为什么,Linux出来很久了,但Windows还是没有对Linux做一些相应的支持(如引导,文件系统等)。
---
硬盘分区:一个主分区,一个扩展分区。这两个系统都是支持的。在扩展分区上再建立N个逻辑分区。
主分区上装什么系统,这个随意,但是我什么都没装,只划分了很小的空间给它,存放Windows的引导文件就足够了。
我是把Linux装在靠前的逻辑分区上,而Windows装在后面的逻辑分区上。
先安装Linux,再安装Windows。特别的,在安装Linux时我把引导程序写在了/dev/hda上。
安装之后会直接进入Windows,此时就要修复Linux的引导。
---
插入安装光盘,重启后从光盘启动。
选择Rescue System,等一会会出现Login的字样,输入root即可,不需要密码。
输入grub,进入grub的命令行。
输入find /boot/grub/stage1回车。(即寻找Linux分区中某个文件,这个文件应该是随意的,但最好保持唯一性且是引导分区中的)
然后会显示一个信息:(hd0,x) //x是Linux的所在分区号。
输入root (hd0,x)
输入seup (hd0)
修复完成,重启后会看到grub的引导菜单。
----
至于引导菜单的修改,在Linux的引导分区中,/boot/grub/menu.lst,用文件编辑器即可修改,不过需要root权限。