如果我使用 -initrd 文件而不是正常启动,为什么 QEMU 需要很长时间来启动?

问题描述 投票:0回答:1

QEMU 有一个选项,我们可以将

-kernel
-initrd
镜像用于启动虚拟机。然而,当我使用它时,如果我只是运行普通的 Ubuntu 版本,QEMU 需要很长时间才能完全启动。

这是正常执行(大约需要6秒才能到达登录页面):

qemu-system-x86_64 -enable-kvm -smp 2 -m 4096 -drive file=~/ubuntu.img,if=virtio,cache=none -drive file=~/drive_10G.raw,format=raw,if=virtio,cache=none -redir tcp:7777::22

然后,如果我以另一种方式运行,我可以指向内核和 initrd 映像,则需要更多时间(大约需要 26 秒):

sudo qemu-system-x86_64 -smp 2 -cpu host -m 4096 -enable-kvm -kernel ~/kernel/arch/x86_64/boot/bzImage -initrd ~/initrd.img-4.13.8 -append "root=/dev/mapper/ubuntu--vg-root ro earlyprintk console=ttyS0" -drive file=~/ubuntu.img,format=raw,if=virtio,cache=none -drive file=~/drive_10G.raw,format=raw,if=virtio,cache=none -redir tcp:7779::22 -serial stdio

您可以注意到,启动时间差异很大,从 6 秒到 26 秒不等。这让我很困扰,因为我需要多次重新启动虚拟机,但它却比以前慢了 4 倍。

P.S.: 我必须在主机终端中获取 QEMU 的串行输出,因为我可以在运行时跟踪内核消息。这就是为什么我使用

-serial stdio
选项。

P.S.2.: 我的主机是 Intel Xeon E3-1270 v5 3.6GHz 4 核 8 线程 + 32GB 内存。

P.S.3.: 我的 GUEST 机器正在运行 UBUNTU 服务器 14.04 LTS + linux-4.13.8

linux-kernel virtual-machine qemu
1个回答
0
投票

对你有好处,我的朋友甚至无法启动:skull:

© www.soinside.com 2019 - 2024. All rights reserved.