Tag-Archive for » raid «

把FreeBSD下的硬件RAID去掉

几年前的一台服务器,intel s3000ah的板子,自带Intel Matrix Storage和LSI的raid,不过这个板子的raid对freebsd不支持,当初勉强使用Intel Matrix Storage的模式设置了raid 1 安装了BSD的7.2, 事实上并不是真正的好使,raid经常掉,bsd下的raid管理工具atacontrol也不能进行detach和attach的,勉强认为freebsd能认识设备ar0而已。

机器前几天终于挂了,出现的情况是raid1的两个磁盘都显示了offline,用过Intel Matrix Storage的就知道,CTRL+I进去后,其实是啥也干不了的,这个板子如果在windows下,或者用板子自带引导盘也是可以干点啥的,在bsd下,Intel Matrix Storage就是狗屎一坨。

按照过去的经验,通常这样的情况都是重装系统完事,但是因为人不在现场,David帮我跑去机房看看情况,于是乎抱着试试看的态度,尝试看看是否可以从硬件和软件下把raid禁用了,用一块盘当作普通sata来运行原理的系统,省得重装系统,配置和恢复数据麻烦,没想到一试居然成功了,下面把大致的经过分享给大家,希望对大家有参考作用。

首先,到bios里面,把raid禁用了,然后重启机器,正常的话能看到freebsd的引导了,但是这会儿是不能正常进入系统的,半道儿上就会停住,告知ar0…啥的设备问题。

在freebsd引导菜单中选择进入单用户模式

进到单用户模式的shell环境下后,因为/usr /var 啥的分区都没能挂载,而使用mount -a 啥的肯定不行,因为分区指向的都是ar0…的raid设备名, 于是我们要想办法修改fstab,这会儿矛盾的问题是,既然/usr无法挂载,/usr/bin/vi自然就没法运行了,如何能修改fstab文件呢?

琢磨了会儿,找到了办法,先umount /usr 试试, 然后再运行 mount -u /dev/ad4s1f /usr ,这里的ad4s1f其实是我raid1第一块硬盘在系统中的设备名,这个名称你可以大致的看看/dev/目录下有啥ad开头的文件,再对比一下当前fstab文件里面的分区,就能找到对应的块设备名称了。

通过上面的操作,vi就可以使用了, 运行 /usr/bin/vi /etc/fstab,把该文件里面原来ar0…的都改成ad4… ,保存退出,成功了一大半了。(这里漏掉了一步关键的,/etc/fstab文件应该是只读的文件系统,需要先运行 mount -fw / )

接下来需要做的事情是要从系统里面删除掉原来的raid设备,这个比较简单 运行/usr/bin/atacontrol detach ad4 和/usr/bin/atacontrol detach ad6 ,然后运行/usr/bin/atacontrol delete ar0 (你的系统里面也有可能是ar1,自己看fstab来决定)

然后最好执行一下fsck -y ,抽颗烟等结束后reboot,基本上就好了!

这会儿应该能进到系统了,再df看看磁盘分区情况,系统回到了普通的单硬盘模式了,多出来的那块ad6还没有使用,可以再自己分区单独使用。

Category: Linux / BSD  Tags: , , ,  14 Comments