由于元数据区域标头校验和不正确,无法删除卷组

时间:2015-02-09 23:47:17

标签: sysadmin raid lvm

我从旧服务器上取下了三个硬盘。无法记住它上面的内容或配置方式,直到我把它插入我的新服务器用于RAID5。我dd对所有三个硬盘驱动器进行了尝试mdadm --create新的RAID阵列并出现以下错误:

mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd
mdadm: super1.x cannot open /dev/sdc: Device or resource busy
mdadm: /dev/sdc is not suitable for this array.
mdadm: create aborted

调查问题我发现/dev/sdc2仍然包含逻辑卷。

# lsblk /dev/sdc
NAME                    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sdc                       8:32   0 931.5G  0 disk 
|-sdc1                    8:33   0   102M  0 part 
`-sdc2                    8:34   0 931.4G  0 part 
  |-VolGroup00-LogVol00 253:2    0   926G  0 lvm  
  `-VolGroup00-LogVol01 253:3    0   5.4G  0 lvm  
# lsblk /dev/sdd
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sdd      8:48   0 931.5G  0 disk 
|-sdd1   8:49   0     2G  0 part 
`-sdd2   8:50   0 929.5G  0 part 
# lsblk /dev/sdb
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sdb      8:16   0 931.5G  0 disk 
|-sdb1   8:17   0     2G  0 part 
`-sdb2   8:18   0 929.5G  0 part 

我尝试了lvremove pvremovevgremove,但都返回了相同的错误:Incorrect metadata area header checksum on /dev/sdc2 at offset 4096

我对LVM不熟悉,并尝试在线查看该怎么做。由于我使用的vg文件存档是在我的新服务器上生成的,因此恢复但不起作用并不令我惊讶。

我的猜测是,因为我dd对硬盘驱动器我以某种方式弄乱了标头元数据。我该怎么做才能擦除所有这些以便创建我的RAID5?任何帮助将不胜感激。

提前致谢!

修改

澄清我的意思dd' ed:

dd if=/dev/zero | pv | dd of=/dev/sdx

编辑2

只是为了澄清什么是有帮助的,并给予两个答案的信任。以下两个答案都与dd有关。在我的情况下,由于RAID是在不同的盒子上构建的,而且我的其中一个驱动器是孤立的,我的新盒子正在抱怨卷组等。当我最初使用dd擦除数据时,我不能触摸RAID / LVM的标头。

2 个答案:

答案 0 :(得分:1)

只要您不关心/ dev / sdc驱动器上的内容,请尝试以下操作:

dd if=/dev/zero of=/dev/sdc bs=1m count=10

这将使磁盘的前10 MB(包括任何LVM或RAID标头)清零。然后重启;系统应该看到磁盘不再是任何LVM组的一部分。

如果您需要更多灵感,请查看我在恢复RAID& amp; LVM卷:

http://www.linuxjournal.com/article/8874

答案 1 :(得分:1)

这是一个很棒的链接 - 如果您不熟悉,请查看一下:

在你的情况下,请试试这个:

https://forums.opensuse.org/showthread.php/489778-How-do-I-delete-a-RAID-volume-that-was-created-with-mdadm

  1. 找到md及其组件(sda,sdb等)

    fdisk -l mdadm --detail /dev/md0 or md1 or mdX

  2. 卸载md(使用-l标志进行延迟卸载可能会很好

    umount -l /dev/md0

  3. 停止数组

    mdadm --stop /dev/md0

  4. 将来自md数组的每个设备的超级块归零

    mdadm --zero-superblock /dev/sda mdadm --zero-superblock /dev/sdX ... etc.

  5. 根据需要替换您的实际驱动器名称。

    我不确定你的意思是什么" dd'所有的驱动器",但你应该能够使用" mdadm"来初始化它们。 (以上)或" dd":EXAMPLE: dd if=/dev/zero of=/dev/sdc2 bs=1024K count=100

    有关更多提示,请参阅此链接: