現在的 IDE 硬碟越來越便宜,也越來越容易損壞,所以市面上出了一堆 IDE RAID 卡,但我發現在 Debian 上面都非常難裝,為了晚上能安心睡覺,還是弄弄 kernel 內建的 md 吧。
但我的系統已經安裝了 Debian,是否有辦法把現有系統升級成 md 呢?
答案是有的,這邊就跟各位分享我升級成 raid 1 的經驗。
升級過程的步驟請繼續看下去 :p
1. 加入一顆相當大小的新硬碟到系統,並建立 raid partations type=fd
[root]# fdisk /dev/hdc
2. apt-get install raidtools2
[root]# cp /usr/share/doc/raidtools2/examples/raid1.conf.sample /etc/raidtab
3. 在 /etc/raidtab 中將舊硬碟的 partations 加上 failed-disk 標示, 並將 chunk-size 改為 32, 下面是我的設定:
# Sample raid-1 configuration
raiddev /dev/md0
raid-level 1
nr-raid-disks 2
nr-spare-disks 0
chunk-size 32device /dev/hda1
failed-disk 0device /dev/hdc1
raid-disk 1
4. 建立 raid, mkraid /dev/md? or more.
[root]# mkraid /dev/md0
5. 建立檔案系統, mke2fs -j -b 4096 -R stride=X /dev/md? X=chunk-size/4
[root]# mke2fs -j -b 4096 -R stride=8 /dev/md0
6. 掛上 raid 及複製資料 mount /dev/md? and cp -ax / /mnt
[root]# mount /dev/md0 /mnt
[root]# cp -ax / /mnt
7. 替開機做準備
[root]# chroot /mnt
[root]# mount -t proc /proc /proc
安裝支援 md 的 kernel,您可以自行編譯或是安裝 debian package
若打算安裝 debian package 的話,首先在 /etc/kernel-img.conf 內要有
do_initrd = yes
[root]# apt-get install kernel-2.4.20-1-686 kernel-headers-2.4.20-1-686
boot=/dev/md0
raid-extra-boot="/dev/hda,/dev/hdc"
root=/dev/md0
append="md=0,/dev/hda1,/dev/hdc1"
initrd=/initrd.img
別忘了 /etc/fstab 中也要改為
/dev/md0 / ext3 defaults,errors=remount-ro 0 1
8. 寫入 lilo 並重開機測試 raid
[root]# lilo -v
[root]# reboot
9. 測試 ok 的話, 將舊的 partation type 修改為 fd 並存檔
[root]# fdisk /dev/hda
10. 在raidtab, 將 failed-disk 改為 raid-disk 並加入 raid, fdisk and then raidhotadd /dev/md? /dev/hda?
[root]# raidhotadd /dev/md0 /dev/hda1
這下可以安心睡覺了,因為我知道就算硬碟壞了,也不會再是一堆麻煩的還原程序了....
Posted by Andrew at 2003年05月27日 01:39 | TrackBackHi, 送個 Ping 給 blog.linux.org.tw 吧。 ;-)
Posted by: Rex Tsai at 2003年05月20日 16:53Ok, I did it.
Posted by: Andrew Lee at 2003年05月27日 17:32