ภาพ KVM ล้มเหลวในการเริ่มต้นด้วย virsh ปฏิเสธการอนุญาต


12

ระบบปฏิบัติการโฮสต์ของฉันคือ Ubuntu Server 11.04 (natty)

หลังจากทำตามคำแนะนำโดยละเอียดโดยความช่วยเหลือของ Ubuntu ฉันสร้างภาพ KVM หนึ่งภาพโดยใช้

sudo ubuntu-vm-builder kvm hardy --libvirt qemu:///system

ไฟล์รูปภาพถูกสร้างขึ้นเป็น

-rw-r--r-- 1 root root 438M 2011-06-17 14:39 ubuntu-kvm/tmpK9hbU5.qcow2

ฉันสามารถแสดงรายการด้วย virsh โดย sudo virsh -c qemu: /// ระบบ "list --all"

Id   Name                 State
----------------------------------
  - ubuntu               shut off  

Buth เมื่อฉันโทร

sudo virsh -c qemu:///system "start ubuntu"

เกิดข้อผิดพลาดขึ้น:

error: Failed to start domain ubuntu
error: internal error process exited while connecting to monitor: kvm: -drive file=/home/myuser/vmopt/ubuntu-kvm/tmpK9hbU5.qcow2,if=none,id=drive-ide0-0-0,format=qcow2: could not open disk image /home/myuser/vmopt/ubuntu-kvm/tmpK9hbU5.qcow2: Permission denied

เพิ่มผู้ใช้ "myuser" ในกลุ่ม libvirt แล้ว

ฉันเคยไปที่ chmod ไฟล์ภาพเช่นเดียวกับไดเรกทอรีที่ 777 แต่ข้อผิดพลาดยังคงมี

คำตอบ:


9

ภาพ KVM ถูก จำกัด โดย selinux วางไว้ใน / var / lib / libvirt / images ควรพอเพียง

http://libvirt.org/drvqemu.html#securityselinuxมีรายละเอียดเพิ่มเติม


ชาย!! สิ่งนี้ใช้ได้สำหรับฉัน ขอบคุณมากครับ เห็นได้ชัดว่าไดเรกทอรี $ HOME ของบัญชีของคุณได้รับการปกป้องซึ่งเป็นที่ที่ virsh ชอบติดตั้งสิ่งต่าง ๆ ที่เป็นค่าเริ่มต้น หลังจากที่ฉันติดตั้ง vms ของฉันฉันรัน mv $ HOME / vmfolder / var / lib / libvirt / images จากนั้นฉันก็รัน virsh แก้ไข vmname และเปลี่ยนตำแหน่งของไฟล์รูปภาพตามนั้น
Antwan W. A-Dubb

ฉันต้องเปลี่ยนเจ้าของหนึ่งใน vms ของฉันด้วย มันเป็นของ root ซึ่งนำไปสู่การเข้าถึงถูกปฏิเสธ sudo chown -R libvirt-qemu: kvm dbos / ubuntu-kvm / คุณสามารถเรียกใช้ ls -l บน / ของคุณ / vm / dir / และ / ของมัน / subdirs / เพื่อตรวจสอบสิทธิ์ในแต่ละระดับ ตรวจสอบให้แน่ใจว่าไม่มีของพวกเขาอยู่ในกลุ่มรากและผู้ใช้
Antwan W. A-Dubb

ฉันพบว่าวิธีที่ง่ายที่สุดและปลอดภัยที่สุดในการสร้าง vm ของคุณคือเพื่อให้แน่ใจว่าคุณ cd ไปที่ไดเรกทอรีนี้ / var / lib / libvirt / images และเรียกใช้การติดตั้งของคุณจากที่นั่น ด้วยวิธีนี้คุณจะไม่ต้องกังวลกับการอนุญาตระดับโฟลเดอร์ พวกเขาจะเริ่มต้นกับผู้ใช้ปัจจุบันเมื่อเทียบกับรูท
Antwan W. A-Dubb

4

ทางออกที่ง่ายคือการแก้ไขไฟล์ /etc/libvirt/qemu.conf และยกเลิกการใส่เครื่องหมายบรรทัดต่อไปนี้:

User = "root"
group = "root"

อย่าลืมรีสตาร์ท libvirtd


4
อาจทำให้คุณเรียกใช้ แต่ความหมายของความปลอดภัยคืออะไร
cpast

1
อาจจะดีกว่าที่จะเพิ่มตัวเองให้kvmกลุ่มปรับสิทธิ์ของแฟ้มภาพตามและตั้งอยู่ในuser="<yourname>" qemu.conf
Marc.2377

1

ใน Arch Linux:

sudo usermod -a -G kvm username

กำหนดสิทธิ์สำหรับกระบวนการ QEMU ใน /etc/libvirt/qemu.conf

user = "username"
group = "kvm"

เพื่อรีเฟรชความเป็นสมาชิกกลุ่มในเทอร์มินัลเดียวกัน:

su - username

เพิ่มนามแฝงของคุณ ~/.bashrc

alias virsh='EDITOR=nano sudo virsh && cd /etc/libvirt/qemu'

ในที่สุด

source ~/.bashrc
virsh
list --all
start mydomain

0

ดูเหมือนว่าการอนุญาตข้อผิดพลาดนี้อาจเกี่ยวข้องกับการซ้อนทับ / ภาพรวมของ qcow2 ที่เสียหาย!

ในการตั้งค่านี้มี:

Baseimage> Overlay1>Overlay2

ภาพซ้อนทับถูกสร้างด้วย cmd virsh snapshot-create ...และOverlay1ถูกใช้ใหม่กว่า (ไม่ได้เริ่ม VM) ก่อนสร้างOverlay2(สร้างขึ้นสำหรับการทดสอบ)

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

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