无法连接到 '/var/run/libvirt/libvirt-sock' 的套接字

我遇到了libvirtd的问题,即使我运行systemctl start libvirtd.service,该服务仍处于非活动状态。
我是libvirt和kvm的成员。
systemctl status libvirtd的输出为:
libvirtd.service - Virtualization daemon
   Loaded: loaded (/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Tue 2020-04-07 23:44:24 -04; 8s ago
     Docs: man:libvirtd(8)
           https://libvirt.org
  Process: 19508 ExecStart=/usr/sbin/libvirtd $libvirtd_opts (code=exited, status=0/SUCCESS)
 Main PID: 19508 (code=exited, status=0/SUCCESS)

当我运行其他命令,比如virsh list时出现错误。
error: failed to connect to the hypervisor
error: Failed to connect socket to '/var/run/libvirt/libvirt-sock':  No such file or directory

目录/var/run/libvirt/中不包含文件libvirt-sock,我认为这是主要问题,但我不知道解决办法。
ls /var/run/libvirt
network  storage  virtlockd-sock  virtlogd-sock

我安装了libvirt-daemon-system qemu-kvm libvirt-bin bridge-utils virt-manager qemu libvirt0。
我尝试使用systemctl enable libvirtd和systemctl enable libvirtd,但是它处于非活动状态。
当我运行systemctl restart libvirtd时,journalctl -f的输出如下:
abr 08 08:40:56 susan sudo[7195]: susan : TTY=pts/1 ; PWD=/home/susan ; USER=root ; COMMAND=/bin/systemctl restart libvirtd
abr 08 08:40:56 susan sudo[7195]: pam_unix(sudo:session): session opened for user root by (uid=0)
abr 08 08:40:56 susan systemd[1]: Starting Virtualization daemon...
abr 08 08:40:56 susan systemd[1]: Started Virtualization daemon.
abr 08 08:40:56 susan sudo[7195]: pam_unix(sudo:session): session closed for user root
abr 08 08:40:56 susan libvirtd[7198]: 2020-04-08 12:40:56.120+0000: 7225: info : libvirt version: 4.0.0, package: 1ubuntu8.15 (Guilherme G. Piccoli <gpiccoli@canonical.com> Thu, 20 Feb 2020 13:07:33 -0300)
abr 08 08:40:56 susan libvirtd[7198]: 2020-04-08 12:40:56.120+0000: 7225: info : hostname: susan
abr 08 08:40:56 susan libvirtd[7198]: 2020-04-08 12:40:56.120+0000: 7225: error : virFirewallValidateBackend:193 : direct firewall backend requested, but /sbin/ebtables is not available: No existe el archivo o el directorio
abr 08 08:40:56 susan libvirtd[7198]: 2020-04-08 12:40:56.120+0000: 7225: error : virFirewallApply:916 : internal error: Failed to initialize a valid firewall backend
abr 08 08:40:56 susan libvirtd[7198]: 2020-04-08 12:40:56.128+0000: 7225: error : virConfParseValue:529 : configuration file syntax error: /etc/libvirt/qemu.conf:412: expecting a value
abr 08 08:40:56 susan libvirtd[7198]: 2020-04-08 12:40:56.128+0000: 7225: error : virStateInitialize:775 : Initialization of QEMU state driver failed: configuration file syntax error: /etc/libvirt/qemu.conf:412: expecting a value
abr 08 08:40:56 susan libvirtd[7198]: 2020-04-08 12:40:56.128+0000: 7225: error : daemonRunStateInit:849 : Driver state initialization failed

在`etc/libvirt/qemu.conf`文件中的第412行
group=kvm

有没有解决这个问题的办法?谢谢!

你能在执行 "systemctl restart libvirtd" 的同时跟踪 "journalctl -f" 吗?这样可以捕捉更多的操作信息。请将输出结果添加到你的问题中。 - Christian Ehrhardt
谢谢!我在问题中添加了这些信息! - Susan
请提供Ubuntu的版本,并告知这是托管计算机还是VPS(有时可能存在类似问题)?您似乎缺少iptables,它提供了ebtables。 - Doug Smythies
嗨,我认为"group=kvm"应该改为"group = kvm",但是这真的很奇怪,你显然不需要设置这个 - 甚至可能因此失败。在99.9%的情况下,你可以将qemu.conf中的所有内容注释掉并保留默认值,这样就没问题了。否则,我同意Doug的观点,这个运行在哪个版本的Ubuntu上?你安装了哪些*tables - 也许还可以报告dpkg -l '*iptables*' '*ebtables*' - Christian Ehrhardt
既然你说“我是libvirt和kvm的成员”,而在我的情况下,这是我唯一需要解决的问题,你确定会员资格已经生效了吗?你可以在终端运行groups来验证,因为它只在重新登录后(或者运行su - $(whoami))才会生效。 - pzkpfw
在20.04版本中遇到了相同的问题。从官方指南安装的。 - soufrk
2个回答

你安装了kvm吗?要安装libvirt和kvm,请尝试运行以下命令。
sudo apt install qemu qemu-kvm libvirt-clients libvirt-daemon-system virtinst bridge-utils

sudo systemctl enable libvirtd
sudo systemctl start libvirtd

我注意到你的输出中缺少 ebtables。你可以通过运行以下命令来安装它们:
sudo apt install -y ebtables

然后重新启动服务。希望这对你有所帮助。

2我尝试了上述的所有方法,只有在重新启动后才起作用。别忘了更新grub。 :) - Chaim Eliyah

尝试以下步骤:
sudo setfacl -m user:$USER:rw /var/run/libvirt/libvirt-sock

退出会话,然后重新登录,
sudo systemctl enable libvirtd
sudo systemctl start libvirtd