我之前有一个可以正常工作的 RAID 1 阵列。我想这是由于运行grub-install /dev/sdb
和grub-install /dev/sdc
不知何故我清除了计算机上的md0
和md1
。
我需要重新设置它们。当我尝试创建数组时md0
,出现以下错误。
/dev# mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 missing -f
mdadm: device /dev/sda1 not suitable for any style of array
看起来 Debian 认为驱动器已经在阵列中,但事实并非如此。
# fdisk -l
Disk /dev/sda: 250.0 GB, 250000000000 bytes
255 heads, 63 sectors/track, 30394 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000080
Device Boot Start End Blocks Id System
/dev/sda1 * 1 30064 241489048+ fd Linux raid autodetect
/dev/sda2 30065 30394 2650725 5 Extended
/dev/sda5 30065 30394 2650693+ fd Linux raid autodetect
# cat /proc/mdstat
Personalities : [raid1]
unused devices: <none>
# mount
/dev/md0 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
答案1
一旦事情变得如此糟糕,我个人会将每个原始分区安装为只读文件系统(例如mount -r /dev/sda1 /mnt
),将内容转储到磁带/外部驱动器/任何有空间的地方,从头开始重新创建阵列,然后恢复数据。
答案2
鉴于 已/dev/md0
安装在 上/
,我认为它运行良好。如果不存在这样的设备文件,请查看dmesg
以确定原因。也许还要查看您的 udev 配置。
目前还不清楚您通过指示 mdadm 实例化仅带有一个设备的 RAID1 阵列(当该阵列已创建并安装时,很可能是由内核的 RAID 自动检测创建的)来实现什么目的。它不允许您这样做一点也不奇怪。
如果/dev/md1
不存在,您可能可以使用 mdadm 创建它(假定是出于/dev/sda5
其他原因)。
您应该避免在运行时使用 mdadm 操作根分区。如果不是内核自动检测创建了它,则它应该是 initrd,如果需要,mdadm 应该在那里执行其工作。