Вопрос или проблема
Я работаю над виртуализацией образа Windows 7 с использованием KVM на Ubuntu 12.10 64 бита. Вот характеристики моего компьютера:
Процессор: Intel i7-2860WM, 8 ГБ ОЗУ
Я использую образ, созданный с помощью WinImage, на машине Windows 7 Ultimate 64 бита.
Мне удалось создать виртуальную машину и успешно ее запустить с использованием инструмента “virt-manager”. Чтобы образ работал правильно, я должен указать тип дискового шины как SATA, в противном случае, когда виртуальная машина пытается загрузиться, я получаю BSOD с кодом ошибки 0x0000007B, что связано с ошибками инициализации жесткого диска.
Я хотел бы иметь возможность создавать/запускать эту виртуальную машину из командной строки с использованием KVM, вместо того чтобы использовать утилиту virt-manager. Однако, когда я пробую следующее:
sudo kvm -hda Win7.vhd
Машина загружается и сразу переходит к BSOD с кодом ошибки 0x0000007B. Мне нужен способ из командной строки указать виртуальной машине использовать шину SATA. Или мне нужно создать виртуальную SATA шину и загрузиться с образа Win7.vhd? В основном, мне нужно иметь возможность указывать SATA в качестве опции шины из командной строки, но у меня не было удачи в этом. Любые мысли приветствуются!
у меня такая же проблема, как у вас (очень похожая), ссылаясь на этот источник, это будет:
sudo kvm -M q35 -m 2G -hda Win7.vhd
и немного отклонившись от темы, в моем случае это был реальный жесткий диск, который я вставил в свой Linux через SATA-USB конвертер, и он был определен как /dev/sdc, поэтому это сработало для меня:
sudo kvm -M q35 -m 2G -hda /dev/sdc
Тем не менее, вопрос действительно старый,
Установите драйвер VirtIO SCSI, упомянутый в Использовании драйверов virtio-win с Win7 SP1 x64 (я использую 173-4), затем используйте SCSI при добавлении нового диска в virt-manager.
Опция -hda
все еще не работает, однако поведение изменилось в версиях qemu, что делает его несовместимым со старыми ОС, или, возможно, реализация контроллера IDE изменилась.
Тестировалось на qemu 8.2.2
Ответ или решение
Виртуализация Windows 7 с использованием QEMU-KVM и Проблемы с SATA
Виртуализация Windows 7 на платформе KVM (Kernel-based Virtual Machine) может быть сложной задачей из-за различных конфигураций дисковых контроллеров. Ваша проблема с кодом ошибки BSOD 0x0000007B, возникающая при запуске виртуальной машины, указывает на проблемы с инициализацией жесткого диска. Этот ответ будет опираться на вашу ситуацию и предложит решения для управления виртуальным SATA.
Основные Соображения
При виртуализации Windows 7 важно учитывать, с каким типом дискового контроллера вы работаете. В вашем случае, чтобы загрузить образ Windows 7, необходимо указать использование SATA-контроллера, так как Windows 7 требует правильного драйвера для инициализации SATA-устройств.
Использование коммандной строки для запуска KVM
Чтобы корректно запустить вашу виртуальную машину через командную строку, вы можете использовать следующие параметры команды kvm
:
-
Выбор модели системной платы:
Используйте-M q35
, чтобы выбрать модель системной платы Q35, которая имеет поддержку SATA и SCSI. -
Указание процессорной памяти:
Можно установить объем оперативной памяти, который будет выделен виртуальной машине. Например,-m 2G
для 2 ГБ. -
Указание жесткого диска с использованием SATA:
Вместо параметра-hda
используйте параметры для SATA, чтобы явно указать, что устройство будет использовать SATA контроллер. Вы можете сделать это с помощью опции-drive
.
Пример команды для запуска виртуальной машины:
sudo kvm -m 2G -machine q35 -drive format=vpc,file=Win7.vhd,if=none,id=disk0 -device ahci,id=ahci -device ide-drive,drive=disk0
Опции и параметры
-m 2G
– выделяет 2 ГБ оперативной памяти для виртуальной машины.-machine q35
– определяет модель системной платы как Q35.-drive format=vpc,file=Win7.vhd,if=none,id=disk0
– указывает файл образа как виртуальный диск с указанием формата.-device ahci,id=ahci
– добавляет контроллер AHCI, обеспечивающий поддержку SATA.-device ide-drive,drive=disk0
– присоединяет виртуальный диск к системе.
Установка драйвера VirtIO (дополнительно)
Если планируете использовать SCSI или улучшенные функции доступа к диску, стоит рассмотреть установку драйверов VirtIO. Это может улучшить производительность вашей виртуальной машины. Убедитесь, что вы интегрировали драйверы VirtIO в образ Windows 7.
- Загрузите драйверы VirtIO с официального сайта.
- В процессе установки операционной системы выберите соответствующий драйвер во время выбора устройства.
Резюме
Для успешной виртуализации Windows 7 с использованием KVM в Ubuntu 12.10, обязательно укажите SATA-контроллер через правильные команды в командной строке. Использование -m
, -machine
и -drive
позволяет избежать проблем с загрузкой и инициализацией жесткого диска. Если вы столкнулись с дополнительными трудностями, убедитесь, что все необходимые драйвера установлены и поддерживают вашу конфигурацию.