我正在尝试使用--enable-kvm标志从源代码构建和运行QEMU。令人惊讶的事实是qemu与--enable-kvm标志就像CentOS 7(服务器和工作站)上的魅力一样,但它在RHEL 7服务器上非常糟糕。
我正在使用Linux来自sratch指南来构建系统链接:http://www.linuxfromscratch.org/blfs/view/cvs/postlfs/qemu.html
我已使用脚本
测试了vmx标志grep -E "(vmx|svm)" /proc/cpuinfo | wc -l
4
在Rhel以及centos上,我使用以下脚本下载了依赖项。
#!/bin/sh
yum install gcc
yum install zlib-devel
yum install gnutls-devel
yum install libgcrypt-devel
yum install glibc-devel
yum install glib2-devel
yum install pixman-devel
然后我使用以下脚本编译构建
if [ $(uname -m) = i686 ]; then
QEMU_ARCH=i386-softmmu
else
QEMU_ARCH=x86_64-softmmu
fi
sed -i 's/ memfd_create/ qemu_memfd_create/' util/memfd.c &&
mkdir -vp build &&
cd build &&
../configure --target-list=$QEMU_ARCH \
--enable-gnutls \
--enable-gcrypt &&
unset QEMU_ARCH &&
make &&
make-install
在此之后,我尝试使用命令启动加密的虚拟磁盘。
qemu-system-x86_64 --enable-kvm -daemonize -display none \
-net user,hostfwd=tcp::3000-:22,hostfwd=tcp::8080-:8080,hostfwd=tcp::80-:80,hostfwd=tcp::443-:443 -net nic \
-object secret,id=secmaster0,format=base64,file=key.b64 \
-object secret,id=sec0,keyid=secmaster0,format=base64,\
data=$SECRET,iv=$(<iv.b64) \
-drive if=none,driver=luks,key-secret=sec0,\
id=drive0,file.driver=file,\
file.filename=prod.luks \
-device virtio-blk,drive=drive0 -m 5120
然后,我只是在守护进口的kvm中ssh。关键是一切都像CentOS中的魅力一样,但在RHEL 7中,我无法在机器中使用ssh。
如果我删除--enable-kvm
标记,我可以ssh。
我已经花了很多时间试验它,我根本不明白出了什么问题。我不是这个主题的专业人士只是试图找到一个利基问题的解决方案。任何关于对qemu或任何指导或对文档/邮件列表主题/论坛的引用的指导都非常感谢。
和平。
更新
正如@Peter Maydell在评论中提到的那样,我启动了没有display none标志的qemu。它启动了一个vnc,我与vnc连接,似乎kvm似乎没有启动硬盘。它被困在了
Booting from Hard Disk ...