内核恐慌错误

我们有一个软件RAID1的专用服务器,最近有一个磁盘出现故障。 磁盘被replace,但在重buildarrays并重新启动服务器冻结与内核恐慌消息

No filesystem could mount root, tried: reiserfs ext3 ext2 cramfs msdos vfat iso9660 romfs fuseblk xfs Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(9,1) 

两个磁盘上的文件系统都是ext4。

看来内核不能加载ext4的支持。

有没有办法添加ext4支持,或者我需要重新编译一个新的内核?

有趣的一点是,在更换磁盘之前一切都很好。

内核是我们提供商OVH的库内核bzImage-2.6.34.6-xxxx-grs-ipv6-64

这里是我的lilo.conf文件的内容cat /etc/lilo.conf

 lba32 boot=/dev/md1 raid-extra-boot=mbr-only prompt timeout=50 # Enable large memory mode. large-memory image=/boot/bzImage-2.6.34.6-xxxx-grs-ipv6-64 label="Linux" root=/dev/md1 read-only 

我设法解决了这个问题。 磁盘更换后,新磁盘没有安装启动代码。 所以我重新安装了lilo,然后重新启动。 lilo -H -v现在一切正常。

文件系统驱动程序也可以从initrd加载。 确保grub(或者你使用的任何引导程序)加载正确的initrd。 也许你正在加载一个旧的内核。

如果可以使用救援系统启动,则可以重新构buildinitrd。

至less在grub2中你可以指定在启动之前加载一些模块..参见http://grub.enbug.org/FranklinPiat/grub_modules.manpage

已经用它为lvm。 但是,如果你从源代码编译内核,你是否编译ext4的支持? 只有将ext4编译为可加载模块,grub解决scheme才能正常工作。 如果运气不错的话。重新编译…

如果我在哪里,我会首先尝试启动服务器与现场裁谈会,看看是否仍然确定袭击。 如果内核可以在磁盘故障之前读取ext4,那么它现在应该可以读取它,所以我认为可能有其他的错误,如raid不能自动启动,文件系统损坏或类似的东西。

有趣的是,块设备9,1确实是/ dev / md1:

 brw-r----- 1 root disk 9, 1 Feb 15 16:13 md1 

RAID设备是否可能由于硬件故障而重新编号? 你说你没有物理内核访问,所以不能启动可移动媒体(例如live CD),但是你发布了一个内核恐慌消息,并且你build议重build内核,如果你这么做很难不能拿起机器; 所以我对你可以做什么和不可以做什么有些困惑,这使得很难给你select。

这个问题可能不是ext4,因为它从之前的根FS启动。

我目前的倾向是怀疑目前的内核没有MD支持内置( 不是一个可加载的模块,但编译)。 你打印的信息完全是我期望看到的,如果你要引导一个非md感知的内核 – 但是你不能说你改变了这个。

所以我必须问:首先,除了硬盘驱动器之外, 自上次成功重启机器后您有什么变化 ? 你提到“重新编译一个新的内核”,这让我想知道你最近是否在改变内核。 你有没有可能离开当前的MD支持? 你有能力给我们当前内核configuration文件的“多设备支持(RAID和LVM)”部分吗?