引导管理器介绍

  NTLOADERWindows系统的启动引导管理器,Windows安装时,系统会自动安装该引导管理器,好像用户没有办法选择不安装。Grub是目前多数Linux系统所采用的启动引导管理器,系统安装时会提示用户选择安装该引导管理器 MBR(主引导记录)上,或是安装在系统的boot区上,或者是不安装。NTLOADERGrub除了可以各自引导相应的系统启动外,两者之间还可以互相引导,这就使得了两种不同的系统通过合理地引导而共存于同一机器上,也就是我们所说的安装多个系统。

  NELOADERGrub可以互相引导,我们就可以合理安装两种引导管理器,以达到符合个人自己的习惯。习惯于Linux的用户通常都会把Grub安装于MBR上,通过Grub->NTLOADER->Windows的方式进入Windows系统。习惯于windows的用户,还是觉得原来的Windows开机画面用起来称手,在该画面上选择相应的Linux菜单进入Linux系统会感到自然些,也就是NTLOADER->Grub->Linux方式进入Linux系统。

Grub介绍

  GRUBGRand Unified Bootloader)是一个默认安装的功能强大的引导装载程序。引导装载程序是计算机启动时所运行的第一个软件,它的责任是载入操作系统内核软件并把控制转交给它,然后,内核软件再初始化剩余的操作系统。GRUB能够通过连锁载入另一个引导装载程序来载入多种操作系统,包括DOSWindowsLinux等。

  GRUB支持直接和链式装载的引导方法。GRUB能用于几乎所有操作系统,绝大多数流行的文件系统,以及几乎所有的系统BIOS所能识别的硬盘。

  grub的作用:完成多系统的引导配置,测试引用新的linux内核,只需在grub中添加对新内核的引导项即可等

 

关于root

  在 Linux 中,当谈到 "root" 文件系统时,通常是指主 Linux 分区。但是,GRUB的根文件系统与Linux的根文件系统是没有关系的,GRUB 有它自己的 root 分区定义。GRUB root 分区是保存 Linux 内核的分区。

  GRUB的根文件系统是用于一个特定设备的根分区。GRUB使用这个信息来挂入(mount)这个设备并从它上面载入文件。在Red Hat Linux中,一旦GRUB载入它自己的包含Linux内核的根分区,那么kernel命令就可以将内核文件的位置作为一个选项来执行。一旦Linux内核引导,它就设定自己的根文件系统,此时的根文件系统Linux系统的根分区了。最初的GRUB根文件系统以及它的挂入都被去掉,它们仅存在 于用来引导内核文件。

 

grub>root(hdx,0) 指定boot所在分区 , 硬盘和分区均可用tab 补全 ,其设备和分区的编号都是从0开始, 相对于linux 系统命名减1

grub>kernel  /boot/..  root=/dev/hda1

grub>boot

 

grub linux 磁盘设备命名方式

  1. grub 命名

grub 命令方式参照 bios 的命令方式,所有的硬盘都是用hd开始。软盘用fd开头,后跟数字(以0开始标识第一个设备)

grub 对设备的引用

e.g.  hd0,第一个硬盘驱动器

(hd0,0)指第一个硬盘驱动器的第一个分区

(hd1,4)  第二个硬盘驱动器上的第5个分区第一个逻辑分区)

grub绝对文件名引用文件:(hd0,0)/path/to/file

 

  1. Linux设备命名

硬盘设备以hd(IDE 接口)sdscsi 接口)开头,其后跟字符以标识多个设备(以a开始标识第一个设备,对一个硬盘的不同分区则用数字编号进行分区,4个主分区用1234标识。逻辑分区始终从5开始依次编号。

e.g.   sda1:第一sd硬盘的第一个主分区

          sda7 ,第一个sd硬盘的编号为7的分区(编号大于4的是逻辑分区)

grub的模式

安全模式提供引导选项

输入密码即可切换到基本模式,基本模式又包含以下三种模式:

编辑模式:对现有配置 编辑

附加模式:创建新的菜单项

命令模式:进入grub shell命令交互模式

 

Grub 安装

grub 配置/boot/grub/grub.conf

grub 可安装 MBR或是分区之中:grub >setup (hd0)

 

获取grub

默认安装:rpm -ivh grub*.rpm

安装至硬盘MBR/sbin/grub-install /dev/sda (执行重新安装可以恢复grub)

也可以安装至指定分区:/sbin/grub-install /dev/had1

安装至/boot 分区:grub-install --root-directory=/boot /dev/hda

 

winxp下安装grub

boot.ini中添加引导项安装grub,复制grub相关文件()C

C:\grldr="Grub4dos"

 

trouble shooting

grub手动引导进入 windows

Grub>rootnoverify (hd0,0)

Grub>makactive

Grub>chainloader +1

Grub>boot

 

Linux 光盘引导修复

boot: linux rescue  进入rescue 模式,

chroot  /mnt/sysp_w_picpath

vi /boot/grub/grub.conf

 

安装windowslinux,grub 引导修复

window 引导 进入grub4dos

find /grub/stage1   #找到grub的安装分区

root (hdx,y)   #指定grub安装分区为root

setup (hd0)   #安装grubMBR ,也可安装到指定分区

修改menu.lst的引导菜单,引导又系统

 

可以进入grub 时的引导修复

直接由RHEL 6.1 中进入grub 引导

或者安装grub4dos 引导进入RHEL6 安装, Grub 写入MBR

 

手动RHEL 6安装引导

kernel (hd0,0)/vmlinuz*

initrd (hd0,0)/initrd*

boot

 

添加winxp 引导

title winxp

rootnoverify (hd0,0)

chainloader +1

 

window下用grub4dos引导安装linux

grub引导镜像

C:\grub

menu.lst

#install Linux Option

title install Linux

kernel (hd0,)/

initrd (hd0,)/

 

设置grub 引导,修改root 密码

忘记root密码,从单用户模式进入修改root 密码

grub edit>kernel /vmlinuz-2.6.9-1.667 ro root=/dev/VolGroup00/LogVol00 rhgb quiet

修改成

grub edit>kernel /vmlinuz-2.6.9-1.667 ro root=/dev/VolGroup00/LogVol00 single quiet

启动

passwd 修改前sentenforce 0 关闭selinux

或者echo "redhat" |passwd root --stdin

 

MBR中的Grub被覆盖或是清除后的恢复

grub> find  /boot/grub/stage1

(hd0,6)  

grub>root (hd0,6)    注:设定grub root 分区 , 这是/boot所在的分区

grub>setup (hd0)   注:把GRUB写到MBR上;

 

grub.conf 文件丢失后的完全重写

fdisk -l df -lh more /etc/fstab来确认分区情况;

查看内核vmlinuz的和initrd文件名的全称

ls -lh /boot/vmlinuz*

ls -lh /boot/initrd*

menu.lst的文件内容可以写为

default=0  

timeout=5

title FC4

        root (hd0,6)

        kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/ (或者root=/dev/hda7

        initrd /boot/initrd-2.6.11-1.1369_FC4.img

相关资源下载

grub解析及配置文件解析