Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1575722
  • 博文数量: 317
  • 博客积分: 10283
  • 博客等级: 上将
  • 技术积分: 3566
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-04 11:38
个人简介

哥使用Linux

文章分类

全部博文(317)

分类: LINUX

2007-11-01 07:18:48

« 安装qlogic的hpt37x的sata驱动 | Main | 在Linux环境下架设DNS服务器 »

July 12, 2005

用softraid做raid1的时候的启动问题

呵呵,自己随便写写,有点乱,但愿大家能够看明白。


我用的是redhat as 3.5的系统,用两个scsi做系统。

安装的时候使用了softraid,对整个系统做了镜像。希望的效果是任何一个硬盘出问题,系统都可以正常启动工作。虽然现在的softraid做的系统可以对 /boot 分区也做镜像并且可以启动,但实际上启动的时候,redhat仍然是从第一个scsi盘引导的。如果是第二个硬盘宕掉,那么系统是可以启动的,但是如果是第一个硬盘挂掉,系统就没有办法引导了,虽然第二个硬盘里面的数据都还在。

于是我就找了很多相关资料,终于找到一个通过修改grub实现的方法了。

系统做了raid之后,虽然整个系统都是mirror了的,但是实际上grub的引导仍然是从第一硬盘,也就是sda开始的。因为软raid设备 /dev/md0 是在系统起来之后才出现的。为了让系统可以从raid1的两个盘中的任意一个引导,就要修改grub的设置,让他可以随便找一个OK的盘,从它里面的引导分区,也就是 /boot 分区中找到引导信息。

首先编辑 grub.conf

# vi /boot/grub/grub.conf
default=0
timeout=10
#splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title Red Hat Enterprise Linux AS (2.4.21-32.EL)
# root (hd0,0)
kernel /boot/vmlinuz-2.4.21-32.EL ro root=/dev/md0 hdc=ide-scsi
initrd /boot/initrd-2.4.21-32.EL.img

这个文件里面的 hd0 就是我的第一个scsi硬盘。可以查看/boot/grub/device.map 知道详细。
# cat /boot/grub/device.map
# this device map was generated by anaconda
(fd0) /dev/fd0
(hd0) /dev/sda <- 这行表示grub.conf中的 hd0 实际上是第一个scsi设备 /dev/sda。
(hd1) /dev/sdb <- 这行是我加上去的,用处在下文中说明

回到grub.conf中来,去掉所有跟 hd0 相关的东西(因为可能 hd0 玩完了嘛):
1. 去掉 root (hd0,0), 让grub不要只从 hd0 找信息。具体是什么意思,请看看grub的相关资料。
2. 去掉 splashimage=(hd0,0)/boot/grub/splash.xpm.gz,这个是grub界面的背景图,不要了。

第二步,修改 grub 引导时候的 stage2 过程。
进入grub的shell环境
# grub
然后执行:
install --stage2=/boot/grub/stage2 (hd0,0)/boot/grub/stage1 (hd0) (hd0,0)/boot/grub/stage2 p /boot/grub/grub.conf
install --stage2=/boot/grub/stage2 (hd1,0)/boot/grub/stage1 (hd1) (hd1,0)/boot/grub/stage2 p /boot/grub/grub.conf
quit

这里要注意一下,根据系统的实际情况有所不同。我没有将 /boot 单独分区,而是整个儿放在 / 分区了。所以我这里是 (hd0,0)/boot/grub/ ,意思是第一磁盘的第一个分区的 /boot/grub。
如果将 /boot 单独作为第一个分区,这里就应该是 (hd0,0)/grub/ 了。 什么意思大家明白吧?呵呵,不明白就看grub的说明。

好了。下面还有一个地方要设置的是,修改主板BIOS的设置,让系统引导的时候如果第一引导设备不能引导的话,尝试第二个设备(raid1的另外一个盘)。我的是SCSI卡,所以将引导设置成 SCSI就OK了,他会根据实际连接的SCSI硬盘自己按照顺序找的。如果是IDE硬盘,比如一个是插在IDE0上,一个是插在IDE1上,那么可以设置第一个引导设备是 hdd-0,第二个引导设备是hdd-1。如此类推。呵呵。

ok,测试看看。首先两个硬盘都插着,然后拔掉第二个,然后拔掉第一个。应该每次都能够进入系统的。

英文资料出处:

 

 

转自:http://back.xueron.com/blog/archives/2005/07/000086.html

由于发前没有做rand的经验,所以还是多学点东东!

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