我几天前在服务器上安装了Debian Squeeze。 在安装过程中,安装程序要求我提供带有固件aic94xx-seq.fw的 USB闪存驱动器(文件可能由于授权而消失,您可以在Adaptec站点上find它: http : //www.adaptec.com/en-us/speed/ scsi / linux / aic94xx-seq-30-1_tar_gz.htm )。 一切顺利。 今天我在aptitude中用“U”安装了我的系统的所有更新。 智能安装内核更新2.6.32-5并相应地创buildinitrd。 但是现在我无法启动我的系统,因为在连接到Adaptec RAID卡的硬盘上找不到LVM卷。 我现在怎样启动我的系统? 我有固件的USB。 我有netboot CD。 不幸的是,当我尝试在grub中编辑引导logging时,发现没有旧的内核了。 唯一的内核grub看到的是新的vmlinuz内核和新的initrd如何使我的服务器活着?
到达需要解决的地方将是艰难的。 如果 livecd具有所需的adaptec驱动程序,如果您不能加载驱动程序,直到安装U盘并将文件复制到/ lib / firmware /之后,相当好的livecd应该能够自动加载固件。 如果无法自动加载固件,则需要根据本页底部的说明手动完成,这可能涉及到类似于
echo 1 > /sys/class/firmware/something/loading cat /some/usb/folder/aicwhatever.fw > /sys/class/firmware/something/data echo 0 > /sys/class/firmware/something/loading
(从驱动程序加载完成时开始有10秒钟,否则驱动程序无法加载。)
这应该让RAID控制器在livecd中工作。 从那里,你将不得不挂载你的驱动器并重新创build你的内核的initrd / initramfs。 这个页面有关于为Squeeze的netinstall光盘镜像做这些的说明,理论上这个过程对于一个已安装的系统应该是一样的。 根据安装指南的固件部分末尾的注释 ,您需要安装一个固件包,以便使版本保持最新状态,如果不是的话,那么您需要负责维护与内核版本匹配的固件版本。
你有没有尝试用你的控制器提供的驱动程序重新创buildinitrd? 理论上它应该在内核升级过程中自动完成,但有时它不适用于自定义驱动程序。
如果您需要从RAID控制器启动,则需要使用/ lib / firmware中复制的固件文件重新生成initramfs(使用update-initramfs )。 然后你可以使用这个initramfs启动,你应该有可用的固件。
您应该在update-initramfs上使用-b选项,或者在根fs中挂载根fs(和dev / proc / sys)和chroot。 否则,它会从可启动光盘更新initramfs ..
你需要启动进入救援模式,修改你的/ etc / fstab来注释掉这个有问题的文件系统,然后正常启动并重build你的initrd。
也许你错过了lvm2模块? 尝试这个:
lvm2包救援(我不记得是否救援自动执行,可能是的,但检查它) lvm2命令和模块可以看到你的分区 使用pvscan , vgscan和lvscan来查找lvm链并安装它。 从那里你可以使用chroot来改变你的生产系统,并使用initramfs工具来重新生成它。 一定要包括所有的模块。 快速提示:在对正确的分区进行chroot之后,使用su -将环境variables应用于chroot环境,使工作更容易。