![如何在 CentOS 中删除以前的 RAID 配置以便重新安装](https://linux22.com/image/530501/%E5%A6%82%E4%BD%95%E5%9C%A8%20CentOS%20%E4%B8%AD%E5%88%A0%E9%99%A4%E4%BB%A5%E5%89%8D%E7%9A%84%20RAID%20%E9%85%8D%E7%BD%AE%E4%BB%A5%E4%BE%BF%E9%87%8D%E6%96%B0%E5%AE%89%E8%A3%85.png)
/dev/sda
我有一台之前在 CentOS 5.5(和)下设置了软件 RAID1 的服务器sdb
。我向服务器添加了两个额外的驱动器,并尝试重新安装 CentOS。CentOS 安装程序可以正常看到 2 个新驱动器(sdc
和sdd
),但它没有将两个原始驱动器 sda 和 sdb 视为单独的驱动器。相反,它只显示驱动器/dev/mapper/pdc_... (Model: Linux device-mapper)
。基本上,我需要做的是从这些驱动器上剥离所有 RAID 配置,并允许安装程序将它们视为单独的物理磁盘。
我尝试拔出除原始驱动器之外的所有驱动器,安装最小 CentOS 并运行dmraid -r -E
,但它仍然看到旧的 RAID 分区。CentOS 安装选项(删除以前的分区等)似乎都不起作用。
答案1
这是一个老帖子,但它在 Google 上的排名很高,所以很多人阅读它,因此需要更新。
“正确”的方法是使用mdadm
with --zero-superblock
。
## If the device is being reused or re-purposed from an existing array,
## erase any old RAID configuration information:
mdadm --zero-superblock /dev/<drive>
## or if a particular partition on a drive is to be deleted:
mdadm --zero-superblock /dev/<partition>
man mdadm
--zero-superblock
If the device contains a valid md superblock, the block is overwritten with zeros.
With --force the block where the superblock would be is overwritten even if it doesn't appear to be valid.
该dd
方法bs=<block size>
也有效,但需要小心,因为并非所有超级块都写入磁盘的开头 - 有些写入磁盘的末尾。
更新:而是使用磁盘分区比其他任何方法都更适合擦拭
# wipe any GPT data or MBR data
gdisk /dev/sdc
x = extra functionality
z = zap GPT data structures (+ MBR also after)
来源:
答案2
对我来说,修复此问题最快(换句话说:最容易记住)的方法是启动到救援模式并用 dd 覆盖磁盘的前几千个字节:
dd if=/dev/zero of=/dev/sda bs=512 count=100
应该可以解决问题。这将覆盖 MBR、分区表和 RAID 的所有相关数据。
答案3
问题出在 CentOS Anaconda 安装程序上。Ubuntu 安装程序可以毫无问题地看到各个驱动器。即使在驱动器上进行完整的 Ubuntu 安装也无法清除 raid 位。最终,使用以下方法启动 Centos 安装程序,结果成功了
Linux 文本 nodmraid
这样安装程序就可以运行而无需检查现有的 RAID 配置,然后进行分区。
答案4
parted
在 Knoppix 中使用root
对我有用。
knoppix@microknoppix $ su
root@microknoppix $ parted <device>
(parted) print
这将列出设备上的分区。使用命令,rm #
其中 # 是返回列表中的条目。它会告诉你它不能。再做一次,然后再次输入 print。它将在分区曾经所在的位置显示空白。使用Gparted
确认未分配的空间。
重新启动 CentOS 7 安装程序并且一切正常。