Làm cách nào để khởi động phân vùng Windows vật lý với qemu?


14

Tôi có gentoo và windows 7 được cài đặt cùng với ổ cứng duy nhất của tôi. Tôi muốn bắt đầu cài đặt windows từ bên trong gentoo thông qua qemu. Menu khởi động hoạt động tốt nhưng windows bluescreen cho tôi ngay sau khi tôi chọn nó.

Làm thế nào tôi có thể làm cho nó hoạt động?

(Tôi cho rằng windows bị thiếu trình điều khiển cần thiết để phần cứng giả lập qemu hoạt động.)


hãy chắc chắn rằng bạn chạy qemuvới kiến ​​trúc chính xác. Ngoài ra, các cửa sổ sẽ không khởi động được nếu nó chờ bộ điều khiển ổ cứng là AHCI và nó không (và ngược lại).
gelraen

Kiến trúc là tốt, nhưng tôi không nghĩ có bất cứ điều gì người ta có thể làm về ahci vì qemu dường như không hỗ trợ nó ...
McEnroe

Hãy thử điều này: avforums.com/forums/windows-7/ khăn
gelraen

@gelraen các vấn đề là liên kết của bạn mô tả quá trình ngược lại của những gì tôi muốn làm. Tôi không thể mạo hiểm chỉ dùng thử mà không biết rằng có khả năng nó hoạt động được hoặc ít nhất là nó có thể đảo ngược 100%.
McEnroe

Bài đăng đó chính xác là về việc quay trở lại từ AHCI về ATA. Và bạn luôn có thể tắt AHCI trên máy vật lý và thay đổi lại hoặc thậm chí đơn giản là sao lưu các tệp đăng ký.
gelraen

Câu trả lời:


7

Khởi động một phân vùng Windows7 vật lý tự nhiên có thể được thực hiện bằng cách này:

  1. Chuẩn bị các vật dụng cần thiết (phương tiện cài đặt Win7, trình điều khiển Virtio).
  2. Làm cho ổ cứng của bạn có thể truy cập chỉ đọc cho người dùng hiện tại của bạn.
  3. Khởi động nó bằng QEMU ở chế độ chụp nhanh.

Điều này không thay đổi bất cứ điều gì trên ổ đĩa vật lý (thực tế nó chỉ đọc).


Chi tiết

Chuẩn bị vật dụng cần thiết

  1. Chuẩn bị ISO hoặc, nếu bạn có ổ đĩa trong tay, phương tiện cài đặt thực sự cho Win7.
  2. Tải xuống trình điều khiển Virtio, ví dụ như trình điều khiển này từ Fedora: https : // fedorap People.org/groups/virt/virtio-win/direct-doads/latest-virtio/virtio-win.iso

Cẩn thận sử dụng phương tiện cài đặt chính xác phù hợp với kiến ​​trúc Windows đã cài đặt (32 bit so với 64 bit). Các lệnh sau giả định kiến ​​trúc 64 bit.

Làm cho đĩa có thể truy cập

Điều này giả định ổ cứng của bạn /dev/sdađã và được thực thi dưới quyền root:

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

Những thay đổi này (có thể) sẽ bị mất trong lần khởi động lại tiếp theo vì udev thường sẽ tạo lại tất cả các tệp thiết bị.

Khởi động với QEMU

  1. Điều này một lần nữa giả định ổ cứng của bạn là /dev/sda. Mạng bị vô hiệu hóa:

    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. Bây giờ khởi động từ CD / DVD để bắt đầu phục hồi Win7, tải trình điều khiển Virtio và chạy lệnh sau trong dấu nhắc lệnh khôi phục. Đảm bảo rằng bạn thay thế các ký tự ổ đĩa bằng các ký tự thích hợp:

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

Ổ đĩa G:là ổ đĩa chứa cài đặt Win7 của bạn. Ổ đĩa E:đại diện cho ổ đĩa CDROM với trình điều khiển Virtio.

Các dismlệnh đã được sao chép từ này Super User câu trả lời .

Có một cái nhìn vào ảnh chụp màn hình để biết chi tiết:

(Tôi xin lỗi, ảnh chụp màn hình đã được chuẩn bị, nhưng tôi cần 10 danh tiếng để có thể đăng chúng :)


10 điều danh tiếng là một nỗi đau. Nó ngăn tôi và rất nhiều người khác đưa ra loại trợ giúp chi tiết mà chúng tôi muốn. = / Tôi vừa tải lên của tôi để imgur và dán các liên kết, FYI.
Brent Rittenhouse

Thành thật mà nói, 10 điểm không quá khó để có được. Vấn đề là tôi không thể tìm thấy ảnh chụp màn hình nữa. Tôi khá chắc chắn rằng chúng ở đâu đó trên đĩa của tôi, nhưng ...: /
doak

3

Từ những gì tôi thấy trong bài viết này , bạn không thể sử dụng qemu để khởi động cài đặt Windows hiện có.

Đối số chính được đưa ra là, khi các cửa sổ được cài đặt, khóa Sản phẩm được liên kết với Bo mạch chủ của máy tính của bạn. Bây giờ, khi bạn cố gắng chạy Windows bằng qemu, các cửa sổ sẽ coi trình giả lập qemu là một bo mạch chủ khác và do đó có vấn đề.

Tham khảo bài viết để biết thêm chi tiết.


2
VirtualBox có thể tự quảng cáo là bo mạch chủ tùy ý ( forum.virtualbox.org/viewtopic.php?t=33356 ) có lẽ QEMU cũng có thể.
RushPL

1

Tôi đã quản lý để làm điều này trên archlinux, chủ yếu bằng cách điều chỉnh các ví dụ mà những người khác (thông minh hơn) cung cấp trong blog.

Phiên bản tối thiểu:

cài đặt dep

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.

bắt đầu 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` 

Tối ưu hóa hiệu suất

Các cờ sau đây cũng được đề xuất cho tôi và tôi đã sử dụng chúng thành công.

# 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)

Người xem

Tôi đã sử dụng gia vị như một người xem:

-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 \

Thực hiện theo các bước sau để hiển thị trình xem

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

Cảnh báo bộ tải khởi động Windows

Cuối cùng, hãy cẩn thận với bộ tải khởi động windows nếu bạn đang sử dụng nhiều đĩa. Tôi có một cài đặt windows bây giờ sẽ không khởi động trừ khi có ổ đĩa không phải hệ điều hành thứ hai.

Người giới thiệu

Tôi ước tôi giữ các nguồn của mình ở đây - Tôi nhớ ít nhất những điều sau đây là siêu hữu ích:

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

Chúc may mắn!


Điều này làm việc cho tôi trên arch linux
jameh

0

Đây là những gì tôi sử dụng cho một ổ đĩa Windows 10 vật lý. Lưu ý rằng trong nhiều trường hợp, Windows sẽ không khởi động được nếu bạn không sử dụng cờ "-cpu host".

Chỉ cần thay thế / dev / nvme0n1 bằng ổ đĩa của bạn, vd. / dev / sda hoặc / dev / sdb

qemu-system-x86_64 --enable-kvm -cpu host -smp 8 -m 8192 -drive format = raw, file = / dev / nvme0n1

Nguồn: http://realtechtalk.com/QEMUKVM_wont_boot_Windows_2016_or_2019_server_on_an_Intel_Core_i3_-2221-articles

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.