Windows via bhyve@FreeBSD11.1

andreasdr

Member
Hi,

First hello to all as I am new to this board.

I have a question.

I try to do virtualisation of Windows 10 with bhyve@FreeBSD 11.1.

I followed those both tutorial
- https://www.ateamsystems.com/tech-blog/howto-windows-10-bhyve-w-freebsd-11/
- https://wiki.freebsd.org/bhyve/Windows

and came up with the following cmd to launch a Win 10 installation VM session

Bash:
bhyve \
      -c 2 \
      -s 0,hostbridge \
      -s 3,ahci-hd,"/home/andreas/Virtual Machines/BuildVM-Win10-x64.img" \
      -s 4,ahci-cd,"/home/andreas/Downloads/Win10_1803_German_x64.iso" \
      -s 10,virtio-net,tap0 \
      -s 29,fbuf,tcp=0.0.0.0:5900,wait \
      -s 30,xhci,tablet \
      -s 31,lpc \
      -l com1,stdio \
      -l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI.fd \
      -m 2G -H -w \
      BuildVM-Win10-x64

I also tryed Win7, Win8.1. I also tryed to remaster Win7 DVD and such.

But I always get:

Code:
    Boot Failed. EFI DVD/CDROM
    Boot Failed. EFI Hard Drive

I also wonder why I need to run the command as root.

"uname -a" tells
Code:
    FreeBSD andreas-desktop 11.1-RELEASE-p10 FreeBSD 11.1-RELEASE-p10 #0: Tue May  8 05:21:56 UTC 2018     root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC  amd64

"dmesg" tells:
Code:
    CPU: AMD Ryzen 7 1700 Eight-Core Processor           (2994.46-MHz K8-class CPU)
    Origin="AuthenticAMD"  Id=0x800f11  Family=0x17  Model=0x1  Stepping=1
    Features=0x178bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2,HTT>
    Features2=0x7ed8320b<SSE3,PCLMULQDQ,MON,SSSE3,FMA,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AESNI,XSAVE,OSXSAVE,AVX,F16C,RDRAND>
    AMD Features=0x2e500800<SYSCALL,NX,MMX+,FFXSR,Page1GB,RDTSCP,LM>
    AMD Features2=0x35c233ff<LAHF,CMP,SVM,ExtAPIC,CR8,ABM,SSE4A,MAS,Prefetch,OSVW,SKINIT,WDT,TCE,Topology,PCXC,PNXC,DBE,PL2I,MWAITX>
    Structured Extended Features=0x209c01a9<FSGSBASE,BMI1,AVX2,SMEP,BMI2,RDSEED,ADX,SMAP,CLFLUSHOPT,SHA>
    XSAVE Features=0xf<XSAVEOPT,XSAVEC,XINUSE,XSAVES>
    SVM: NP,NRIP,VClean,AFlush,DAssist,NAsids=32768
    TSC: P-state invariant, performance statistics

Any hints are highly appreciated.

Many thanx and

Best regards
Andreas
 
Moin,

zeige mal die Ausgabe von "kldstat". Hast du vmm.ko geladen? In FreeBSD 11.1 ist ein Bug enthalten, der AMD-Prozessoren betrifft. Der hat zwar erstmal nichts mit deinem Problem zu tun, aber vielleicht hilft es dir trotzdem: Starte mit -c1. Alles andere lässt früher oder später den Gast einfrieren. Behoben wurde der Bug in 11.2.

Wie hast du die Festplatte des Gastes erzeugt? Hast du zufällig zfs laufen? Dann würde ich zu "zvol" raten.

Ob es überhaupt eine Auswirkung hat, weiß ich nicht. Vielleicht ist es aber wichtig: Läuft FreeBSD selbst auf UEFI oder was hast du im Bios eingestellt?

Vermutlich auch unwichtig, aber ich finde es schöner: Ich nutze amd_hostbridge statt hostbridge.

HTH
 
Hi,

Danke für die Antworte. Hatte verpeilt, dass das ja hier ein deutsches Forum ist.

Code:
root@andreas-desktop:~ # kldstat
Id Refs Address            Size     Name
 1   42 0xffffffff80200000 1f6f5e0  kernel
 2    3 0xffffffff82171000 abf70    linux.ko
 3    3 0xffffffff8221d000 dfa0     linux_common.ko
 4    1 0xffffffff8222b000 aac8     if_tap.ko
 5    1 0xffffffff82236000 35b138   vmm.ko
 6    1 0xffffffff82621000 5936     fdescfs.ko
 7    1 0xffffffff82627000 f408c    nvidia-modeset.ko
 8    1 0xffffffff8271c000 c40d3f   nvidia.ko
 9    1 0xffffffff8335d000 9a4c     if_bridge.ko
10    1 0xffffffff83367000 5e61     bridgestp.ko
11    1 0xffffffff8336d000 10913    snd_uaudio.ko
12    1 0xffffffff8337e000 3650     ums.ko
13    1 0xffffffff83382000 a8c4     linprocfs.ko
14    1 0xffffffff8338d000 bb55     tmpfs.ko
root@andreas-desktop:~ #

Ich habe es jetzt wie folgt gestarted, aber das geht leider auch nicht:

Code:
bhyve \
      -c 1 \
      -s 0,amd_hostbridge \
      -s 3,ahci-hd,"/home/andreas/Virtual Machines/BuildVM-Win10-x64.img" \
      -s 4,ahci-cd,"/home/andreas/Downloads/Win10_1803_German_x64.iso" \
      -s 10,virtio-net,tap0 \
      -s 29,fbuf,tcp=0.0.0.0:5900,wait \
      -s 30,xhci,tablet \
      -s 31,lpc \
      -l com1,stdio \
      -l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI.fd \
      -m 2G -H -w \
      BuildVM-Win10-x64

Ob FBSD mit UEFI läuft weiß ich nicht.
Was wäre denn relevant im BIOS einzustellen?
Ich benutze ein RAW File as HD Image.

Gruß
Andreas
 
Ich habe keine Idee woran es liegen könnte. Erzeuge dir aber mal ein Festplattenimage mit: "truncate -s 50G windows.img" und verwende windows.img als Festplatte. Ich habe hier auch einen AMD Ryzen (ok.. einen Threadripper) und habe Windows 10 seit FreeBSD 11.1 laufen.

Was sagt: sysctl machdep.bootmethod
 
Hmm.

Ich habe die "Platte" mit "truncate -s 20GB" erzeugt.


Code:
sysctl machdep.bootmethod
machdep.bootmethod: BIOS
 
Teste auch mal -lbootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI_CSM.fd (ich hoffe, dass ich keinen Vertipper habe).

Ich weiß nicht, ob du FreeBSD noch booten kannst, wenn du im Bios von BIOS auf UEFI umstellst. Mein Tipp ist, dass es daran liegt. Windows 10 kann aber sicher noch legacy BIOS booten (was UEFI_CSM.fd ist).
 
Hmmm.

Ich habe es wie folgt gestarted:

Code:
bhyve \
      -c 1 \
      -s 0,amd_hostbridge \
      -s 3,ahci-hd,"/home/andreas/Virtual Machines/BuildVM-Win10-x64.img" \
      -s 4,ahci-cd,"/home/andreas/Downloads/Win10_1803_German_x64.iso" \
      -s 10,virtio-net,tap0 \
      -s 29,fbuf,tcp=0.0.0.0:5900,wait \
      -s 30,xhci,tablet \
      -s 31,lpc \
      -l com1,stdio \
      -l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI_CSM.fd \
      -m 2G -H -w \
      BuildVM-Win10-x64

Und bekomme jetzt folgendes:

Code:
Boot Failed. CDROM 0
Boot Failed. Harddisk 1
!!!! X64 Exception Type - 000000000000000D     CPU Apic ID - 00000000 !!!!
RIP  - 000000007FAF0FF5, CS  - 0000000000000028, RFLAGS - 0000000000010006
ExceptionData - 0000000000000000
RAX  - 0000000000000000, RCX - 0000000000000008, RDX - 0000000000000408
RBX  - 0000000000000001, RSP - 000000007FBDF3E8, RBP - 000000007FBDF748
RSI  - 0000000000000064, RDI - 000000007FBDF3E8
R8   - 000000007FBDF84F, R9  - 0000000000000001, R10 - 0000000000000064
R11  - 000000007FBDF9F0, R12 - 0000000000000000, R13 - 0000000000000002
R14  - 000000007FBDFA28, R15 - 000000001011A9A0
DS   - 0000000000000008, ES  - 0000000000000008, FS  - 0000000000000008
GS   - 0000000000000008, SS  - 0000000000000008
CR0  - 0000000080000033, CR2 - 0000000000000000, CR3 - 000000007FB7E000
CR4  - 0000000000040668, CR8 - 0000000000000000
DR0  - 0000000000000000, DR1 - 0000000000000000, DR2 - 0000000000000000
DR3  - 0000000000000000, DR6 - 00000000FFFF0FF0, DR7 - 0000000000000400
GDTR - 000000007FB68E98 000000000000003F, LDTR - 0000000000000000
IDTR - 000000007F6F8018 0000000000000FFF,   TR - 0000000000000000
FXSAVE_STATE - 000000007FBDF040
!!!! Find PE image /wrkdirs/usr/ports/sysutils/uefi-edk2-bhyve-csm/work/uefi-edk2-636b963d68f8c7f4c90b97bd5a66e91bcb65841d/Build/BhyveX64/RELEASE_GCC48/X64/UefiCpuPkg/CpuDxe/CpuDxe/DEBUG/CpuDxe.dll (ImageBase=000000007FAED000, EntryPoint=000000007FAED2AF) !!!!

Hmmmmm.
 
Also sollte ich versuchen mein FBSD neu zu installieren mit UEFI??? Damn.
Verstehe aber nicht ganz wieso der Host via UEFI laufen muss. Aber ich kenne mich mit dem Virtualsierungskram nicht aus.
 
Das ist nur eine Vermutung! Ob das Voraussetzung ist, weiß ich nicht. Was sagt "uname -a"? Und was sagt "pkg info | grep uefi"
 
uname -a habe ich oben gepostet.


Code:
$ pkg info|grep uefi
uefi-edk2-bhyve-20180318       UEFI-EDK2 firmware for bhyve
uefi-edk2-bhyve-csm-20180318   UEFI-EDK2 firmware for bhyve with CSM
$
 
uname -a habe ich oben gepostet.


Code:
$ pkg info|grep uefi
uefi-edk2-bhyve-20180318       UEFI-EDK2 firmware for bhyve
uefi-edk2-bhyve-csm-20180318   UEFI-EDK2 firmware for bhyve with CSM
$
Aktuell ist:
uefi-edk2-bhyve-0.1,1 UEFI-EDK2 firmware for bhyve
uefi-edk2-bhyve-csm-0.1,1 UEFI-EDK2 firmware for bhyve with CSM
 
Mit UEFI Boot hat sich nichts veraendert.

Der BIOS Boot gibt jetzt:

Code:
vm exit[0]
              reason        SVM
                                       rip        0x0000000000003206
                                                                              inst_length    0
                                                                                                     exitcode    0x7f
                                                                                                                                exitinfo1    0
                                                                                                                                                     exitinfo2    0
                                                                                                                                                                         Abort
 
Hast du das Framebuffermodul genutzt? Anscheinend sehe ich einfach nur die Ausgabe nicht.
Welchen RDP Client hast du benutzt?
 
Ich sehe was via "vncviewer"! I habs!!! Danke für deine Hilfe.
Bin gespannt ob ich das hinbekomme was ich brauche!!!
 
Hi,

Ok. Ich checke das. Danke dir.

Andere Frage. Mein Buildprozess (ist ne AutobuildVM) raucht oft ab wenn ich mehr als eine CPU zuweise.
Wisst ihr da was? Ursachen? Lösungen?

Gruß
Andreas
 
Ich sehe was via "vncviewer"! I habs!!! Danke für deine Hilfe.
Bin gespannt ob ich das hinbekomme was ich brauche!!!
Wenn ich das richtig verstanden habe, hast du nun im BIOS auf UEFI umgestellt und danach kamen die Fehlermeldungen nicht mehr, richtig?

Hi,

Ok. Ich checke das. Danke dir.

Andere Frage. Mein Buildprozess (ist ne AutobuildVM) raucht oft ab wenn ich mehr als eine CPU zuweise.
Wisst ihr da was? Ursachen? Lösungen?

Gruß
Andreas
Das hatte ich dir bereits geschrieben. ;) Den Patch erhältst du hier: https://reviews.freebsd.org/D13780 ich hatte ihn erfolgreich unter 11.1 im Einsatz. Bei FreeBSD 11.2 ist er enthalten.
 
Moin,

coooool, dass es diesen Fix gibt!!!!!!!!! Danke dir fürs Reminden. Hatte ich wohl überlesen.

Es war eine Kombination von Dingen.
1) Ich glaube(bin mir nicht ganz sicher) die Reihenfolge von 1. CD, dann HD war wichtig, weil ansonsten instant angezeigt wurde, dass ein Boot nicht möglich ist (auf der HD war ja auch kein Bootloader oder so)
2) Ich habe mich mit freerdp connecten wollen zum framebuffer von der VM, es wurde aber nichts angezeigt, aber in der Console stand irgendein Progress, der nicht fehlerhaft wirkte.
Mit "net/tightvnc/vncviewer" hatte ich dann plötzlich ein Bild.
3) Da ich vorher kein Bild hatte konnte ich nie wissen dass Win10 um eine Tastatureingabe bittet bevor es bootet.
Das Interessante ist die Meldung "Boot Failed. EFI DVD/CDROM" kam auch nach dem Bootloader, wenn man keine Taste gedrückt hat.
Ich musste also vor dieser Meldung schnell eine Taste drücken :DDD

Ich weiß das alles klingt bekloppt.

Diese Kombination insgesamt war sehr verwirrend.

Danke dir nochmal.

Gruß
Andreas
 
Zu 2.: Nimm tigervnc. Wenn die Installation fertig ist, kannst du rdp im Windows aktivieren und dich per rdp verbinden. Dann hast du auch Ton. Zudem nervt rdp nicht so sehr wie vnc.

Das WAIT bewirkt, dass erst dann gebootet wird, wenn du eine Taste drückst. Es kann also nicht sein, dass es am fehlenden Tastendruck lag. Dann ist ausschlaggebend die Reihenfolge von CD/HDD. Im Bios hast du nicht auf UEFI umgestellt, richtig? Das war also nicht der Grund.
 
Zurück
Oben