来自update-initramfs的mdadm警告(系统无法启动),mkconf的建议修复似乎与mdadm的问题描述不一致

简介:update-initramfs表示系统无法启动,消息指向mkconf,这表示重写为mdadm.conf似乎会破坏RAID,系统启动(暂时)但下次重启可能会导致它崩溃,不清楚如何继续,mdadm.conf看起来好,但是update-initramfs警告告诉我什么? 为什么mkconf似乎暗示了一些不好的东西?

我在运行Ubuntu 12.04的1and1.com上有一个专用服务器,“update-initramfs -u”报告一个mdadm错误消息,指示服务器无法正常重启。 我查看了相关的配置文件,但无法识别问题。 我没有尝试重新启动,因为我看到这条消息,因为我不想“只看到发生了什么”在我无法物理访问的服务器上(如果我无法访问正在运行的系统,可能会使诊断更加困难)我可以探测信息。)我觉得我应该尝试理解错误信息和系统配置,直到我确信重启可能会成功。

首先,错误消息(来自update-initramfs -u):

W: mdadm: the array /dev/md3 with UUID dffcb503:bc157198:3fb6082e:e5593158 W: mdadm: is currently active, but it is not listed in mdadm.conf. if W: mdadm: it is needed for boot, then YOUR SYSTEM IS NOW UNBOOTABLE! W: mdadm: please inspect the output of /usr/share/mdadm/mkconf, compare W: mdadm: it to /etc/mdadm/mdadm.conf, and make the necessary changes. W: mdadm: the array /dev/md1 with UUID a46d442b:4e5b8a52:3fb6082e:e5593158 W: mdadm: is currently active, but it is not listed in mdadm.conf. if W: mdadm: it is needed for boot, then YOUR SYSTEM IS NOW UNBOOTABLE! W: mdadm: please inspect the output of /usr/share/mdadm/mkconf, compare W: mdadm: it to /etc/mdadm/mdadm.conf, and make the necessary changes. 

我将注意力集中在md1上,因为那是/ boot所在的位置(因此“需要启动”=== TRUE),但同样的错误消息也是为md3生成的。

md结构来自ISP的默认Ubuntu映像,这部分系统尚未被触及。 对驱动器/分区结构的唯一更改是扩展逻辑驱动器(lvextend和resize2fs)的大小,这虽然可能影响其他东西,但似乎不会影响“/”(在md1上)及其启动能力。

cat / etc / fstab

 /dev/md1 / ext3 defaults 1 1 /dev/sda2 none swap sw /dev/sdb2 none swap sw /dev/vg00/usr /usr ext4 errors=remount-ro 0 2 /dev/vg00/var /var ext4 errors=remount-ro 0 2 /dev/vg00/home /home ext4 errors=remount-ro 0 2 

proc / proc proc nodev,noexec,nosuid 0 0

我们可以看到md系统正常运行,sd1和sdb1上有md1:

 cat /proc/mdstat ----- Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md1 : active raid1 sdb1[1] sda1[0] 4194240 blocks [2/2] [UU] md3 : active raid1 sdb3[0] sda3[1] 1458846016 blocks [2/2] [UU] 

似乎这些md是在ARRAY行mdadm.conf中定义的:

cat /etc/mdadm/mdadm.conf

 # mdadm.conf # # Please refer to mdadm.conf(5) for information about this file. # # by default, scan all partitions (/proc/partitions) for MD superblocks. # alternatively, specify devices to scan, using wildcards if desired. DEVICE partitions # auto-create devices with Debian standard permissions CREATE owner=root group=disk mode=0660 auto=yes # automatically tag new arrays as belonging to the local system HOMEHOST  # instruct the monitoring daemon where to send mail alerts MAILADDR root # definitions of existing MD arrays # This file was auto-generated on Tue, 11 May 2010 20:53:30 +0200 # by mkconf $Id$ ARRAY /dev/md1 level=raid1 num-devices=2 devices=/dev/sda1,/dev/sdb1 ARRAY /dev/md3 level=raid1 num-devices=2 devices=/dev/sda3,/dev/sdb3 

/ boot中最新的initrd是initrd.img-3.2.0-37-generic,缓存的mdadm.conf看起来相同(通过“gunzip -c /boot/initrd.img-3.2.0-37-generic | cpio -i –quiet –to-stdout etc / mdadm / mdadm.conf“)

所以实际情况(运行的md以及它们如何定义为启动)对我来说看起来很好。 回到“update-initramfs -u”错误消息,它建议将mdadm.conf与/ usr / share / mdadm / mkconf的输出进行比较。 这是我们开始看到看起来非常不同的东西的地方:

的/ usr /共享/ mdadm的/ mkconf

 # mdadm.conf # # Please refer to mdadm.conf(5) for information about this file. # # by default (built-in), scan all partitions (/proc/partitions) and all # containers for MD superblocks. alternatively, specify devices to scan, using # wildcards if desired. #DEVICE partitions # auto-create devices with Debian standard permissions CREATE owner=root group=disk mode=0660 auto=yes # automatically tag new arrays as belonging to the local system HOMEHOST  # instruct the monitoring daemon where to send mail alerts MAILADDR root # definitions of existing MD arrays 

如果我正确读取这个,系统建议重写mdadm.conf(修复md1和md3“当前处于活动状态,但是……未在mdadm.conf中列出”)将从mdadm中删除md1和md3的列表.conf文件。 所以我无法解决错误消息和建议的修复(更改mdadm.conf从未列出到列出,但建议的修复从列出到未列出?)我无法(1)找到任何实际问题,并且( 2)将错误消息与建议的修复协调,让我不信任/ usr / share / mdadm / mkconf的输出(以及从update-initramfs -u指示我的错误消息)。 但我不想忽视系统寻求帮助,特别是在系统的一部分非常关键。 我相信操作系统知道我不知道的事情。 而实验(远程重启)是最后的选择。

当在线搜索具有类似错误消息的其他人时,相关问题似乎涉及mkconf生成的ARRAY行与mdadm.conf中的不同(并且通常建议使用mkconf的输出,作为对ARRAY行的修复。)但是在这种情况下,mkconf根本没有提供ARRAY线路,因此这一系列的研究并没有带来相关的帮助。 mdadm.conf中的注释表示它通过defualt扫描MD超级块,因此如果mdadm可以从超级块中获取该信息,则生成的文件省略对md1 / md3的显式引用这一事实可能是正常的(?)。 但如果是这样,为什么错误消息说问题是md1 / md3未列出,以及当前配置有什么问题(为什么会出现错误消息)? 所以这种思路(试图理解没有ARRAY的生成文件如何存在可能会有所帮助)也没有成功。

这可能是错误的树,但是在ARRAY线路上的mdadm.conf中是否允许使用sda1这样的设备名称? 我知道UUID是首选,设备名称的使用是否可能是错误消息的原因? 如果是这样,可能会有哪些选项:(1)没有更改mdadm.conf并依赖系统继续根据设备名称组装md1; (2)使用mkconf的输出,根本没有显式的md(没有设备名,没有UUID),依赖于基于超级块的自动发现; (3)找到UUID并为mdadm.conf编写新的ARRAY行(既不是现有值,也不是mkconf建议的替换)?

如何识别此错误消息的原因,它试图告诉我什么?

可能有用的其他信息:

mdadm –misc –detail / dev / md1

 /dev/md1: Version : 0.90 Creation Time : Sun Feb 24 19:11:59 2013 Raid Level : raid1 Array Size : 4194240 (4.00 GiB 4.29 GB) Used Dev Size : 4194240 (4.00 GiB 4.29 GB) Raid Devices : 2 Total Devices : 2 Preferred Minor : 1 Persistence : Superblock is persistent Update Time : Sun Apr 27 23:39:38 2014 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 UUID : a46d442b:4e5b8a52:3fb6082e:e5593158 Events : 0.122 Number Major Minor RaidDevice State 0 8 1 0 active sync /dev/sda1 1 8 17 1 active sync /dev/sdb1 

mdadm –misc –detail / dev / md3

 /dev/md3: Version : 0.90 Creation Time : Sun Feb 24 19:11:59 2013 Raid Level : raid1 Array Size : 1458846016 (1391.26 GiB 1493.86 GB) Used Dev Size : 1458846016 (1391.26 GiB 1493.86 GB) Raid Devices : 2 Total Devices : 2 Preferred Minor : 3 Persistence : Superblock is persistent Update Time : Sun Apr 27 23:43:41 2014 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 UUID : dffcb503:bc157198:3fb6082e:e5593158 Events : 0.1883 Number Major Minor RaidDevice State 0 8 19 0 active sync /dev/sdb3 1 8 3 1 active sync /dev/sda3 

我在这里找到了一个解决方案: http : //www.howtoforge.com/forums/showthread.php?t = 65066

使用以下命令获取相关arrays的UUID: mdadm --misc --detail /dev/mdX (其中X是数组编号)并编辑/etc/mdadm/mdadm.conf并将其替换为:

 ARRAY /dev/md1 UUID=dffcb503:bc157198:3fb6082e:e5593158 ARRAY /dev/md3 UUID=a46d442b:4e5b8a52:3fb6082e:e5593158 

用你的/ dev / mdX设备替换我的/ dev / mdX设备和UUID。 我只是在我的一个上做了这个并且它起作用了。 我发布这个并不是真的适合你,因为你很久以前就可能解决了这个问题,但是对于其他发生这种情况的人来说。