我正在尝试编译自己的内核 (2.6.9)。
编译和构建方面一切正常,但是...
重新启动到新内核后 - 无法加载 LVM(VolumeGroup00)。
我怀疑 mkinitrd 没有预加载 VirtualBox 的 LSI SAS 存储的相关驱动程序。
我正在使用 RHel 进行该过程。
有人知道我需要向 mkinitrd 添加哪些参数才能使其加载正确的驱动程序吗?
我尝试添加“--preload mptbase --preload mptscsih” - 但都没有帮助。
如果您能提及我应该添加到 .config 中的驱动程序,我将不胜感激(我添加了“常规”驱动程序,但不确定是否足够)
谢谢
我会更具体一点:
运行 mkinitrd 后(使用我想到的任意参数组合)
输出为:
Uncompressing Linux... Ok, booting the kernel.
audit(1410035747.4294966701:0): initialized
Red Hat nash version 4.2.1.6 starting
Reading all physical volumes. This may take a while...
No volume groups found
Unable to find volume group "VolGroup00"
ERROR: /bin/lvm exited abnormally! (pid 202)
mount: error 6 mounting ext3
mount: error 2 mounting none
switchroot: mount failed: 22
umount /initrd/dev failed: 2
kernel panic - not syncing: Attempted to kill init!
答案1
因此,正如预期的那样,问题出在缺少驱动程序。
有多个驱动因素可能导致该现象。
就我的情况而言 - 带有 SCSI 硬盘的 VirtualBox 应该设置以下驱动程序:
- 设备驱动程序 -> 块设备 -> 初始 RAM 磁盘 (initrd) 支持
- 设备驱动程序 -> 块设备 -> RAM 磁盘支持
- 设备驱动程序 -> SCSI 设备支持 -> SCSI 设备支持
- 设备驱动程序 -> SCSI 设备支持 -> SCSI 磁盘支持
- 设备驱动程序 -> Fusion MPT 设备支持 -> Fusion MPT (base + ScsiHost) 驱动程序
请注意,这些是存储所需的唯一驱动程序(在我的情况下,Fusion MPT 丢失并影响了启动)。
如果您想运行网络/使用键盘,则需要其他设备驱动程序,但 VirtualBox 上的系统只能使用这些设备驱动程序启动(但如果没有图形/终端/键盘则无法使用/看起来好像卡住了)。