近期在debian squeeze已有系统上使用mdadm安装了raid1,在此做个笔记。
已有硬盘为/dev/sda, 500GB, 安装debian squeeze,新增一块/dev/sdb, 500GB,准备组成raid1。
1. 详细的安装过程见如下链接:
这个链接非常详细,只要具备基本的mdadm raid常识,就可以操作了。
另外可参考如下链接,作为辅助:
需要注意的是,如果操作不当,很容易将grub2数据弄丢。建议使用dpkg-reconfigure grub-pc来更新grub,但是选择安装的分区应选择/dev/sda和/dev/sdb,不是虚拟出来的/dev/md0。
2. 将来如果raid1中的一块硬盘坏了,如何恢复。
跟创建raid的方式大致相似,主要步骤是:
1. 标记坏硬盘各分区为fail,并从Array中移除;
2. 安装新硬盘,代替坏硬盘。
3. 将raid1中剩下好硬盘的分区表拷贝到新硬盘;
4. 设置新硬盘的分区类型;
5. 将新硬盘各分区加入Array;
3. debian netinst CD USB安装的问题
使用netinst CD .iso镜像制作USB启动盘,可能会在安装时出现"Detect and mount CD-ROM"失败的信息。使用debian squeeze和debian wheezy netinst都可能出现这个问题。解决办法可尝试:
1. 文本安装模式下,Alt+F2进入控制台shell
2. lsmod检查vfat,fat, ehci_hcd, xhci_hcd是否安装
3. 如果vfat,fat模块没安装,使用modprobe fat和modprobe vfat安装
4. 如果xhci_hcd已经安装,需要移除,rmmod xhci_hcd
5. 保留ehci_hcd。如果已经安装,先移除rmmod ehci_hcd,再安装modprobe ehci_hcd
6. mount /dev/sdx /cdrom,将U盘mount到/cdrom,/sdx为U盘的设备名
7. 4,5,6步可能要重复操作,因为安装程序有时会把这个步骤搞乱。
4. 如果Grub真的丢失了怎么办?
笔者在安装过程中就出现了此情况,grub本身无法启动,进入grub rescue命令行,且操作任何分区都显示error: file not found.救援的办法为:
1. 使用netinst cd或live cd启动系统,进入命令行shell
2. 这个shell需要支持mdadm命令
3. 插入mdadm及raid所需的模块
modprobe md
modprobe linear
modprobe multipath
modprobe raid0
modprobe raid1
modprobe raid5
modprobe raid6
modprobe raid10
4. 安装文件系统模块,比如raid原为ext3,就运行modprobe ext3
5. 启动raid,采用一块硬盘即可。Grub丢失了,硬盘的数据其实还在。
mdadm --assemble /dev/md0 --run /dev/sdb1
mdadm --assemble /dev/md1 --run /dev/sdb5
...
6. 将各raid分区,挂载到临时位置,准备恢复文件系统(本例中/dev/md1为swap分区,不需要挂载)
mount /dev/md0 /mnt
mount /dev/md2 /mnt/home
...
7. 挂载各虚拟目录
mount --bind /dev /mnt/dev
mount --bind /dev/pts /mnt/dev/pts
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
8. chroot /mnt,此时就已经恢复了原sdb中的文件系统
9. 运行bash,就跟原系统环境一致了。
10. 再运行dpkg-reconfigure grub-pc,就可以恢复grub了。见第1节关于grub的特别注意事项。