Debian

從現有安裝生成 QEMU 可引導核心

  • July 12, 2017

我一直在嘗試將 QEMU 設置為僅提供控制台輸出。到目前為止,我已成功使用以下參數:qemu-system -curses -hda debian.img,其中 debian.img 是一個有效的 Debian 安裝。不使用其他與引導相關的參數。(N)Curses 似乎非常有問題而且速度很慢,至少在 macOS 主機下是這樣。

我發現了一種更好的方法來實現控制台、非 gui 輸出到啟動 qemu 的終端,方法是使用-serial stdio -append "console=ttyAMA0"而不是-curses. 但是,此選項要求您使用參數指定核心-kernel。有沒有一種方法可以從我現有的 Debian 安裝中提取可引導核心並提供給 qemu?我已經嘗試從 複製 vmlinux /boot,並且還按照本指南從作業系統中提取核心,但它們不會在 QEMU 下使用我現有的 debian.img 文件啟動。我相信我可能還必須將我的作業系統中的 initrd.img 提供給 qemu。

現在,是否可以繼續使用我現有的 debian.img 文件和完整的作業系統,同時使用-kernel參數將(提取的)核心從該圖像(或其他地方,如果需要)傳遞給 qemu?(對於 initrd.img 文件也有同樣的問題)我在 debian.img 文件上的客戶作業系統是 Debian Jessy。

如果你使用直接核心引導(通過-kernelQEMU 選項),你幾乎肯定也想提供-initrd。它們可以從/boot正在執行的仿真係統的目錄中複製,或者您可以使用losetupandkpartx使映像文件的分區可掛載(並確保在再次啟動仿真係統之前解除安裝它們)。通常,您也必須這樣做-append "root=/dev/sda2 console=ttyAMA0"或類似。

另一種方法是將必要的核心參數附加到映像中的引導載入程序配置中。它不太靈活,但也許您實際上並不需要-append. 您可能需要執行update-grub或類似的東西才能將您的console參數嵌入到實際的啟動菜單中。在啟動的系統中執行cat /proc/cmdline以檢查它是否真的有效。

無論哪種情況,您都需要-serial stdio,但是-nographic一旦您不再需要圖形視窗,請將其替換。

引用自:https://unix.stackexchange.com/questions/377329