KVM/virt-manager не удается найти/загрузить ROM-файлы

Вопрос или проблема

Я пытаюсь создать гостевую ОС Windows 7 в KVM на Ubuntu 12.04, используя virt-manager.

После заполнения различных конфигурационных опций, когда начинается установка, появляется сообщение об ошибке:

Не удалось завершить установку: ‘Не удалось прочитать с монитора: Соединение сброшено партнером’

Дальнейшее изучение показывает файл журнала в /var/log/libvirt/qemu/, указывающее на несколько проблем:

  1. Не удалось открыть option rom '/usr/share/qemu/vapic.bin': Доступ запрещен

  2. pci_add_option_rom: не удалось найти romfile "pxe-virtio.rom"

  3. Не удалось прочитать файл раскладки клавиатуры: 'en-us'

Я не понимаю, в чем проблема с vapic.bin – он находится по указанному пути и доступен для чтения:

ls -la /usr/share/qemu/vapic.bin

-rwxr-xr-x 1 root root 9216 Feb 28 11:01 /usr/share/qemu/vapic.bin*

pxe-virtio.rom тоже там присутствует:

ls -al /usr/share/qemu-linaro/pxe-virtio.rom 

-rw-r--r-- 1 root root 63488 Feb 10  2012 /usr/share/qemu-linaro/pxe-virtio.rom

ls -al /usr/share/qemu/pxe-virtio.rom

-rw-r--r-- 1 root root 63488 Feb 10  2012 /usr/share/qemu/pxe-virtio.rom

Мне нужна помощь в исправлении "доступ запрещен" для vapic.bin, а также понимание того, где ожидается наличие pxe-virtio.rom (предполагая, что он должен находиться не в /usr/share/qemu?), или как это явно настроить?

Полный журнал:

2013-05-07 06:27:36.780+0000: запуск

LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin 
QEMU_AUDIO_DRV=none 
/usr/bin/kvm -S -M pc-1.0 -enable-kvm -m 8024 -smp 2,sockets=2,cores=1,threads=1 -name Win7 -uuid 88384f67-0c25-62be-d564-5fb6ad182caf -nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/Win7.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime -no-reboot -no-shutdown -drive file=/var/lib/libvirt/images/Windows7.img,if=none,id=drive-ide0-0-0,format=raw -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=2 -drive file=/Archive/iso/Win7-x64-sp1.iso,if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0,bootindex=1 -netdev tap,fd=18,id=hostnet0 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:e6:4a:49,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -usb -device usb-tablet,id=input0 -vnc 0.0.0.0:0 -vga std -device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5

символ устройства перенаправлен в /dev/pts/1

Не удалось открыть option rom '/usr/share/qemu/vapic.bin': Доступ запрещен

kvm: -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:e6:4a:49,bus=pci.0,addr=0x3: pci_add_option_rom: не удалось найти romfile "pxe-virtio.rom"

Не удалось прочитать файл раскладки клавиатуры: 'en-us'
2013-05-07 06:27:37.413+0000: завершение работы

Проверьте статус SELinux с помощью следующей команды:

sudo getenforce

Если статус Enforcing, попробуйте:

sudo setenforce 0

Просто мысль.

Ответ или решение

Для решения проблемы, с которой вы столкнулись при создании виртуальной машины Windows 7 на KVM с использованием virt-manager, давайте разберем несколько ключевых моментов, касающихся ошибок, упомянутых в логах.

Ошибка 1: "Could not open option rom ‘/usr/share/qemu/vapic.bin’: Permission denied"

  1. Проверка SELinux: Убедитесь, что SELinux не блокирует доступ к файлу. Выполните следующую команду:

    sudo getenforce

    Если результат — Enforcing, попробуйте временно отключить SELinux командой:

    sudo setenforce 0
  2. Права доступа: Проверьте, действительно ли файл доступен для чтения. Хотя вы уже показали, что права на файл vapic.bin выставлены корректно (доступно для чтения всем), стоит проверить, не используется ли другой механизм безопасности (например, AppArmor). Убедитесь, что настройки приложения позволяют доступ.

  3. Перезапуск службы libvirt: После внесения изменений попробуйте перезапустить службу libvirt:

    sudo systemctl restart libvirtd

Ошибка 2: "pci_add_option_rom: failed to find romfile ‘pxe-virtio.rom’"

  1. Проверка наличия и расположения файла: Вы указали, что файл pxe-virtio.rom доступен в двух местах. Убедитесь, что QEMU действительно пытается обратиться к файловой системе, используя правильный путь. Для этого проверьте конфигурационные файлы libvirt и убедитесь, что пути указаны правильно. Если необходимо, создайте символическую ссылку:
    sudo ln -s /usr/share/qemu-linaro/pxe-virtio.rom /usr/share/qemu/pxe-virtio.rom

Ошибка 3: "Could not read keymap file: ‘en-us’"

  1. Установка ключевых файлов: Эта ошибка может быть связана с отсутствием файла с ключами. Убедитесь, что необходимые пакеты установлены:
    sudo apt-get install qemu-keymaps

    Попробуйте также обновить кэш доступных пакетов:

    sudo apt-get update

Итоговые шаги

  1. Выполните все предыдущие шаги и проверьте логи снова. Логи обычно находятся в /var/log/libvirt/qemu/, и их полезно анализировать после каждого изменения.

  2. Если проблема сохраняется, можете попробовать перезапустить ваш компьютер для применения всех изменений и очистки временных состояний.

Заключение

Если после выполнения всех шагов проблема не решается, рассмотрите возможность установки более новой версии Ubuntu или используйте более актуальные версии QEMU и KVM. Иногда проблемы могут возникать из-за устаревших программных пакетов или несовместимостей.

Если возникнут дополнительные вопросы, не стесняйтесь спрашивать. Удачи!

Оцените материал
Добавить комментарий

Капча загружается...