archlinux配置raid记录

来源:互联网 发布:软件外包服务怎么样 编辑:程序博客网 时间:2024/05/18 17:45

很早以前就想试验看看如果用两块硬盘组成raid0来作系统盘,能够让系统提速多少幅度。因为是自己当桌面用,加上定期备份,不怕什么可靠不可靠的,这是原因一。二是因为昨天碰到一个kdevelop3.9.96的bug,打开一个custom makefile的项目,编辑一个文件,在void setOff()的()中插入int关键字之后,kdevelop就会崩溃。如果是只打开这个文件,不打开项目编辑文件,则不会崩溃,昨晚在家里电脑是不会崩溃的。怀疑会不会是某个库文件有问题,干脆重新装一台看看。

于是就找来两块硬盘, 顺便打算装个raid0看看

参考了http://wiki.archlinux.org/index.php/Installing_with_Software_RAID_or_LVM的步骤,下午装了3次都不成功。安装完成后无法启动,找不到/所在的md1。晚上回家后,用virtualbox开虚拟机,重新装。第一次仍然不能启动,然后照wiki上的方法在grub里写明md1参数,就可以启动了。找到了问题所在,终于成功了。

本来想用sda1和sdb1组成raid0作为boot分区,失败了。把这步简化掉

光盘启动,cfdisk /dev/sda         cfdisk /dev/sdb 分区如下:

/dev/sda1   ext3   作为/boot

/dev/sda2   swap                                    /dev/sdb1        swap                     
/dev/sda3   ext4      type:fd                    /dev/sdb2        ext4    type:fd

加载raid0模块: modprobe raid0

创建raid,打算md0用作swap,md1用作/
mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sda2 /dev/sdb1
mdadm --create /dev/md1 --level=0 --raid-devices=2 /dev/sda3 /dev/sdb2

光盘安装程序会读取/etc/mdadm.conf文件来生成initrd,所以要先删掉默认的那个,然后吧当前建好的raid信息更新进去。
rm /etc/mdadm.conf
mdadm –D –-scan >> /etc/mdadm.conf

这一步比较关键,下午忽略了这一步就总是失败。(记得第一次装时候好像也执行了这一步的,课还是失败,也许是因为别的原因。)

下来就可以/arch/setup来安装了,和通常的安装没有太多区别。最需要注意的一点,就是在configure system这一步,一定要注意查看一下/etc/mkinitcpio.conf,按照wiki里讲的,在HOOKS列表的filesystem之前加上mdadm,在MODULES列表中加上自己要用到的raid模块,就是raid0。如果忘记改,也没关系,退出安装程序后,在重新启动前可以手工编辑该文件,然后

mkinitcpio -g /boot/kernel26.img,重新生成initrd。可以看到pharse的过程中,在pata,scsi,sata之后出现mdadm,就说明生效了。
我下午失败应该就是漏掉了这里,导致重启后找不到md1。wiki上在grub命令行里写入md1的参数的方法是:kernel /kernel26 root=/dev/md1 ro md=1,/dev/sda3,/dev/sdb2。这样可以不依赖/etc/mkinitcpio.conf从md1启动,启动好之后再去修改这个文件重新生成initrd。
至此,在虚拟机上试验成功。明天到办公室应该可以搞定了。

 

-----------------------------------------------------------

在办公室,setup之前scan了mdadm.conf,仍人不能自动配置好raid。需要在重启之后在grub设置参数,启动后scan,再重新mkinitcpio.conf或者再装一次内核。