多系统引导

Jump to: navigation, search

本文描述了如何使用GRUB进行多系统的引导,使用GRUB引导3个系统:Windows,openSUSE,OSx86。所有内容只基于我的个人经验和喜好,您可以作为参照。 如果您有任何疑问,欢迎和我交流:songtime

开始前必备的工具

SPFDISK是一个对硬盘MBR进行管理的工具,它运行在DOS下,所以,您需要制备一个启动DOS盘。我使用USBoot制作了个U盘DOS,然后把SPFDISK拷到U盘上,这样,系统出了问题,我也能够在DOS下进行修复。

分区的划分

在安装系统之前,首先需要进行分区的划分,我在一块硬盘上安装3个操作系统:Windows7,openSUSE,OSx86,而且,我需要在各系统之间共享数据,所以,我将硬盘分作4个主分区,我如下规划硬盘:

sda1 sda2 sda3 sda4
Windows系统 NTFS数据盘 openSUSE系统 OSx86系统

启动的设置

使用默认风格的MBR

MBR是该算446Byte还是该算512Byte?我也不清楚,至少这2种说法我都见过。在这里,我将MBR当作446Byte。

即:BootSector[512Byte]=MBR[446Byte]+DPT[64Byte大小的分区信息]+0x55AA

默认的MBR会加载激活的主分区上的操作系统,或者更确切的说,默认的MBR会加载激活主分区的引导程序,然后由那个引导程序去引导它自己的操作系统。我建议使用默认风格的MBR(SPFDISK提供写入默认MBR的功能,openSUSE安装DVD的救援系统也提供这个功能)。使用GRUB进行系统引导,自然需要将openSUSE所在分区设为激活才行。硬盘的引导信息如下:

硬盘划分 BootSector sda1 sda2 sda3 sda4
操作系统 x Windows 数据盘 openSUSE OSx86
文件系统 x NTFS NTFS EXT3 HFS+
引导程序 默认MBR,sda3激活 NTLoader GRUB Chameleon

OSx86的特别说明

OSx86使用Chameleon引导管理器,如果安装了某个OSx86的发行版本(iPC,iDENEB...),会提供引导管理器的安装,即HFS分区中的boot文件。我们这里使用Chameleon提供的引导管理器Chameleon项目网站,请下载一份Chameleon的bin包,其中包含boot文件,将这个boot文件改名复制到openSUSE系统的/boot目录下

cp PATH_TO_CHAMELEON_FILES/i386/boot /boot/chameleon-boot

GRUB命令行加载boot文件的命令:

kernel (hd0,3)/boot/chameleon-boot

menu.lst一览

title Windows 
   rootnoverify (hd0,0)
   chainloader +1
title openSUSE 11.2
   root (hd0,3)
   kernel /boot/vmlinuz-2.6.31.5-0.1-desktop root=/dev/disk/by-label/openSUSE splash=silent quiet showopts vga=0x317
   initrd /boot/initrd-2.6.31.5-0.1-desktop
title Leopard
   root (hd0,3)
   kernel /boot/chameleon-boot