我以前有一个可用的RAID 1arrays。 我想作为运行grub-install /dev/sdb和grub-install /dev/sdc我以某种方式擦除了md0和md1计算机。
我需要重新设置它们。 当我尝试创buildmd0数组时,出现以下错误。
/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似乎认为驱动器已经在arrays中,但事实并非如此。
# 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)
一旦事情发生,我个人会将每个原始分区挂载为只读文件系统(例如, mount -r /dev/sda1 /mnt ),将内容转储到磁带/外部驱动器/任何有空间的地方,重新创buildarrays,并恢复数据。
鉴于/dev/md0挂载在/ ,我会说这是相当活着的。 如果不存在这样的设备文件,请查看dmesg以确定原因。 也许看看你的udevconfiguration。
当数组已经被创build和挂载(很可能是由内核的RAID自动检测创build的)时,通过指导mdadm仅使用一个设备来实例化RAID1arrays,目前还不清楚你要完成什么。 一点也不奇怪,它不会让你这样做。
如果/dev/md1不存在,你可以使用mdadm(假设不在/dev/sda5和其他)创build。
您应该避免在运行时使用mdadm操作根分区。 如果不是内核自动检测创build它,它应该是一个initrd,这是mdadm应该做的事情,如果需要的话。