1 首先要了解的几个概念
1.1 发动管理器
发动管理器是存储在磁盘开端扇区中的一段程序,例如,硬盘的MBR(Master Boot Record),在体系完结发动测验后,假如体系是从MBR发动,则BIOS(Basic Input/Output System)将操控传送给MBR。然后存储在MBR中的这段程序将运转。这段程序被称为发动管理器。它的使命便是将操控传送给操作体系,完结发动进程》有许多可用的发动管理器,包含GNU GRUB (Grand Unified Boot Loader),Bootmanager, LILO (LInux LOader), NTLDR (boot loader for Windows NT systems),等等等.
1.2 什么是GRUB?
grub 是一个多重发动管理器。grub是GRand Unified Bootloader的缩写,它能够在多个操作体系共存时挑选引导哪个体系。它能够引导的操作体系包含:
Linux,FreeBSD,Solaris,NetBSD,BeOSi,OS/2,Windows95/98,Windows NT,Windows2000,WinXP。它能够载入操作体系的内核和初始化操作体系(如Linux,FreeBSD),或许把引导权交给操作体系(如Windows 98)来完结引导。
1.3 GRUB的特色
特别适用于linux与其它操作体系共存状况。
支撑大硬盘 现在大多数Linux发行版别的lilo都有相同的一个问题:根分区(/boot分区)不能分在超越1024柱面的当地,一般是在8.4G左右的当地,不然lilo不能装置,或许装置后不能正确引导体系。而grub就不会呈现这种状况,只需装置时你的大硬盘是在LBA形式下,grub就能够引导根分区在8G以外的操作体系。
支撑开机画面 grub支撑在引导开机的一起显现一个开机画面。关于玩家来说,这样能够制造自己的个性化开机画面;关于PC厂商,这样能够在开机时显现电脑的一些信息和厂商的标志等。grub支撑640×480,800×600,1024×768各种形式的开机画面,并且能够主动侦测挑选最佳形式,与Windows那320×400的开机画面不可同日而语。
两种履行形式 grub不光能够经过装备文件进行例行的引导,还能够在挑选引导前动态改动引导时的参数,还能够动态加载各种设备。例如你在Linux下编译了一个新的中心,但不能确认它能不能作业,你就能够在引导时动态改动grub的参数,测验装载这个新的中心进行运用。Grub的指令行有十分强壮的功用,并且支撑如bash或doskey相同的前史功用,你能够用上下键来寻觅曾经的指令。
菜单式挑选 grub运用一个菜单来挑选不同的体系进行引导。你还能够自己装备各种参数,如延迟时间,默许操作体系等。
分区巨细改动后不用重新装备 grub是经过文件体系直接把中心读取到内存,因而只需操作体系中心的途径没有改动,grub就能够引导体系。
除此之外,Grub还有许多十分强壮的功用。例如支撑多种外部设备,动态装载操作体系内核,乃至能够经过网络装载操作体系中心。Grub支撑多种文件体系,支撑多种可履行文件格局,支撑主动解压,能够引导不支撑多重引导的操作体系,支撑网络发动等。
1.4 MBR和榜首扇区
你能够简略的理解为MBR是整个硬盘的物理榜首方位,而榜首扇区是硬盘的物理第二方位.
1.5 一个GRUB装备文件
根据本例的分区如下:
hda 15G
hda1 8G / RED HAT LINUX8.0
hda5 7G /home
hdc 20G
hdc1 6.4G WinXP
hdc5 6.4G
hdc6 6.4G
hdc7 6.4G
#fdisk -l
# Disk /dev/hdc: 255 heads, 63 sectors, 2434 cylinders
Units = cylinders of 16065 * 512 bytes
Device Boot Start End Blocks Id System
/dev/hdc1 * 1 894 7181023+ b Win95 FAT32
/dev/hdc2 895 2434 12370050 f Win95 Ext’d (LBA)
/dev/hdc5 895 1787 7172991 b Win95 FAT32
/dev/hdc6 1788 2434 5196996 b Win95 FAT32
Disk /dev/hda: 255 heads, 63 sectors, 1867 cylinders
Units = cylinders of 16065 * 512 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 1020 8193118+ 83 Linux
/dev/hda2 1021 1802 6281415 83 Linux
/dev/hda3 1803 1867 522112+ 82 Linux swap
grub.conf,这个文件坐落;/boot/grub/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You do not have a /boot partition. This means that
# all kernel and initrd paths are relative to /, eg.
# root (hd0,0)
# kernel /boot/vmlinuz-version ro root=/dev/hda1
# initrd /boot/initrd-version.img
#boot=/dev/hda
default=0
timeout=3
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title Red Hat Linux (2.4.18-14)
root (hd0,0)
kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/
initrd /boot/initrd-2.4.18-14.img
title Microsoft Windows XP
map (hd0) (hd1)
map (hd1) (hd0)
root (hd1,0)
chainloader (hd1,0)+1
makeactive
boot
2 解读grub.conf文件
咱们将来看看grub.conf文件内句子,(注:…)内的东西是咱们的解读内容.
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You do not have a /boot partition. This means that
# all kernel and initrd paths are relative to /, eg.
# root (hd0,0)
# kernel /boot/vmlinuz-version ro root=/dev/hda1
# initrd /boot/initrd-version.img
#boot=/dev/hda (注:以上以符号井#最初的行标明被注释掉,没有任何含义)
default=0 (注:默许的操作体系便是由default操控的。default后加一个数字n,标明是第 n+1个。需求留意的是,GRUB中,计数是从0开端的,榜首个硬盘是hd0,榜首 个软驱是fd0,等等。所以,default 0 标明默许的操作体系在这儿是 Red Hat Linux (2.4.18-14)假如你修改成1便是WinXP了)