刘蔼娣 發表於 2025-6-26 22:39:00

使用libvirt在qemu中运行fedora coreos

<p>官方文档: https://docs.fedoraproject.org/en-US/fedora-coreos/provisioning-libvirt/</p>
<h1 id="排坑">排坑</h1>
<p>跟着做会遇到问题</p>
<p>权限问题,报错:</p>
<pre><code>无法访问存储文件 '/home/yyx/.local/share/libvirt/images/fedora-coreos-42.20250609.3.0-qemu.x86_64.qcow2' 的后端文件 '/var/lib/libvirt/images/fcos-test-01.qcow2' (以 uid:107, gid:107 身份): 权限不够
</code></pre>
<p>这里使用的107是qemu,使用id 107可以找到uid = 107的用户。</p>
<p>这里qemu用户对于<code>/var/lib/libvirt/images</code>的权限和<code>/home/yyx/.local/share/libvirt/images/fedora-coreos-42.20250609.3.0-qemu.x86_64.qcow2</code>的权限都不足</p>
<p>首先qemu不能读取<code>fedora-coreos-42.20250609.3.0-qemu.x86_64.qcow2</code>文件。<br>
其次qemu不能在<code>/var/lib/libvirt/images/</code>文件夹中以前面读取的文件作为backing_store创建一个新的文件<code>fcos-test-01.qcow2</code></p>
<p>有两种方式解决这个方式,一种是修改<code>/etc/libvirt/qemu.conf</code></p>
<p>找到user和group变量的设置,把user设置成自己的用户名,然后组替换成libvirt</p>
<pre><code># Some examples of valid values are:
#
#       user = "qemu"   # A user named "qemu"
#       user = "+0"   # Super user (uid=0)
#       user = "100"    # A user named "100" or a user with uid=100
#
#user = "qemu"
user = "yyx"

# The group for QEMU processes run by the system instance. It can be
# specified in a similar way to user.
#group = "qemu"
group = "libvirt"
</code></pre>
<p>然后重启libvirtd</p>
<pre><code>systemctl restart libvirtd
</code></pre>
<p>第二种方式设置acl权限,让qemu可以访问<code>fedora-coreos-42.20250609.3.0-qemu.x86_64.qcow2</code>文件,然后将qemu加入到libvirt组,让它可以访问<code>/var/lib/libvirt/images/</code></p>
<p>把qemu加到libvirt组的命令</p>
<pre><code class="language-bash">sudo usermod -aG qemu libvirt
</code></pre>
<p>似乎不把qemu加到libvirt组也可以</p>
<p>把qemu从libvirt组移除的命令</p>
<pre><code class="language-bash">sudo gpasswd -d qemu libvirt
</code></pre>
<p>如果运行的时候发现报错"打开接口MTU失败:无法找到设备",需要检查一下libvirtd服务是不是启动了</p>
<pre><code class="language-bash">使用
systemctl status libvirtd
查看是否启动

如果没启动,使用
systemctl start libvirtd
打开
</code></pre>
<p>然后就可以直接创建一个libvirt虚拟机</p>
<h2 id="参考文档">参考文档</h2>
<p>解决文档: https://cn.linux-terminal.com/?p=4593</p>
<h1 id="拓展">拓展</h1>
<p>libvirt的一些常用操作<br>
使用virt管理虚拟机</p>
<pre><code>virsh list

virsh shutdown

virsh undefine 默认不会删除qcow2文件,需要去/var/lib/libvirt/images下面删掉

virsh 连接到默认的hypervisor管理驱动,比如qemu:///system

virsh console &lt;域的名字&gt; 连接到域
</code></pre>


</div>
<div id="MySignature" role="contentinfo">
    <p>本文来自博客园,作者:yexuanyang,转载请注明原文链接:https://www.cnblogs.com/yexuanyang/p/18951023</p><br><br>
来源:https://www.cnblogs.com/yexuanyang/p/18951023
頁: [1]
查看完整版本: 使用libvirt在qemu中运行fedora coreos