Unraid (KVM) // Windows 10 VHD in VM booten (ohne zu konvertieren)

GlockMane88

Lt. Commander
Registriert
Aug. 2008
Beiträge
1.244
Hey Leute,

ich boote seit geraumer Zeit diverse Windows 10 VHDs an verschiedenen PCs ohne jegliche Probleme (mit AIOBoot). Nun habe ich einen Unraid Server, welcher KVM zur Virtualisierung verwendet und habe es erfolgreich geschafft eine VHD mit Hilfe von AIOBoot in einer VM zu booten (ich will keine VHDs in IMG konvertieren, da ich diese eventuell auch wieder vom Server nehmen und dann an einem anderen Gerät booten möchte).

Nun hatte ich mich schon gefreut, aber dann festgestellt, dass ich ja gar nicht auf die Festplatte mit den VHDs zugreifen kann, wenn diese nicht an die VM durchgereicht wird und ich kann eine Festplatte nicht an mehrere VMs durchreichen..

Fällt euch da eine Lösung ein?
 
(Nutze kein Unraid)

Qemu unterstützt doch VHDs als Festplatten qemu-system-x86_64 -hda <image.vhd> bzw auch vhdx funktioniert hier - keine Ahnung ob die qemu Version in Unraid das auch schon kann.

Google meint es gibt für unraid ein Plugin "Unassigned Devices"
Google meint auch VMs sollen mit diesem Plugin auf einzelne SSDs benutzt werden (via unraid forum)

Unraid funktioniert wohl über vdisk / shares, die die Dateien (also auch VM images) enthalten

Festplatten reicht man nicht an mehrere VMs durch - man regelt dies über Netzwerkfreigaben, da hier gleichzeitige Zugriffe / Veränderungen weniger Fehler verursachen ("locking")
 
Hi,

würde ich so auch empfehlen. Per default werden neu erstellte VMs nämlich sonst auf das Cachedrive gelegt (sehr sinnvoll...nicht). Ansonsten kann man lokon nur zustimmen!

VG,
Mad
 
@lokon

Interessant, tatsächlich kann man an eine VM eine VHD anhängen, allerdings zeigt er bei der Auswahl nur .img Files an, sodass man den Dateinamen manuell eingeben muss.. Das war auch der Grund, warum ich gar nicht soweit gedacht habe..

Das bringt mich aber nicht weiter, da meine VHDs so gestrickt sind, dass sie nicht alleine booten können, aber dafür via AIOBoot auf jedem PC egal ob Legacy oder UEFI..

D.h. mir bleibt eigentlich nur, eine komplette Disk durchzureichen, auf der sich ein VHD File befindet, d.h. dann eine separate SSD für jede VM, was ja sicher aus Performancegründen auch Sinn macht..

Eine Netzwerkfreigabe nützt mir glaube nicht wirklich was, ich müsste in Grub2 oder GrubFM darauf zugreifen können, um dort die zu bootende VHD zu wählen.. Hatte mich mit einem PXE Server versucht, allerdings bekomme ich den Router nicht korrekt eingestellt, sodass er die Anfragen des PXE Clients ordnungsgemäß weiterleitet..
 
GlockMane88 schrieb:
Hatte mich mit einem PXE Server versucht, allerdings bekomme ich den Router nicht korrekt eingestellt, sodass er die Anfragen des PXE Clients ordnungsgemäß weiterleitet..
Der Router kann eigentlich ignoriert werden.
Ich hab hier ohne Eingriff am Router (OpenWrt) bei Bedarf PXE laufen (zumindest funktioniert das mit alter Bios Hardware -UEFI Boot PXE noch nicht getestet).

# Disable DNS Server
port=0

# Enable DHCP logging
log-dhcp

# Respond to PXE requests for the specified network;
# run as DHCP proxy
dhcp-range=192.168.1.0,proxy

dhcp-boot=pxelinux.0

# Provide network boot option called "Network Boot".
pxe-service=x86PC,"Network Boot",pxelinux

# not internal tftp
enable-tftp
tftp-root=/srv/tftp/boot
interface=netzwerk0
bind-interfaces
dhcp-leasefile=/mnt/disk/nbd/dnsmasq.leases

bei Bedarf ruf ich dann
Code:
sudo DNSMASQ_EXCEPT=lo dnsmasq -k -d -R -p 0 -C dnsmasq.conf
auf - rootfs läuft dann über nbd (oder über nfs ...)

GlockMane88 schrieb:
das bringt mich aber nicht weiter, da meine VHDs so gestrickt sind, dass sie nicht alleine booten können
Qemu kann eigentlich die im embedded Bereich verbreitete "aufgeteilte" Bootart (oder wie man das bezeichnet) nutzen.
also
Code:
qemu-system-x86_64 -kernel <kernelimage-datei> -append <kernel-cmdline parameter> -hda <diskimage>
Im Append steht dann zB die "nbd" oder "nfs" parameter für netzwerkboot - das VHDX kann auf dem Host dann einfach in ein verzeichnis gemountet werden - oder eben als disk /block storage an die VM angehangen werden (-hda <datei>) und in der cmdline steht dann das passende root=....

q: https://qemu-project.gitlab.io/qemu/system/linuxboot.html

Damit lassen sich auch "nicht bootbare" Disks (also ohne bootloader) booten - der Kernel liegt dann außerhalb der Disk - zB entpackt bzw. gemountet in einem Verzeichnis
 
Zurück
Oben