Qemu windows загрузка с флешки

Qemu windows загрузка с флешки

Теперь делаем загрузку с флешки:

1. Определяем какой номер имеет флешка: Заходим в Панель управления, Администрирование, Управление компьютером. Вкладка Управление Дисками.
Находим свою флешку и запоминаем ее номер. (На моем скриншоте диск имеет номер 2)

2. Далее переходим в папку, где установлен Qemu.
Создает файл usb_boot.cmd (или назоваите его как угодно) — это обычный текстовый файл.
Внутри него пишем

REM Start qemu on windows.
@ECHO OFF

REM SDL_VIDEODRIVER=directx is faster than windib. But keyboard cannot work well.
SET SDL_VIDEODRIVER=windib

REM SDL_AUDIODRIVER=waveout or dsound can be used. Only if QEMU_AUDIO_DRV=sdl.
SET SDL_AUDIODRIVER=dsound

REM QEMU_AUDIO_DRV=dsound or fmod or sdl or none can be used. See qemu -audio-help.
SET QEMU_AUDIO_DRV=dsound

REM QEMU_AUDIO_LOG_TO_MONITOR=1 displays log messages in QEMU monitor.
SET QEMU_AUDIO_LOG_TO_MONITOR=0

REM PCI-based PC(default): -M pc
REM ISA-based PC : -M isapc
REM -M isapc is added for NE2000 ISA card.

start qemu.exe -L . -m 724 -boot c -hda \\.\PhysicalDrive2 -localtime -M pc

ЗЫ С версией Qemu 0.12.2 работает не совсем корректно — а именно послезагрузки grub4dos — не работает клавиатура. С версией 0.10.2 все работает отлично

ЗЗЫ В принципе можно не мучаться и скачать MobaLiveCD Это упакованный Qemu который делает то же самое что и мы сейчас сделали (запускает kqemu, определяет номер диска флешки и т.д. ), но этот способ имеет минусы:
1. Неизвестно сколько выделяется оперативной памяти
2. Нельзя запустить x86_64 версию
3. Нельзя изменить некоторые настройки (сеть, звук и т.д.)

Проверка работы загрузочной флешки(или USB-HDD) с помощью виртуальной машины Qemu

Для загрузки систем на базе x86 вы можете использовать команду:

Стоит заметить, что раньше для запуска qemu с эмуляцией архитектуры x86 я мог просто набрать qemu вместо qemu-system-i386, но в Ubuntu 12.10 нет символической ссылки с qemu на qemu-system-i386, так что нужно набирать длинное название исполняемого файла.

Для ОС архитектуры x86_64, загружаемых с нашего устройства:

Вместо команды qemu-system- можно использовать команду kvm(если у вас установлена виртуальная машина kvm). KVM работает заметно быстрее, чем Qemu. Но не поддерживает эмуляцию архитектур, отличных от архитектуры хоста(компьютера, на котором вы запускаете виртуальную машину), и требует поддержки аппаратной виртуализации вашим процессором. Если kvm не работает на вашем компьютере, ничего страшного. Используйте Qemu.

Параметр boot c говорит нашей виртуальной машине, что загрузка должна начинаться с жёсткого диска.

Параметр -drive file= ,cache=none указывает, что в роли дискового устройства будет использован файл из каталога /dev/(как вы догадались, это наше дисковое устройство(флешка или винт), которое мы хотим загрузить в виртуальной машине). Обратите внимание на cache=none. Мы запрещаем виртуальной машине кешировать файлы с дискового устройства с которого производим загрузку. Кеширование в нашем случае должно быть отключено, иначе на этапе редактирования конфигурации загрузчика вы не будете понимать, почему в виртуальной машине постоянно загружается старая версия конфигурации. Я как-то очень нервничал из-за того, что Qemu не замечал изменения в grub.cfg, и загружал мне целый час grub.cfg, в котором был только пункт Halt.

Параметр -m 256 выделяет 256 мегабайт оперативной памяти нашей виртуальной машине. Если вы хотите протестировать загрузку Windows 8 или Ubuntu Linux, советую выставить хотя-бы 512 мегабайти, но для проверки работоспособности загрузчика даже 256 мегабайт будет очень много:)

На десерт я оставляю вам скриншот, демонстрирующий приглашение свежеустановленного на flash-брелок (вы же помните, как установить GRUB2 на флешку) загрузчика, загруженного в виртуальной машине Qemu:

Как мне загрузиться с liveusb используя qemu-kvm?

Я пытаюсь получить QEMU-KVM для загрузки с моей живой USB-флешки. Это возможно?

Читайте также:  Windows media and iphone

qemu-kvm -hdb где находится флешка (например /dev/sdb ), должна это сделать (протестирована с Ubuntu 12.04 на флешке и она работает).

Вам потребуется разрешение на запись на устройство (т. Е. Быть root или изменить его разрешения).

QEMU-KVM исчез. используйте подсказку в запуске qemu, указав вместо этого путь к корню linux . это означает

где / dev / sdb — ваше сырое устройство (не раздел) флешки, которую вы хотите загрузить.

(Тем не менее, по состоянию на 12/2014, для меня это было ненадежно. Загрузка ubuntu-gnome 14.10 в итоге приводит к панике ядра на флешке, которая, как проверено, прекрасно загружается на металле.)

Я не знаю почему, но ответ Ренана мне не помог. KVM сказал мне, что не может найти загрузочный диск (несмотря на то, что раздел usb помечен как таковой).

Однако я нашел другое решение. Получите USB-устройство VendorID: ProductID с помощью lsusb. Пример:

Передайте это в KVM и запросите меню загрузки:

Нажмите F12 для меню, выберите USB-устройство, оно работает. Вероятно, есть способ управлять загрузкой через usb без необходимости вызывать меню загрузки, но я не нашел ни одного в man kvm.

Если вы хотите использовать образ liveusb вместо физического USB-накопителя, вы можете сделать это с

Без «-boot menu = on» kvm всегда будет предпочитать жесткий диск, который вы установили с помощью «-drive» или «-hd [a | b | c | d]».

Bootflash (VirtualBoot)

Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Содержание

Тестирование загрузки флешек в виртуальных машинах [ править ]

При возне с загрузочными флешками (и прочими USB-дисками) частенько приходится их многократно тестировать. Если под рукой нет второго компьютера, неохота постоянно перезагружать свою рабочую станцию, или просто хочется экзотической конфигурации компьютера, то можно использовать виртуальные машины. Если удастся их загрузить с USB… Попробуем!

QEMU [ править ]

Достоинства виртуальной машины QEMU:

  • возможность работать как с реальными USB-устройствами, так и с их образами;
  • USB-устройства продолжают оставаться смонтированными в хост-системе.
  • нет загрузки с USB;
  • медленная работа с USB (эмулируется только UHCI-хост).

Итак, QEMU позволяет нам работать как с готовыми флешками, так и с их образами, что позволяет обойтись от постоянной заливки файлов на флешку, что, теоретически, продлит её жизнь 🙂 Из-за того, что QEMU не поддерживает загрузку с USB-устройств, мы подсовываем ей флешку (имидж) дважды — как загрузочный жесткий диск, и как подключённый к системе USB-диск. Сначала BIOS/загрузчик гостевой системы начинает грузиться с жесткого диска, затем, после того, как модуль usb_storage обнаружит свои устройства, загрузка (stage2) продолжится уже с USB-диска. Загрузочный HDD будет виден в системе как hda, флешка — как sda.

Загрузка QEMU с реальной флешки [ править ]

Здесь всё просто: $ qemu -hda /dev/sdc -boot c -usb -usbdevice disk:/dev/sdc Где /dev/sdc — устройство с флешкой в хост-системе. Прочие параметры запуска — по вкусу. Если нужно добавить в гостевую систему жёсткий диск, сделайте его имидж (man qemu-img или просто dd if=/dev/zero…), и укажите параметр -hdb mydisk.img.

Загрузка QEMU с образа флешки [ править ]

Благодаря тому, что параметам -hda и -usbdevice можно подсовывать не только устройства, но и любые файлы, мы можем в нашем тестировании обойтись вовсе без флешки.

Создание образа флешки: [ править ]
  • Создаём файл-контейнер достаточного размера. Соглашаясь с виртуальной геометрией устройства в 32 сектора на дорожку, по 512 байт каждый, 64 головки мы получаем размер цилиндра равным мегабайту, что очень удобно для рассчетов. Так, для создания контейнера для гигабайтной флешки, мы выполняем:
    $ dd if=/dev/zero of=flash.img bs=$((512*32*64)) count=1K
  • Прописываем в файл контейнера Partition Table:
    $ /sbin/fdisk flash.img
    • назначаем виртуальную геометрию:
    • создаём раздел типа FAT32 (C) и делаем его активным:
  • Записываем загрузчик MBR (если у вас в системе еще не стоит пакета syslinux — поставьте его!):
    $ dd if=/usr/lib/syslinux/mbr.bin of=flash.img conv=notrunc
  • Делаем контейнер для VFAT-раздела:
    • выясняем размер:
      $ echo -e "x\np\n" |/sbin/fdisk flash.img

Запоминаем цифры 32 в колонке Start и 2097120 в Size. Это смещение и размер нашего раздела в 512-байтных блоках.

    • Делаем файловую систему (man mkfs.vfat). Здесь мы должны указать размер в 1K-блоках, поэтому
      $ /sbin/mkfs.vfat -v -C flash1.vfat $((2097120/2))
  • Создаём точку монтирования и монтируем туда свежесозданный контейнер раздела:
    $ mkdir mybootflash
    # mount -o loop,fmask=0111,dmask=0000,quiet flash1.vfat mybootflash
  • Копируем всё, что нам надо, в смонтированный образ раздела флешки, не забывая про файлы syslinux’а.
  • Отмонтируем контейнер раздела
  • Записываем загрузчик syslinux:
    $ syslinux flash1.vfat
    Если у нас для хранения всех файлов syslinux’а выделена отдельная директория на флешке, то лучше и файл загрузчика ldlinux.sys прописать туда же, указав параметр -d (например, $ syslinux -d /syslinux flash1.vfat
  • Теперь мы записываем готовый контейнер раздела внутрь контейнера устройства, по ранее запомненному смещению в 32 сектора:
    $ dd if=flash1.vfat of=flash.img bs=512 seek=32 conv=notrunc
Читайте также:  What is windows rdp port

Всё, образ флешки готов! В дальнейшем, при изменении содержимого, и без необходимости увеличивать размер устройства, можно повторять операции, начиная с монтирования контейнера раздела, автоматизировав эту операцию по вкусу.

Загрузка с образа флешки [ править ]

$ qemu -hda flash.img -boot c -usb -usbdevice disk:flash.img Даже немного быстрее получится 🙂

VMWare [ править ]

Достоинства виртуальной машины VMWare:

  • высокая скорость работы с USB-устройствами;
  • нет загрузки с USB;
  • невозможно работать с образом флешки.

С VMWare нам придётся использовать реальное USB-устройство, которое мы будем передавать гостевой системе, при этом из host-системы оно исчезнет. Кроме того, нам придётся делать образ загрузочного мини-диска для обхода невозможности грузиться с USB-устройств. Но высокая скорость работы с флешками перевешивает все эти неудобства. Тестировалась VMWare шестой версии. Итак, предположим, что у нас сконфигурирована виртуальная машина mytestvm, с SCSI-диском(ами), и есть готовая флешка.

QEMU/KVM и установка Windows

Хотим мы того или нет, но программы, для которых необходима Windows, никуда из офисов не исчезли. В ситуации, когда их использование безальтернативно, лучше иметь виртуальную ОС, например для того, чтобы подключиться к аудио-конференции через Skype for Business.

В этой статье я расскажу, как можно с минимальными издержками установить гостевую ОС Windows на гипервизоре QEMU с помощью графического интерфейса virt-manager . Мы нанесем на карту все подводные камни и рифы, а жучков аккуратно посадим в банку.

Подготовка

Самый первый шаг — настройка параметров ядра. Обязательна поддержка KVM и vhost-net , желательна поддержка туннельных интерфейсов [1] и сетевого моста [2] . Полный список на Gentoo вики-странице QEMU.

Подготовьте дисковое пространство. Я выделил 70 GiB, и Windows 8.1 за пару месяцев использовала почти 50 GiB так, что для обновления до 10-й версии места на диске не хватило.

Далее, нам понадобится набор редхатовских драйверов virtio-win . Если у вас установлен RedHat, достаточно запустить

и образ iso будет записан в каталог /usr/share/virtio-win/ . Также можно его скачать с репозитариев Fedora.
Убедитесь, что поддержка аппаратной виртуализация включена в BIOS/UEFI. Без этого KVM не будет активирован, а virt-manager выдаст вот такую ошибку.

В качестве проверки можно прочитать файл устройства.

Если файл не обнаружен, а опции ядра выставлены верно, значит дело в настройках BIOS/UEFI .
Устанавливаем нужные пакеты.

Для RedHat 7 достаточно установить только virt-manager , так как QEMU устанавливается по умолчанию.

Дебианщикам надо установить пакет qemu .

Можно теперь переходить к установке.

Запуск и инсталляция

Запускаем virt-manager и создаем новую виртуальную машину из локального хранилища.

Указываем путь к установочному iso образу Windows.

Далее, на 3-м и 4-м шаге будет выбор количества CPU, объем RAM и размер дискового пространства, после чего на 5-м шаге следует выбрать дополнительные конфигурации перед настройкой.

Окно дополнительных настроек нужно для того, чтобы выполнить финт ушами. Его смысл в том, чтобы добавить виртуальный флопарь с драйверами из набора virtio-win . Это даст возможность изменить тип жесткого диска: удалить диск с шиной IDE и добавить его же, но с шиной VirtIO. Подробно, в доках RedHat.

Прописываем драйвер /usr/share/virtio-win/virtio-win.vfd и добавляем виртуальный флоппи-диск. Затем переходим на вкладку [Шина] Диск № и проделываем финт с заменой шины диска: удаляем с IDE и добавляем с VirtIO.

Читайте также:  Режим dos windows 10

Чуть не забыл сказать, для чего нужен этот фокус. Специалисты утверждают, что с шиной VirtIO, производительность диска ощутимо выше.

В принципе, уже можно начинать инсталляцию, но мы забыли добавить CD-ROM с драйверами virtio-win , а они нам пригодятся, когда диспетчер устройств засверкает желтыми иконками вопросительного знака.

Ну вот теперь можно начать установку.

Ну хорошо, начали мы установку. А что, если установщик Windows попросит сменить диск? Мне из-за этого пришлось пару раз прервать и начать всю карусель заново, но с вами такого уже не случится.

Драйвера и доводка

По окончанию процесса установки диспетчер устройств недосчитается некоторых драйверов. Предположительно, это могут быть:

Нужно скормить им драйвера из набора virtio-win , что подключены через IDE CD-ROM в предыдущем разделе.

Делается это стандартно: правой кнопкой на желтый знак вопроса, обновить драйвера, путь к файлам.

Вот весь список, а это соседняя страница RedHat доков, где установка драйверов показана подробнее.

  • Balloon, the balloon driver, affects the PCI standard RAM Controller in the System devices group.
  • vioserial, the serial driver, affects the PCI Simple Communication Controller in the System devices group.
  • NetKVM, the network driver, affects the Network adapters group. This driver is only available if a virtio NIC is configured. Configurable parameters for this driver are documented in Appendix E, NetKVM Driver Parameters.
  • viostor, the block driver, affects the Disk drives group. This driver is only available if a virtio disk is configured.

Оборудование

Тут постепенно начинается область безграничных возможностей и 101 способов сделать по-своему, поэтому я покажу, как это работает у меня, а вы можете настроить более точно под свои нужды.

У меня выбран дисплей Сервер Spice и звуковое устройство ich6 . Нет, конечно, если у вас уйма времени и желание во всем разобраться до самых тонкостей — дерзайте и пробуйте альтернативные подходы, но у меня звук взлетел, вернее завибрировал, только с такими настройками. Во второй части, посвященной прогулке по граблям и отлову багов, я расскажу об этом подробнее. В закладке видео я выставил QXL , ибо с этой опцией, благодаря волшебному драйверу, мне удалось добиться нормального разрешения экрана.

Подключаться к ВМ можно разнообразно.

  1. Через графический интерфейс virt-manager
  2. Выбрать дисплей VNC-сервер и подключаться через vnc-клиента
  3. Установить Spice-клиента и подключаться через него
  4. К Windows можно подключиться через rdp, если включен терминальный сервер

У меня вариант 3, для Gentoo это программа spice-gtk

Сеть для ВМ можно настроить по-разному, на Хабре умельцы уже об этом писали. Я перепробовал несколько способов, и в конце простота опять взяла вверх. Сама ВМ запускается из под рута [3] , но графический интерфейс spice-gtk — из под обычного непривилегированного пользователя. Это позволяет решить дилемму: для сетевых опций нужны права рута, а для звукового демона pulseaudio, рут запрещен. Я пробовал навешать все права на обычного пользователя, но ничего не получалось, то pulse не пульсирует, то сеть не создается, там много а тут мало. В итоге решил так и доволен. Буду рад, если в комментариях будет найден лучший способ.

Такой простой выбор сетевых опций дает результат превосходящий ожидания. Создаются 3 дополнительных сетевых интерфейса: virbr0, virbr0-nic, vnet0.

В iptables создается свод правил, вот основные:

Повторяю, все это libvirtd создает сам, ничего для этого делать не надо. В результате имеем нормальный роутинг между хостом и ВМ, можно обмениваться файлами по ssh / scp . Можно пойти дальше и создать шару на Windows, а на Linux хосте настроить samba, но мне это показалось избыточным.

В завершение

Трудно рассказать в одной статье обо всех аспектах Windows + QEMU/KVM, поэтому завершим в следующей. А там будет самый смак, командный интерфейс, разрешение экрана максимум 1024×768, Сцилла pulseaudio и Харибда сети, команда virsh и настройка ВМ из конфиг файла, фейл с tpm , двоичный синтаксис устройств и прочие тихие радости.

  1. ↑TUN/TAP interfaces
  2. ↑Ethernet bridging
  3. ↑От английского root
Оцените статью