Qemu
在 64 位機器上創建 32 位 initramfs
我在 64 位核心上,想在 QEMU 中執行 32 位核心。獲得壓縮核心映像後,我嘗試使用創建 initramfs 映像,
mkinitcpio
但這僅創建了一個具有 64 位程式碼的映像(mkinitcpio
使用的 busybox 是 64 位的,其他執行檔也是如此)。我可以使用作為
gen_init_cpio
核心一部分的程序並以其他方式獲取 32 位執行檔,但我寧願避免這種情況,讓程序決定核心在 rootfs 中需要什麼。在執行 64 位核心時,有什麼方法可以獲取 32 位 initramfs 映像?
64 位系統不會生成 32 位 initramfs,因為它不需要它。所以你必須在 chroot 中安裝 32 位發行版。
但這也可能不起作用,因為大多數 initramfs 生成器,包括
mkinitcpio
,都進行模組自動檢測。initramfs 將僅包含您的特定硬體和設置所需的模組,它不會在其他任何地方工作。最後,對於大多數 initramfs 生成器,您必須在已啟動的 VM 本身內執行它。您可以禁用模組自動檢測,但 initramfs 會很大。一種折衷方案是在配置文件中手動指定所需的模組。