Linux 磁盘旧RAID 信息 导致不能格式化 和mount 的解决方法

服务器上加了一块旧硬盘,打算格式化以后放点历史数据,结果用fdisk 报错:

/dev/sda1 isapparently in use by the system; will not make a filesystem here!

一般来说,这种情况是该盘已经被系统使用或者挂载到其他地方,使用mount 和df –lh确认,这个盘没有使用。

在我之前整理过一篇类似的文章:

在这篇文章里是一个共享设备挂载到同一个2个不同的节点,但我这里是一个设备挂载到一个服务器,所以情况和我们之前的不一样。

Google了一下,说是受以前盘上遗留的RAID信息的影响,系统会根据残留的信息自动发现raid,由于系统的自动识别,硬盘被虚拟地组建成了raid(即便没有真实raid存在),这就提示磁盘正在被使用,硬盘无法格式化。

确认了一下:

[root@web1 ~]# dmraid -s

ERROR: ddf1: wrong # of devices in RAID set"ddf1_4035305a8680b02520202020202020209a33c30a3a354a45" [1/2] on/dev/sda

*** Group superset .ddf1_disks

--> *Inconsistent*Active Subset

name  : ddf1_4035305a8680b02520202020202020209a33c30a3a354a45

size  : 145051648

stride : 128

type  : mirror

status : inconsistent

subsets: 0

devs  : 1

spares : 0

[root@web1 mapper]# dmsetup status

ddf1_4035305a8680b02520202020202020209a33c30a3a354a45:0 145051651 linear

释放对磁盘的使用可以使用如下方法:

1) dmsetup remove_all

[root@web1 mapper]# dmsetup remove_all

# dmsetup remove /dev/mapper/[device]

[root@web1 mapper]#  dmsetup status

No devices found

2) 用dmraid来disableactive状态:dmraid -a no

[root@web1 conf]# dmraid -a no

ERROR: ddf1: wrong # of devices in RAID set"ddf1_4035305a8680b02520202020202020209a33c30a3a354a45" [1/2] on/dev/sda

ERROR: device"ddf1_4035305a8680b02520202020202020209a33c30a3a354a45" could not befound

RAID set"ddf1_4035305a8680b02520202020202020209a33c30a3a354a45" is not active

[root@web1 conf]#

--验证:

[root@web1 ~]# dmraid -s

ERROR: ddf1: wrong # of devices in RAID set"ddf1_4035305a8680b02520202020202020209a33c30a3a354a45" [1/2] on/dev/sda

*** Group superset .ddf1_disks

--> *Inconsistent*Subset

name  : ddf1_4035305a8680b02520202020202020209a33c30a3a354a45

size  : 145051648

stride : 128

type  : mirror

status : inconsistent

subsets: 0

devs  : 1

spares : 0

[root@web1 ~]#

释放以后我们就可以对磁盘格式化,在进行挂载了。

但这样在系统重启之后,还是会识别到磁盘的RAID信息,依旧不能正常mount。尝试清除磁盘上RAID的信息。

--使用dmraid –x:

[root@web1 ~]# dmraid -x

ERROR: ddf1: wrong # of devices in RAID set"ddf1_4035305a8680b02520202020202020209a33c30a3a354a45" [1/2] on/dev/sda

About to delete RAID setddf1_4035305a8680b02520202020202020209a33c30a3a354a45

WARNING: The metadata stored on theraidset(s) will not be accessible after deletion

Do you want to continue ? [y/n] :y

ERROR: Raid set deletion is notsupported in "ddf1" format

[root@web1 ~]#

--使用:dmraid -rE

[root@web1 mapper]# dmraid -rE

Do you really want to erase"ddf1" ondisk metadata on /dev/sda ? [y/n] :y

ERROR: ddf1: seeking device"/dev/sda" to 38070153641984

ERROR: writing metadata to /dev/sda, offset74355768832 sectors, size 0 bytes returned 0

ERROR: erasing ondisk metadata on /dev/sda

[root@web1 mapper]#

都不能成功清除,这样即使我把mount信息添加到/etc/fstab里,在启动启动之后,也不能正常mount。所以选择了一种方法。

在/etc/rc.d/rc.local 文件中添加了如下信息:

dmraid -a no

sleep 5

mount /dev/sda1 /backup

这样就可以自动挂载了。

相关推荐