这两天遇到一个非常头痛的事情,就是远程服务器中一块2T的备份硬盘,因为centos重新安装后,无法mount了:
#fdisk -l
显示 sdb硬盘的sdb1、sdb2和sdb5都在,不过多了几个/dev/mapper/xxxx下面几个数据,不过最奇怪的时候/dev/sdb1等其实在/dev下压根就没有,只有/dev/sdb在,多了/dev/dm-0,/dev/dm-1, /dev/dm-2等。
用fdisk 删除这块硬盘所有分区,并重新格式化,问题依然存在。
经过不断的google,发现可能是这块硬盘上残留有bios raid信息,之前做过阵列卡的raid盘,但是用fdisk和mkfs.ext
dmraid -r -E /dev/sdb也根本就不能清空上面的raid信息
dmraid -x同样不行,提示硬盘已经激活
dmraid -an 禁止激活,同样无法成功
最后找到了一个暴力的方法,用dd_rescue直接把硬盘上的数据写为0,源代码下载地址:
http://www.garloff.de/kurt/linux/ddrescue/
make后,进入dd_rescue目录
#./dd_rescue -S 1861GB /dev/zero /dev/sdb
因为2TB硬盘的实际大小是1862GB,因为raid信息一般那保存在硬盘的最后,只是清除最后1GB就可以了。
执行完毕后,重新加载硬盘分区
#hdparm -z /dev/sdb
#fdisk -l
发现一切都正常了,没有乱七八糟的mapper信息了,世界终于清静了,然后就是正常的fdisk、mkfs、mount……
最后一个无法理解的问题是:
1、首次挂一块硬盘安装系统,安装完毕后再挂的这块有raid信息的盘,就正常。
2、如果新安装系统时,两块硬盘都挂上,麻烦就出来了(同时安装程序会提示一块硬盘有raid信息,将忽略)。
3、如果是重新安装系统,直挂系统盘,备份盘后挂上,麻烦还是有。