linux - QEMU 命令行替换为 libvirt

标签 linux virtual-machine qemu kvm libvirt

我当前正在使用 qemu 命令行参数来启动虚拟机。

我的命令行是:

/home/gnayan/QEMU-devel/qemu-ubuntu/qemu/x86_64-softmmu/qemu-system-x86_64
 -trace events=/home/gnayan/qemu_events 
-drive file=/home/gnayan/CUSTOM_QEMU_SYSTEM/UBUNTU/ubuntu.img,if=virtio,format=raw
-drive file=/home/gnayan/CUSTOM_QEMU_SYSTEM/UBUNTU/u1.img,if=virtio,format=raw 
-m 1G -net nic,model=virtio -net user -redir tcp:2222::22 -enable-kvm &

我想使用 virsh 或 virt-install 等 libvirt 工具启动相同的虚拟机,但是我很难完成此任务。

我创建了我的域 xml:

<domain type="kvm">
        <name>first</name>
        <currentMemory unit="MB">1024</currentMemory>
        <memory unit="MB">1024</memory>
        <os>
                <type arch='x86_64'>hvm</type>
        </os>
        <devices>
                <emulator>/home/gnayan/QEMU-devel/qemu-ubuntu/qemu/x86_64-softmmu/qemu-system-x86_64</emulator>
                <disk type='file' device='disk'>
                        <source file='/home/gnayan/CUSTOM_QEMU_SYSTEM/UBUNTU/ubuntu.img'/>
                        <driver name='qemu' type='raw'/>
                        <target dev='vda' bus='virtio'/>
                </disk>
        </devices>
</domain>

然后尝试使用virshdefinefirst.xml创建虚拟机 我收到以下错误:

error: Failed to define domain from first.xml
error: internal error: Child process (LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin /home/gnayan/QEMU-devel/qemu-ubuntu/qemu/x86_64-softmmu/qemu-system-x86_64 -help) unexpected exit status 126: libvirt:  error : cannot execute binary /home/gnayan/QEMU-devel/qemu-ubuntu/qemu/x86_64-softmmu/qemu-system-x86_64: Permission denied

我的 ubuntu 设置可能有什么问题。

我已经从源代码安装了 qemu。

路径/home/gnayan/QEMU-devel/qemu-ubuntu/qemu/x86_64-softmmu/尚未导出,libvirt 是否需要此路径?

我还在dmesg中收到以下消息

type=1400 audit(1470991545.250:44): apparmor="DENIED" operation="exec" profile="/usr/sbin/libvirtd" name="/home/gnayan/QEMU-devel/qemu-ubuntu/qemu/x86_64-softmmu/qemu-system-x86_64" pid=21287 comm="libvirtd" requested_mask="x" denied_mask="x" fsuid=0 ouid=0
[19990.781774] audit: type=1400 audit(1470991545.258:45): apparmor="DENIED" operation="exec" profile="/usr/sbin/libvirtd" name="/home/gnayan/QEMU-devel/qemu-ubuntu/qemu/x86_64-softmmu/qemu-system-x86_64" pid=21288 comm="libvirtd" requested_mask="x" denied_mask="x" fsuid=0 ouid=0

最佳答案

我会这样做

virt-install --quiet --network bridge=bridge-name,model=virtio --name first  --ram=1024 \
--vcpus=1 --disk path=/home/gnayan/CUSTOM_QEMU_SYSTEM/UBUNTU/ubuntu.img,format=raw\
--disk path=/home/gnayan/CUSTOM_QEMU_SYSTEM/UBUNTU/u1.img,format=raw \
--graphics none --os-type=linux --import --autostart & \
  • 网桥名称,为了将其链接到您必须在系统中配置的网桥(并添加物理外部端口以允许虚拟机访问外部网络)
  • --import 选项是因为我假设已经安装了 Ubuntu 操作系统。

  • 对于端口重定向,我会使用 iptables,而不是采用 Vagrant 风格。但只是一个意见。 不确定在 KVM 中是否可行。

我对/var/lib/libvirtd/images/中图像的权限 -rw-r--r-- 1 qemu qemu

关于linux - QEMU 命令行替换为 libvirt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38913383/

相关文章:

linux - Shell 命令循环变量并打印到文件

linux - rpmbuild hp-be2net emulex 驱动程序

php - 即使更新 php.ini 也会出现内存不足的情况

php - 如何通过 PHP 使用 VMware VSphere API 创建新虚拟机

c++ - Linux 与 Windows 7 (VM) C++ 执行速度

ssh - vagrant 连接虚拟机失败

python - 缩放目录中的图像以适合信箱

arm - 在 Ubuntu 中使用 qemu 设置 Beagleboard 模拟器

从应用程序传递给 qemu 的 CPU 写入值很奇怪

linux - qemu-kvm numa拓扑暴露问题