我试图通过串行控制台和托pipe公司的恢复控制台(基本上是一个Ubuntu LiveCD)在软件raid0和LVM根文件系统上configurationdebian lenny的服务器。
configurationraid0后,build立LVM,运行debootstrap,安装grub等,我重新启动,服务器挂起引导,在到达初始化之前。 根据内核日志消息,raidarrays已经联机,并且可能还有LVM(对不起,现在没有确切的日志消息,但是明天会有)。
initramfs脚本本身绝对没有错误输出 – 只有内核日志消息。 我怎样才能让initramfs产生一些有用的debugging输出,所以我至less可以确定它死的地方?
看来,问题是在内核命令行上指定了两次控制台:
.... console=ttyS0,57600 console=tty0
虽然内核消息发送到两个控制台,但用户空间消息大概只能到后者。
内核消息被复制到内核命令行(/ proc / cmdline)中指定的所有设备上。 但是,对于需要input(例如,命令shell)的场景,输出只能转到最后一个console = device(这是从哪里input的)。
至于initramfs的东西,可以在内核命令行上设置debug =(例如,通过像GrUB这样的引导加载程序来完成),以显示在任何级别执行的命令:top,premount,init等。看着initram的initramfs版本,要小心:值是减去启动时看到的“init-”部分。 我希望通过使用“debugging”来看到所有级别,但是,唉,它不能这样工作。
顺便说一句…不是说它会有所不同,但对我来说这是Ubuntu 10.04
这一切都与如何处理设备(/ dev / console)有关。 当它被打开时,它指的是console =的最后一个内核命令行。 因此,尽pipe内核可能会向所有“提及”输出消息,但用户通常只能访问最后一个。
6年后事情发生了很大变化。 Debian wiki文档可能对某人有用: https : //wiki.debian.org/InitramfsDebug#Saving_debug_information