我使用的是64位内核,并且想在QEMU中运行32位内核。一旦获得了压缩的内核映像,我就尝试使用创建initramfs映像,mkinitcpio
但这仅创建了一个具有64位代码的映像(busyboxmkinitcpio
使用的是64位,其他可执行文件也是如此)。
我可以使用该gen_init_cpio
程序(它是内核的一部分)并以其他方式获取32位可执行文件,但我宁愿避免这种情况,而是让程序确定rootfs中的内核需求。
运行64位内核时,有什么方法可以获取32位initramfs映像吗?
64位系统不会生成32bit的initramfs,因为它不需要它。因此,您必须在chroot中安装32位发行版。
但这可能也不起作用,因为大多数initramfs生成器(包括mkinitcpio
)都执行模块自动检测。initramfs仅包含特定硬件和设置所需的模块,在其他任何地方都无法使用。最后,对于大多数initramfs生成器,您必须在引导的VM本身中运行它。
您可以禁用模块自动检测功能,但是initramfs将会非常庞大。一种折衷方法是在配置文件中手动指定所需的模块。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句