virt-manager ไม่สามารถเชื่อมต่อกับ libvirt ได้


37

ป้อนคำอธิบายรูปภาพที่นี่

ฉันใช้ Ubuntu 12.04.2 32 บิต

gksudo virt-managerข้อผิดพลาดที่ไม่ปรากฏขึ้นถ้าฉันเริ่มต้น

  • libvirt-bin ติดตั้งแล้ว
  • ฉันไม่รู้วิธีตรวจสอบภูต
  • libvirtdผมเป็นสมาชิกของ

ผลลัพธ์ของps ax | grep libvirt:

9225 ? Sl 0:04 /usr/sbin/libvirtd -d
9302 ? S 0:00 /usr/sbin/dnsmasq -u libvirt-dnsmasq --strict-order --bind-interfaces --pid-file=/var/run/libvirt/network/default.pid --conf-file= --except-interface lo --listen-address 192.168.122.1 --dhcp-range 192.168.122.2,192.168.122.254 --dhcp-leasefile=/var/lib/libvirt/dnsmasq/default.leases --dhcp-lease-max=253 --dhcp-no-override`

ผลลัพธ์ของls -l /var/run/libvirt/libvirt-sock:

srwxrwx --- 1 รูท libvirtd 0 ชุด 13 15:04 / var / run / libvirt / libvirt-sock

ผลลัพธ์ของgetent group libvirtd:

 libvirtd:x:130:OTHERUSER,MYUSER

ข้อความแสดงข้อผิดพลาดโดยละเอียด

Unable to connect to libvirt.   
Failed to connect socket to '/var/run/libvirt/libvirt-sock': Permission denied

Verify that:
 - The 'libvirt-bin' package is installed
 - The 'libvirtd' daemon has been started
 - You are member of the 'libvirtd' group

Libvirt URI is: qemu:///system

Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/connection.py", line 1185, in _open_thread
    self.vmm = self._try_open()
  File "/usr/share/virt-manager/virtManager/connection.py", line 1167, in _try_open
    flags)
  File "/usr/lib/python2.7/dist-packages/libvirt.py", line 102, in openAuth
    if ret is None:raise libvirtError('virConnectOpenAuth() failed')
libvirtError: Failed to connect socket to '/var/run/libvirt/libvirt-sock': Permission denied

ข้อผิดพลาดจะไม่ปรากฏขึ้นหากฉันเริ่มgksudo virt-manager
Guy บราซิลนั่น

/etc/libvirt/libvirtd.confไฟล์ของคุณมีเนื้อหาอะไรบ้าง?
Bruno Pereira

ไม่ได้เป็นสถานที่สมบูรณ์แบบ แต่ถ้าคุณอยู่ในโค้งเหมือนฉันและติดตั้งqemuและvirt-managerลองเรียกใช้sudo systemctl start libvirtdและเลือกsudo systemctl enable libvirtdถ้าคุณต้องการที่จะเริ่มต้นที่เริ่มต้น
Ave

คำตอบ:


49

รีบูตระบบที่virt-managerติดตั้งช่วยแก้ปัญหาได้


16
ไม่ใช่โซลูชัน Linux ทั่วไป!
Woeitg

1
ใน 16.04 มัน libvirt-bin. บริการไม่ได้ libvirtd. บริการถ้าคุณสงสัย ดังนั้นภูตจึงอยู่ที่นั่น
Bulat M.

1
โดยปกติเพียงแค่ออกจากระบบ / เข้าสู่ระบบควรจะเพียงพอในกรณีนี้เพื่อให้การเปลี่ยนแปลงความเป็นสมาชิกของกลุ่มแพร่กระจายในเซสชันปัจจุบัน แต่สำหรับฉันโดยส่วนตัวแล้วไม่มีความแตกต่างระหว่าง relogin และรีบูตมาก (ทำให้การหยุดชะงักคล้ายกันมาก ฉันค่อนข้างใช้การรีบูต "ในกรณี"
Ped7g

"คุณลองปิดแล้วเปิดใหม่อีกครั้ง"
tisaconundrum

33

หลังจากติดตั้ง KVM แล้วให้รันคำสั่งนี้จากนั้นข้อผิดพลาดนั้นจะไม่เกิดขึ้นอีก

sudo virt-manager

โว้ว!!! สิ่งนี้ทำงานอย่างไร
Kishor Pawar

sudoมันทำงานเพราะ อ่านคำอธิบายในคำตอบอื่นask.fedoraproject.org/en/question/45805/…
Kishor Pawar

ควรเป็นคำตอบที่ได้รับการยอมรับ
Magno C

1
มันใช้งานได้ แต่จำเป็นต้องรูทเพื่อใช้ ฉันต้องการใช้จากผู้ใช้ปกติ ฉันจะทำอะไรได้บ้าง
Puneet Dixit

4
ในฐานะที่เป็น @ andrew-grasso ฯ คุณจะต้องออกจากระบบ / เข้าสู่ระบบเพื่อให้การเปลี่ยนแปลงความเป็นสมาชิกกลุ่มมีผล ใช้sudoไม่แนะนำ
Alex Willison

5

ฉันจัดการทั้ง Qemu และ Virtualbox บนเครื่อง Ubuntu 14.02 ของฉันและหลังจากติดตั้ง Virtualbox libvirt-bin ไม่สามารถเริ่มอัตโนมัติ ดังนั้นตรวจสอบว่า libvirt-bin กำลังทำงานอยู่หรือไม่:

ps faux | grep libvirt-bin

หากคุณไม่เห็นมันในเอาต์พุต ps - เริ่มต้นด้วยตนเองจากนั้นรัน virt-manager:

sudo service libvirt-bin start


5

สำหรับฉันข้อผิดพลาดเกิดขึ้นเนื่องจากการเปลี่ยนแปลงความเป็นสมาชิกกลุ่มไม่ได้ใช้หากไม่มีการลงชื่อออกจากระบบ (หรือรีบูต) ฉันเพิ่งติดตั้ง KVM และ libvirt-bin โปรแกรมติดตั้งเพิ่มผู้ใช้ของฉันไปยังกลุ่ม libvirtd โดยอัตโนมัติฉันเริ่มบริการ libvirt-bin ใหม่ แต่ฉันยังคงได้รับข้อผิดพลาด

เพียงออกจากระบบและกลับมาแก้ไขปัญหาด้วยการสมัครสมาชิกกลุ่มใหม่ของฉัน

สมมติว่าคุณเพิ่งติดตั้ง libvirt-bin และยืนยันแล้วว่าผู้ใช้ปัจจุบันของคุณเป็นสมาชิกของกลุ่ม libvirtd ตามที่ข้อความแสดงข้อผิดพลาดแนะนำคุณจะต้องออกจากระบบและกลับเข้ามาใหม่เพื่อสมัครสมาชิกกลุ่มใหม่

อย่าเปลี่ยนการอนุญาตของไฟล์เป็น 777 อย่าเพียง แต่เรียกใช้ทุกอย่างในฐานะรูทหรือ sudo เพื่อหลีกเลี่ยงการเข้าใจว่ามีอะไรผิดปกติ

ฉันหวังว่านี่จะช่วยให้ใครบางคน


5

บน Ubuntu 16.04.3 LTS

systemctl start virtlogd.socket

เป็นคำตอบเดียว ซ็อกเก็ตมีภูตของตัวเอง นั่นเป็นเรื่องแปลก


1

หลังจากติดตั้งแพ็กเกจทั้งหมดที่ระบุโดย op คุณสามารถออกจากระบบแล้วลงชื่อกลับเข้าใช้สิ่งใดที่เพิ่มคุณในกลุ่มผู้ใช้ที่คุณต้องออกจากระบบและกลับเข้ามาเพื่อเพิ่มในกลุ่มใหม่ มันเป็นความไม่สะดวกเล็กน้อยน้อยกว่ารีบูตเครื่อง

สิ่งนี้ถูกตั้งค่าสถานะเป็นไม่สมบูรณ์ แต่สิ่งนี้จะเป็นไปตามกฎทั่วไปสำหรับการเพิ่มผู้ใช้ของคุณในกลุ่ม จำเป็นต้องมี relog นั่นเป็นส่วนที่ขาดไปซึ่งฉันไม่เห็นที่นี่


1
ยินดีต้อนรับสู่ถาม Ubuntu! ในรูปแบบปัจจุบันคำตอบของคุณไม่ดีเท่าที่ควร คุณสามารถตรวจสอบวิธีการเขียนคำตอบที่ดีและคู่มือสไตล์สำหรับคำถามและคำตอบ คุณสามารถชี้แจงแพ็คเกจที่จำเป็นต้องติดตั้ง
J. Starnes

1

อีกทางเลือกหนึ่งในการรีบูต / ออกจากระบบคือการเรียกใช้คำสั่งต่อไปนี้จากเทอร์มินัล:

newgrp libvirt
virt-manager

newgrpคำสั่งช่วยให้ผู้ที่จะเข้าร่วมกลุ่มได้โดยไม่ต้องออกจากระบบสำหรับกระบวนการที่จะเริ่มต้นในเปลือกเดียวกันหลังจากlibvirt newgrpแน่นอนว่าจะใช้งานได้ก็ต่อเมื่อตัวติดตั้ง libvirt ทำให้คุณอยู่ในกลุ่ม libvirt ซึ่งคุณสามารถตรวจสอบได้ด้วย:

getent group libvirt

0

ปัญหาถูกกล่าวถึงบนLaunchpadและสาเหตุของปัญหานี้สามารถแก้ไขได้โดยการติดตั้งxen-utilsแพคเกจ ( xen-utils-4.4บน Ubuntu 14.04) ก่อนหน้านี้ฉันได้รับการแก้ไขปัญหานี้โดยvirt-managerผ่านsudoที่บรรทัดคำสั่ง


xenคล้ายกับkvm wiki.archlinux.org/index.php/KVMถ้าคุณได้ติดตั้งไม่ได้ติดตั้งkvm xenมันแทนที่kvmการติดตั้งของฉันและ vms ของฉันหยุดทำงาน เมื่อฉันลบxenvms กลับมาเริ่มทำงาน
Kishor Pawar

0

สำหรับฉันกรณีคือเมื่อใช้service libvirt-bin statusมันแสดงให้เห็นว่าทุกอย่างทำงานได้ดี แต่ฉันไม่สามารถเชื่อมต่อเช่น:

    ● libvirt-bin.service - Virtualization daemon
       Loaded: loaded (/lib/systemd/system/libvirt-bin.service; enabled; vendor preset: enabled)
       Active: active (running) since Do 2016-09-22 13:22:16 CEST; 6min ago
[...]

ใน/var/run/libvirt/ควรมีทั้งสองไฟล์:

srwxrwxrwx  1 root libvirtd    0 Sep 22 13:22 libvirt-sock=
srwxrwxrwx  1 root libvirtd    0 Sep 22 13:22 libvirt-sock-ro=

หากซ็อกเก็ตไม่แสดงให้ใช้service libvirt-bin stop; service libvirt-bin startเพื่อรีสตาร์ทกระบวนการอย่างสมบูรณ์ การใช้service libvirt-bin restartไม่เพียงพอและจะไม่สร้างซ็อกเก็ตอีกครั้ง

libvirt-binบริการได้อย่างปลอดภัยจะหยุดและจะไม่ poweroff แขกผู้เข้าพัก


0

ตั้งแต่ Ubuntu 17.10 ฉันต้องเพิ่มตัวเองลงในกลุ่ม libvirt ด้วย ฉันเพิ่มตัวเองลงใน libvirtd แล้วและไม่ได้ลบตัวเองออกจากกลุ่มนั้น ฉันไม่ทราบว่าจำเป็นต้องใช้ทั้งคู่หรือไม่

ฉันทำสิ่งนี้ตั้งแต่ฉันสังเกตเห็นว่าเนื้อหาของ / var / run / libvirt เป็นเจ้าของโดย libvirt แทนที่จะเป็น libvirtd


เพื่อเป็นคำตอบที่สมบูรณ์คุณต้องพูดว่าจะเพิ่มตัวเองในกลุ่มพิเศษได้อย่างไร
pbhj

-1

ฉันมีปัญหาเดียวกันนี้และในรายงานข้อผิดพลาดแบบละเอียดมันพูดถึงการไม่ได้รับอนุญาตให้ใช้libvirt-sockไฟล์ การเปลี่ยนการอนุญาตของไฟล์/var/run/libvirt/libvirt-sockเป็น 777 ทำให้ใช้งานได้สำหรับฉัน


3
เปลี่ยนหน้ากากได้รับอนุญาตให้ 0777 เป็นที่ไม่ดี ไม่แนะนำการกระทำที่อาจเป็นอันตรายโดยไม่อธิบายผลที่ตามมา! -1
David Foerster

-1

ใช้ซอฟต์แวร์ Ubuntu เพื่อถอนการติดตั้งตัวจัดการเสมือนออกจากระบบลงชื่อกลับเข้าติดตั้งตัวจัดการเสมือนและเรียกใช้ตามปกติโดยไม่ต้องใช้ sudo หรือแม้แต่ใช้บรรทัดคำสั่ง


1
คุณสามารถปรับปรุงคำตอบของคุณโดยขยายเหตุผลว่าทำไมขั้นตอนเหล่านี้จึงจำเป็นต้องมีแทนที่จะติดตั้งใหม่ หรือทำตามหนึ่งในคำตอบอื่น ๆ จากการตรวจสอบ
J. Starnes
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.