Chinaunix首页 | 论坛 | 博客
  • 博客访问: 487773
  • 博文数量: 82
  • 博客积分: 3003
  • 博客等级: 中校
  • 技术积分: 1285
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-11 15:27
文章分类

全部博文(82)

文章存档

2011年(1)

2010年(5)

2009年(63)

2008年(13)

我的朋友

分类: LINUX

2009-10-11 23:31:48

环境:

RHEL 5.3

 

原理描述:

raid1设备上安装RHEL5.3,将其分为三个分区:/,/boot,swap。然后我们移除第二块磁盘,发现能够顺利启动并且一切正常。但是当我们移除第一块磁盘时,系统不能正常启动,在BIOS自检结束后便停住了,出现“GRUB”字样。这是因为默认情况下,系统是从第一块磁盘启动,当我们在raid1上安装系统时,默认只在第一块磁盘上将grub引导程序(/boot所在分区等信息)的第一阶段写入MBRMaster Boot Record)(这是因为硬盘驱动繁多,Anaconda不能将grub写入所有的硬盘的MBR),如果没有第一块磁盘那么就意味着不能通过grub的第一阶段,系统不知道从哪个盘的哪个分区启动。我们可以按如下方法修复系统,我们所需要做的是在rescue模式下修复grub,让系统从第二块盘的/boot分区启动即可。另外,要注意的是/,/boot分区是不能挂载在raid0raid5设备上的。

 

实验步骤:

1.       进入rescue模式,选择挂载文件系统,但出现报错信息,不能发现分区。(因为没有MBR,所以没有分区表,自然不能找到分区)

2.       所以我们进行手动挂载。

sh-3.2#mkdir /mnt/sysimage (这个名称可以自己决定)

sh-3.2#mount /dev/sda2 /mnt/sysimage (sda2是根分区)

sh-3.2#mount /dev/sda1 /mnt/sysimage/boot (sda1boot分区)

sh-3.2#mount /dev/ /mnt/sysimage/dev/(/dev下的设备挂载在该目录下,主要是raid设备)

3.       我们所需要做的就是修复grub

sh-3.2#grub(get into grub shell)

grub>root ( hd1,0)

grub>setup ( hd1 )

hd1,是代表第二块硬盘(grub是从0开始数的,第二块硬盘就是hd1)x代表你的/boot所在的分区(grub是从0开始数的,第一个分区就是0),这里设置指定启动分区(/boot分区所在分区)

grub>reboot

附:

MBR的组成:

组成部分     所占字节数             内容、功能详述
主引导程序区   446       负责检查硬盘分区表、寻找可引导分区并负责将可引导分                          区的引导扇区(DBR)装入内存;
硬盘分区表区   16X4=64     每份16字节的4份硬盘分区表,里面记载了每个分区的类型、大小和分区开始、结束的位置等重要内容;
结束标志字区     2       内容总为”55AA”
结束标志字区     2       内容总为”55AA”

Kbase相关链接:Why can my system not boot using GRUB when using software RAID?

 

阅读(1619) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~