Вопрос или проблема
Я пытаюсь создать гостевую ОС Windows 7 в KVM на Ubuntu 12.04, используя virt-manager
.
После заполнения различных конфигурационных опций, когда начинается установка, появляется сообщение об ошибке:
Не удалось завершить установку: ‘Не удалось прочитать с монитора: Соединение сброшено партнером’
Дальнейшее изучение показывает файл журнала в /var/log/libvirt/qemu/
, указывающее на несколько проблем:
-
Не удалось открыть option rom '/usr/share/qemu/vapic.bin': Доступ запрещен
-
pci_add_option_rom: не удалось найти romfile "pxe-virtio.rom"
-
Не удалось прочитать файл раскладки клавиатуры: '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"
-
Проверка SELinux: Убедитесь, что SELinux не блокирует доступ к файлу. Выполните следующую команду:
sudo getenforce
Если результат —
Enforcing
, попробуйте временно отключить SELinux командой:sudo setenforce 0
-
Права доступа: Проверьте, действительно ли файл доступен для чтения. Хотя вы уже показали, что права на файл
vapic.bin
выставлены корректно (доступно для чтения всем), стоит проверить, не используется ли другой механизм безопасности (например, AppArmor). Убедитесь, что настройки приложения позволяют доступ. -
Перезапуск службы libvirt: После внесения изменений попробуйте перезапустить службу libvirt:
sudo systemctl restart libvirtd
Ошибка 2: "pci_add_option_rom: failed to find romfile ‘pxe-virtio.rom’"
- Проверка наличия и расположения файла: Вы указали, что файл
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’"
- Установка ключевых файлов: Эта ошибка может быть связана с отсутствием файла с ключами. Убедитесь, что необходимые пакеты установлены:
sudo apt-get install qemu-keymaps
Попробуйте также обновить кэш доступных пакетов:
sudo apt-get update
Итоговые шаги
-
Выполните все предыдущие шаги и проверьте логи снова. Логи обычно находятся в
/var/log/libvirt/qemu/
, и их полезно анализировать после каждого изменения. -
Если проблема сохраняется, можете попробовать перезапустить ваш компьютер для применения всех изменений и очистки временных состояний.
Заключение
Если после выполнения всех шагов проблема не решается, рассмотрите возможность установки более новой версии Ubuntu или используйте более актуальные версии QEMU и KVM. Иногда проблемы могут возникать из-за устаревших программных пакетов или несовместимостей.
Если возникнут дополнительные вопросы, не стесняйтесь спрашивать. Удачи!