Як завантажувати фізичний розділ Windows за допомогою qemu?


14

У мене gentoo та windows 7 встановлені поряд на моєму єдиному жорсткому диску. Я хочу запустити інсталяцію Windows зсередини gentoo через qemu. Меню завантаження працює чудово, але Windows bluescreens на мене незабаром після того, як я його виберу.

Як би я змусив це працювати?

(Я припускаю, що в Windows немає драйверів, необхідних для роботи апаратного керування qemu.)


переконайтеся, що ви працюєте qemuз правильною архітектурою. Крім того, Windows не вдасться завантажитися, якщо він очікує, що контролер жорсткого диска буде AHCI, і це не так (і навпаки).
gelraen

Архітектура хороша, але я не думаю, що щось можна зробити з ахці, оскільки qemu, здається, не підтримує це ...
McEnroe

Спробуйте це: avforums.com/forums/windows-7/…
gelraen

Проблеми @gelraen полягають у тому, що ваше посилання описує зворотний процес того, що я хочу зробити. Я не можу ризикнути просто спробувати це, не знаючи, що є шанс, що це спрацює, або принаймні, що це 100% оборотно.
McEnroe

Ця посада саме стосується повернення AHCI до ATA. І ви завжди можете вимкнути AHCI на фізичній машині і змінити його назад, або навіть просто створити резервну копію файлів реєстру.
gelraen

Відповіді:


8

Завантажити рідний фізичний розділ Windows7 можна за допомогою цього:

  1. Підготуйте реквізити (інсталяційний носій Win7, драйвери Virtio).
  2. Зробіть ваш жорсткий диск доступним лише для читання для вашого поточного користувача.
  3. Завантажте його за допомогою QEMU в режимі "знімок".

Це не змінює нічого на фізичному диску (насправді це тільки для читання).


Деталі

Підготуйте реквізити

  1. Підготуйте ISO або, якщо у вас є накопичувач, справжній носій для установки Win7.
  2. Завантажте драйвери Virtio, наприклад, такі драйвери від Fedora:
    https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso

Слідкуйте за тим, щоб використовувати правильний інсталяційний носій, що відповідає встановленій архітектурі Windows (32 біт проти 64 біт). Наступні команди передбачають 64-бітну архітектуру.

Зробіть диск доступним

Це передбачає, що ваш жорсткий диск є /dev/sdaі виконується як root:

   chmod g-w /dev/sda
   chgrp $USER /dev/sda

Ці зміни (ймовірно) будуть втрачені при наступному перезавантаженні, оскільки udev зазвичай відтворює всі файли пристрою.

Завантаження з QEMU

  1. Це знову припускає, що ваш жорсткий диск є /dev/sda. Мережа відключена:

    qemu-system-x86_64 -snapshot -m 3G -enable-kvm -usbdevice tablet \
    -drive file=/dev/sda,if=virtio \
    -drive file=<win7-installation-media> \
    -drive file=<virtio-driver-media>,media=cdrom -boot d \
    -net none
    
  2. Тепер завантажтеся з CD / DVD, щоб розпочати відновлення Win7, завантажте драйвер Virtio і виконайте наступну команду в командному рядку відновлення. Переконайтесь, що ви замінили літери накопичувача на відповідні:

    dism /image:g:\ /add-driver /driver:e:\viostor\w7\amd64
    

Диск G:- це накопичувач, що містить установку Win7. Диск E:представляє привід CDROM з драйверами Virtio.

dismКоманда була скопійована з цього Super User відповіді .

Погляньте на знімки екрана для деталей:

(Вибачте, скріншоти підготовлені, але мені потрібно 10 репутацій, щоб мати можливість їх розміщувати :)


Річ із репутацією - це біль. Це зупинило мене, і багато інших, від надання детальної допомоги, яку ми хотіли. = / Я щойно завантажив шаблону в imgur і вставив посилання, FYI.
Brent Rittenhouse

Якщо чесно, 10 балів не надто важко отримати. Проблема полягає в тому, що я більше не можу знайти скріншоти. Я майже впевнений, що вони десь на моїх дисках, але ...: /
doak

3

З того, що я побачив у цій публікації , ви не можете використовувати qemu для завантаження існуючої установки Windows.

Основний аргумент наводиться на тому, що при встановленні Windows ключ продукту асоціюється з материнською платою вашого комп'ютера. Тепер, коли ви намагаєтеся запустити Windows за допомогою qemu, Windows сприймає емулятор qemu як іншу материнську плату і, таким чином, створює проблеми.

Детальнішу інформацію див. У публікації .


2
VirtualBox може рекламувати себе як довільну материнську плату ( forums.virtualbox.org/viewtopic.php?t=33356 ), можливо, і QEMU.
RushPL

1

Мені вдалося це зробити на archlinux, здебільшого, адаптувавши приклади, які інші (розумніші) люди надавали в блоги.

Мінімальна версія:

встановити deps

sudo pacman -S qemu   # qemu itself
sudo pacman -S ovmf   # intel EFI driver
cp /usr/share/ovmf/x64/OVMF_CODE.fd bios.bin   # copy OVMF_CODE.fd to bios.bin somewhere. It MUST be renamed.

почати qemu

qemu-system-x86_64 \
    -enable-kvm                                   `# enable KVM optimiations` \
    -L .                                          `# dir with bios.bin` \
    --bios bios.bin                               `# bios.bin itself` \
    -m 8G                                         `# provide reasonable amount of ram` \
    -cpu host                                     `# match the CPU type exactly` \
    -drive file=/dev/sda,format=raw,media=disk    `# load raw HDD` 

Оптимізація продуктивності

Наступні прапори мені також рекомендували, і я їх успішно використовую.

# emulate exact host cpu,
# enable hyper-v enlightenments
-enable-kvm
-cpu host,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time
-machine type=pc,accel=kvm

# use all available CPU cores
-smp $(nproc)

Глядач

Я використовував спецію як глядач:

-daemonize  `# don't start monitor, we connect using RDP` \
-vga qxl \
-spice port=5930,disable-ticketing \
-device virtio-serial \
-device virtserialport,chardev=spicechannel0,name=com.redhat.spice.0 \
-chardev spicevmc,id=spicechannel0,name=vdagent \

Далі слідує наступне для перегляду глядача

spicy -h 127.0.0.1 -p 5930 & disown spicy;  # spice-gtk

Попередження завантажувача Windows

Нарешті, остерігайтеся завантажувача Windows, якщо ви використовуєте кілька дисків. У мене зараз встановлена ​​система Windows, яка не завантажиться, якщо також не буде присутній другий диск без ОС.

Список літератури

Я б хотів, щоб я тут зберігав свої джерела - пам'ятаю, щонайменше наступні були дуже корисними:

https://wiki.qemu.org/Main_Page https://qemu.weilnetz.de/doc/qemu-doc.html https://wiki.archlinux.org/index.php/QEMU https: //wiki.gentoo .org / wiki / QEMU https://www.suse.com/documentation/sles11/book_kvm/data/part_2_book_book_kvm.html

Щасти!


Це працювало для мене на арці linux
jameh

0

Ось що я використовую для фізичного диска Windows 10. Зауважте, що у багатьох випадках Windows не може завантажитися, якщо ви не використовуєте прапор "-cpu host".

Просто замініть / dev / nvme0n1 своїм приводом, наприклад. / dev / sda або / dev / sdb

qemu-system-x86_64 --enable-kvm -cpu хост -smp 8 -m 8192-формат диска = raw, файл = / dev / nvme0n1

Джерело: http://realtechtalk.com/QEMUKVM_wont_boot_Windows_2016_or_2019_server_on_an_Intel_Core_i3_-2221-articles

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.