驱动器无法组装到阵列中

驱动器无法组装到阵列中

我跑了

mdadm -A /dev/md0 /dev/sda1 /dev/sdb1

但仅/dev/sdb1被加载到数组中。我在相同的两个驱动器上还有更多阵列。每次分区都sda失败。dmesg告诉我那sda不同步...因为这是来自救援 CD。我sda暂时断开了连接(硬件方面),因为它阻止了我启动。

我应该如何进行?这可能是驱动器损坏的原因吗?前几天我遇到了一些奇怪的文件系统问题,我无法追踪(也许是前兆):丢失的文件后来神奇地重新出现。也许缺少电缆?

主要问题是如何尝试重新同步驱动器?

cat /proc/mdstat
Personalities : [raid10] 
md3 : active raid10 sda4[1]
      955683840 blocks super 1.2 512K chunks 2 far-copies [2/1] [_U]

md2 : active raid10 sda3[1]
      10483712 blocks super 1.2 512K chunks 2 far-copies [2/1] [_U]

md1 : active raid10 sda2[1]
      10484736 blocks 512K chunks 2 far-copies [2/1] [_U]

md0 : active raid10 sda1[1]
      101376 blocks 512K chunks 2 far-copies [2/1] [_U]

unused devices: <none>

更新

badblocks在整个其他驱动器上运行,并进行了长时间的smartctl测试,没有发现任何问题。

请求输出mdadm -D /dev/md0 (如果需要其他的话我有md0-3)

/dev/md0:
        Version : 0.90
  Creation Time : Mon May 31 20:24:14 2010
     Raid Level : raid10
     Array Size : 101376 (99.02 MiB 103.81 MB)
  Used Dev Size : 101376 (99.02 MiB 103.81 MB)
   Raid Devices : 2
  Total Devices : 1
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Mon Oct 25 07:58:25 2010
          State : clean, degraded
 Active Devices : 1
Working Devices : 1
 Failed Devices : 0
  Spare Devices : 0

         Layout : far=2
     Chunk Size : 512K

           UUID : 30ffe1d2:f5759995:820bb796:b5530bd2 (local to host slave-iv)
         Events : 0.212

    Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       1       8        1        1      active sync   /dev/sda1

由于我没有发现驱动器存在任何实际问题,但显然出了问题,我想知道下一步应该做什么?截至今天,重要数据已完成完整备份

更新2每当我尝试添加sda回原来的内容(至少不擦除它)时,它就会因为内核幻数错误而搞乱我的启动过程。我猜是因为内核版本不同步。目前该驱动器位于外部外壳中sdd。当该驱动器通过 USB 连接时,我是否应该重新添加(重新同步)该驱动器?这会引起问题吗?

df
Filesystem            Size  Used Avail Use% Mounted on
udev                   10M  284K  9.8M   3% /dev
/dev/md1              9.9G  7.0G  2.4G  75% /
shm                   3.0G  1.5M  3.0G   1% /dev/shm
/dev/md0               96M   15M   77M  16% /boot
/dev/md2              9.9G  6.5G  3.0G  69% /var
/dev/md3              898G  451G  402G  53% /home
none                  1.0G   45M  980M   5% /tmp
/dev/sdb1             992M   36M  956M   4% /media/D4A4-B7C1

每个md驱动器都有一个对应的sda/sdb。我必须拉出阵列中的 sda 驱动器(或 0 驱动器)。

答案1

好的,显然您的一个磁盘目前在阵列中未处于活动状态。比方说,在当前的枚举下,/dev/md0缺少/dev/sdb1.

要添加/dev/sdb1回之前的状态:

mdadm -a --re-add /dev/md0 /dev/sdb1

您可能需要重新检查数组以确保数据全部一致。

echo check >>/sys/block/md0/md/sync_action

要从头开始重新镜像:

确保它/dev/sdb1已从阵列中完全删除。

mdadm -f /dev/md0 /dev/sdb1
mdadm -r /dev/md0 /dev/sdb1

擦除配置/dev/sdb1,以便mdadm将其添加回阵列,就像它是一个全新的磁盘一样。

mdadm --zero-superblock /dev/sdb1

作为成员添加/dev/sdb1回数组。

mdadm -a /dev/md0 /dev/sdb1

同步 USB 磁盘的速度很慢。

但是,我猜您的问题是您的引导加载程序未正确安装在第二个驱动器上,这会阻止您在插入时启动。

您可以交换这两个驱动器的顺序,以便您的系统从具有已知良好配置的驱动器启动。

一旦启动并运行并且可以同步两个驱动器,您应该在两个驱动器上重新安装引导加载程序。这样,无论哪个驱动器丢失或首先枚举,您都可以始终启动。

重新安装引导加载程序的方式各不相同:

  • 如果您使用lilo≥ 22.0,请在 中指定boot = /dev/md0和并重新运行。如果您使用的是较旧的lilo 配置,请创建两个 lilo 配置,一个用于阵列中的每个磁盘,然后分别安装到每个磁盘。raid-extra-boot = mbr/etc/lilo.conflilolilolilo
  • 如果您使用 Grub,请尝试运行grub-install /dev/sdagrub-install /dev/sdb。如果失败,请尝试使用 Grub shell 来setup (hd0)查看setup (hd1)Grubcat /boot/grub/device.map的硬盘编号。

相关内容