我的旧版(FC11)安装已经达到EOL,我试图在其RAID1根文件系统上重新安装FC14。
我现在怀疑现在安装FS后没有完全查抄。 问题是如果这是怀疑是真的,如果是的话,如何解决它。
[root@atlas dev]# cat /proc/mdstat Personalities : [raid1] md127 : active raid1 sda[0] 732571648 blocks super external:/md0/0 [2/1] [U_] md0 : inactive sdb[1](S) sda[0](S) 4514 blocks super external:imsm unused devices: <none> [root@atlas dev]#
md127似乎是md0的一些子容器,但是将sda [0]列为显式设备,但不包含sdb。 我假设我跑sda阅读这个,sdb已经失效。
麻烦的是,FS已经看到了相当的一些行动,所以这两个光盘不能被认为是同步的。 sdb必须被重build。 我有一个完整的备份,所以我愿意承担计算的风险。
请注意,文件系统是根设备。 (单用户模式?)
任何解释如何读取mdstat输出也是受欢迎的。 我的猜测是,我需要以某种方式从md0容器添加sdb到md127。
内核摘录:
dracut: Starting plymouth daemon dracut: rd_NO_DM: removing DM RAID activation pata_marvell 0000:03:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16 pata_marvell 0000:03:00.0: setting latency timer to 64 scsi6 : pata_marvell scsi7 : pata_marvell ata7: PATA max UDMA/100 cmd 0xcc00 ctl 0xc880 bmdma 0xc400 irq 16 ata8: PATA max UDMA/133 cmd 0xc800 ctl 0xc480 bmdma 0xc408 irq 16 dracut: Autoassembling MD Raid md: md0 stopped. md: bind<sda> md: bind<sdb> dracut: mdadm: Container /dev/md0 has been assembled with 2 drives md: md127 stopped. md: bind<sda> md: raid1 personality registered for level 1 md/raid1:md127: active with 1 out of 2 mirrors md127: detected capacity change from 0 to 750153367552 md127: p1 p2 md: md127 switched to read-write mode.
输出–detail –scan:
ARRAY /dev/md0 metadata=imsm UUID=e14582dd:1863c14a:fb0d98f0:5490080b ARRAY /dev/md127 container=/dev/md0 member=0 UUID=c0cf0b37:bc944eec:ac93d30e:ee2f423e
/etc/mdadm.conf:
# mdadm.conf written out by anaconda MAILADDR root AUTO +imsm +1.x -all ARRAY /dev/md0 UUID=e14582dd:1863c14a:fb0d98f0:5490080b ARRAY /dev/md127 UUID=c0cf0b37:bc944eec:ac93d30e:ee2f423e
更新:
在等待一天中的更好的一部分之后,我咬紧牙关,validation我的备份,启动到单用户模式,在那里我可以简单地mdadm –manage / dev / md127 –add / dev / sdb
重build耗时约3小时(无偿加class)。 一切似乎工作,看起来完好无损。
我还记得我已经在使用fakeraid之前决定去使用软件RAID,尽pipe在其他光盘上使用afaik。 也许这个md0是一个剩下的东西,这个东西是由一个很差的恢复/等滑入,然后击败,直到它的工作。 下一次重新安装,它吹了我的脸虽然。 尝试使其工作可能保留了一些信息。
可怕的是,两个arrays现在都包含相同的光盘,并且在启动过程中md0会短暂启用。 我得到的警告似乎表明,md127是md0的一个孩子,这使得删除有点可怕。 但是,我会挖掘一个引导盘,第二天我有时间进行系统pipe理。 (当然对昨天的完整备份做了一个增量)
md127有两个分区(一个大的root + swap),都装了。 md0不活跃(我不敢激活它,因为它共享驱动器),所以我不知道它有什么分区。
由于md127现在可以工作(2/2 UU),现在需要确定是否可以安全地删除md0(md0的md127子目录),如果是这样,以避免将来安装时出现问题。
可能还需要杀死磁盘上的一些元数据,以避免下一次安装。
正确的做法是首先找出哪个分区被安装。 然后,您需要停用另一个,以便从中删除磁盘。 然后在mdadm下生长挂载的磁盘以将新磁盘添加到该磁盘,md软件将同步当前挂载的分区到另一个磁盘。 之后,cat'ing / proc / mdstat应该只显示一个md设备,同时列出两个磁盘(可能还有一个同步)。 (并可能修复fstab)
我不会在这里重复很多需要的,因为linux raid维基是相当不错的,并且有大部分需要阅读的文档(以及很好的例子)。
然而,大多数人忘记的一件事是,linux内核需要一个包含所需磁盘信息的initramfs。 所以无论何时你改变mdconfiguration,使用dracut重新创buildinitramfs是明智的:
dracut -v --mdadmconf new_image.img KERNEL-VERSION-STRING
然后把grub指向new_image.img。
从数组中删除一个驱动器后,我忘记了这个错误,最终导致从单个驱动器启动,而不是正确镜像的驱动器。 与你似乎非常相似的情况。