Apple M1 macOS下virt-install连接socket失败问题求助
解决M1 macOS上libvirt virtlogd-sock不存在的问题
我之前在M1 Mac上用Homebrew部署libvirt虚拟机时,也碰到过和你完全一样的错误——明明libvirt主服务已经启动,但就是找不到virtlogd-sock文件。下面是我亲测有效的解决步骤:
1. 手动启动virtlogd服务
Homebrew安装的libvirt有时候不会自动启动virtlogd(日志管理服务),即使主服务已经运行。你可以手动启动它:
sudo /opt/homebrew/sbin/virtlogd --daemon
启动后立刻检查socket文件是否生成:
ls -al /opt/homebrew/var/run/libvirt/virtlogd-sock
如果文件出现了,直接重新运行你的virt-install命令应该就能正常工作了。
2. 验证libvirt配置中的socket路径
如果手动启动后还是没有生成socket文件,可能是libvirt的配置里路径不对:
- 打开libvirt的QEMU配置文件:
sudo nano /opt/homebrew/etc/libvirt/qemu.conf
- 查找
virtlogd_sock配置项,确保它指向正确的路径:
virtlogd_sock = "/opt/homebrew/var/run/libvirt/virtlogd-sock"
如果这行被注释(前面有#),就去掉注释符号。
- 保存文件后重启libvirt服务:
sudo brew services restart libvirt
- 再次手动启动
virtlogd,然后检查socket文件。
3. 修复目录权限问题
如果以上步骤都无效,可能是/opt/homebrew/var/run/libvirt目录的权限有问题:
sudo chown root:wheel /opt/homebrew/var/run/libvirt sudo chmod 755 /opt/homebrew/var/run/libvirt
设置完权限后,重启virtlogd和libvirt服务,再尝试运行虚拟机安装命令。
另外提一句:你的virt-install命令里同时用了--network user和--qemu-commandline里的vmnet-shared网络配置,这两个可能会有冲突,等解决完当前socket问题后,可以根据需要保留其中一个网络配置哦。
内容的提问来源于stack exchange,提问作者Bertuz
相关产品推荐
相关产品推荐

