稼働済みのHDDで後からRAIDを設定する
Debian squeezeでの作業ログ。
念のためバックアップが完全に取れているマシンで作業。
パーティションを切る。
fdisk /dev/sda でパーティション情報を見て、同じものを/dev/sdbに作る。
パーティションタイプをfd(RAID)にする。
RAIDの設定。
aptitude install mdadm mdadm -C /dev/md0 -l1 -n2 missing /dev/sdb1 mdadm -C /dev/md1 -l1 -n2 missing /dev/sdb5 mdadm -Ds >> /etc/mdadm/mdadm.conf mkfs.ext3 /dev/md0 mkswap -f /dev/md1 mount /dev/md0 /mnt/ rsync -avHx / /mnt/ mount --bind /dev /mnt/dev mount --bind /proc /mnt/proc mount --bind /sys /mnt/sys chroot /mnt vi /etc/fstab # ルートとスワップを/dev/md[01]にする update-grub # /boot/grub/grub.cfg にraidのカーネルモジュールがinsmodされていることを確認 update-initramfs -u -k all grub-install /dev/sdb exit reboot
BIOSで起動ディスクを変更してからブートする。
もし立ち上がらなければ起動ディスクを元に戻したらRAIDを使わずに立ち上がるはず。
GRUBのメニューでeを押して起動時にraidが組み込まれているか確認する。
起動後は/etc/fstabなどsdbで変更したファイルを見てraidで立ち上がっているか確認する。*1 *2
sdaをraidに参加させる。これをやると引き返せない。
fdisk /dev/sda # パーティションタイプをfdにする mdadm /dev/md0 --add /dev/sda1 mdadm /dev/md1 --add /dev/sda5 cat /proc/mdstat echo 50000 > /proc/sys/dev/raid/speed_limit_min grub-install /dev/sda
あとはひたすら待つ。
再起動してBIOSでsdaから起動するように変更して、無事起動できれば成功。
参考:
http://omake.accense.com/wiki/LinuxRAID1Transition
*1: http://omake.accense.com/wiki/LinuxRAID1Transition
*2:ルートファイルシステムに限ってfdやmountコマンドは信用できない。らしい。実際、fdコマンドでmd0がマウントされていてもファイルを見たらsdaのファイルになっていることがあった。umount /dev/md0 を実行しても結局 umount / = umount /dev/sda になるので確認は不可。