dockur / windows

Windows inside a Docker container.
MIT License
28.33k stars 1.95k forks source link

BdsDxe: failed to load Boot0002 "UEFI QEMU QEMU HARDDISK " from PciRoot(0x0)/Pci(0xA,0x0)/Scsi(0x0,0x0): Not Found #226

Closed kailash-acog closed 6 months ago

kailash-acog commented 8 months ago

i am getting this error:

kailash-windows | 4718592K ........ ........ ........ ........ 99% 60.3M 0s kailash-windows | 4751360K ..... 100% 84.8M=77s kailash-windows | kailash-windows | ❯ Extracting Windows 11 bootdisk... kailash-windows | ❯ Extracting Windows 11 environment... kailash-windows | ❯ Extracting Windows 11 setup... kailash-windows | ❯ Extracting Windows 11 image... kailash-windows | ❯ Adding XML file for automatic installation... kailash-windows | ❯ Building Windows 11 image... kailash-windows | ❯ Creating a 64G growable disk image in raw format... kailash-windows | ❯ Booting Windows using QEMU emulator version 8.2.1 ... kailash-windows | BdsDxe: failed to load Boot0002 "UEFI QEMU QEMU HARDDISK " from PciRoot(0x0)/Pci(0xA,0x0)/Scsi(0x0,0x0): Not Found kailash-windows | BdsDxe: loading Boot0001 "UEFI QEMU QEMU CD-ROM " from PciRoot(0x0)/Pci(0x5,0x0)/Scsi(0x0,0x0) kailash-windows | BdsDxe: starting Boot0001 "UEFI QEMU QEMU CD-ROM " from PciRoot(0x0)/Pci(0x5,0x0)/Scsi(0x0,0x0)

kroese commented 8 months ago

That message is normal? Because the first time it cannot boot from the harddisk because Windows is not installed there yet. So it boots from the CDROM to perform the setup and the next time it will boot from the harddrive instead.

error105 commented 8 months ago

I have same problem with any windows above 10....

2024/03/07 21:15:43,stdout,"BdsDxe: starting Boot0001 \"UEFI QEMU QEMU CD-ROM \" from PciRoot(0x0)/Pci(0x5,0x0)/Scsi(0x0,0x0) " 2024/03/07 21:15:43,stdout,"BdsDxe: loading Boot0001 \"UEFI QEMU QEMU CD-ROM \" from PciRoot(0x0)/Pci(0x5,0x0)/Scsi(0x0,0x0)

error105 commented 8 months ago

It work until first reboot, after i have bootloop with that error - like it wont boot from HardDisk and CD too

SaskueUchiwa commented 8 months ago

i have the seem issue how do i fix ?

kroese commented 8 months ago

I now created a new release (v2.06) which might have fixed this issue.

Weax commented 8 months ago

I had similar issue and after updating to v2.6 container fails with the message char device redirected to /dev/pts/1 (label serial0) right after trying to boot using QEMU 8.2.1 and 502 error code in VNC screen

Note that TPM and KVM are not supported in my machine

kroese commented 8 months ago

@Weax That char device device redirected is not an error message but normal. Can you show your compose file?

Weax commented 8 months ago

To be honest I am trying to start it with Synology container manager which didn't support ordinary docker config files, but its should have the same values as docker-compose.yml at the beginning of Readme

kroese commented 8 months ago

If you are using Synology, you need to install the Virtual Machine Manager package, which installs KVM with it.

error105 commented 8 months ago

I have it on Synology and it works fine without Virtual Machnies Manager, KVM is available even without VMM. That problem is with something other, like boot problem

kroese commented 8 months ago

On my own Synology (DS220+) i do not have /dev/kvm unless I install VMM? Also @Weax said he did not have KVM so I thought maybe he had the same problem as I did.

error105 commented 8 months ago

On my DVA1622 and DS920+ i have /dev/kvm anyway :)

Weax commented 8 months ago

Seems that KVM is working when starting from yml project on Synology. But then fails with the same error as in post topic. New version didn't help.

Weax commented 8 months ago

Some news: install finally runs.

UPD: I deleted the container, rebuilded, and after couple of retries, looks like it is finally installed. But it is super flaky, VM constantly restarts by itself some time after entering the desktop

SaskueUchiwa commented 8 months ago

Some news: install finally runs.

UPD: I deleted the container, rebuilded, and after couple of retries, looks like it is finally installed. But it is super flaky, VM constantly restarts by itself some time after entering the desktop

what do you mean ?

kroese commented 8 months ago

I added a new flag now which disables a few features. Can you pull the new version (v2.07) and set:

environment:
  HV: "N"
  BOOT_MODE: "windows_plain"

in your compose file or

-e "HV=N" -e "BOOT_MODE=windows_plain"

in your run command and see if it changes anything? It disables Secure Boot + TPM + Hyper-V and it might make a difference for you.

SaskueUchiwa commented 8 months ago

when i run the commands i get this error


> docker run -it --rm --name windows -p 8006:8006 --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 120 dockurr/windows -e "BOOT_MODE=windows_plain"
> [FATAL tini (1)] Not a valid option for -e: BOOT_MODE=windows_plain
kroese commented 8 months ago

@SaskueUchiwa You must not place -e as the last command (behind the image name) but somewhere in the middle.

SaskueUchiwa commented 8 months ago

hey it work thx for u support ❤️ the only thing is not good when windows get to Getting Ready it stuck any fixes ? how can i pause the container

SaskueUchiwa commented 8 months ago
BdsDxe: loading Boot0004 "Windows Boot Manager" from HD(1,GPT,6B743A66-553B-45A2-A1A1-6BE057D6DE7C,0x800,0x40000)/\EFI\Microsoft\Boot\bootmgfw.efi
BdsDxe: starting Boot0004 "Windows Boot Manager" from HD(1,GPT,6B743A66-553B-45A2-A1A1-6BE057D6DE7C,0x800,0x40000)/\EFI\Microsoft\Boot\bootmgfw.efi
Weax commented 8 months ago

@kroese looks like it works more stable with "windows_plain". Thank you!

Is there any possibility to mount Synology shared folders or entire volume as device on Windows? Not like network pc or network drive.

TheBlindHacker commented 8 months ago

I am getting this as of now BdsDxe: failed to load Boot0002 "UEFI QEMU QEMU HARDDISK " from PciRoot(0x0)/Pci(0xA,0x0)/Scsi(0x0,0x0): Not Found windows | BdsDxe: loading Boot0001 "UEFI QEMU QEMU CD-ROM " from PciRoot(0x0)/Pci(0x5,0x0)/Scsi(0x0,0x0) windows | BdsDxe: starting Boot0001 "UEFI QEMU QEMU CD-ROM " from PciRoot(0x0)/Pci(0x5,0x0)/Scsi(0x0,0x0)

SaskueUchiwa commented 8 months ago

I am getting this as of now BdsDxe: failed to load Boot0002 "UEFI QEMU QEMU HARDDISK " from PciRoot(0x0)/Pci(0xA,0x0)/Scsi(0x0,0x0): Not Found windows | BdsDxe: loading Boot0001 "UEFI QEMU QEMU CD-ROM " from PciRoot(0x0)/Pci(0x5,0x0)/Scsi(0x0,0x0) windows | BdsDxe: starting Boot0001 "UEFI QEMU QEMU CD-ROM " from PciRoot(0x0)/Pci(0x5,0x0)/Scsi(0x0,0x0)

this normal

TheBlindHacker commented 8 months ago

I removed win 11 and went back to 10 works now in VNC

SaskueUchiwa commented 8 months ago

I removed win 11 and went back to 10 works now in VNC

i use this tool for trying win 11

error105 commented 8 months ago

With windows_plain it also loop on that 3 messegeges and reboot constatly. core11 im use.

RickeyWard commented 7 months ago

I'm getting this too, doesn't seem to work. Ubuntu 22 with docker I just stay on this screen indefinitely in VNC. Tried waiting 45 minutes just in case it was slow.

version: "3"
services:
  windows:
    image: dockurr/windows
    container_name: windows
    privileged: true
    environment:
      VERSION: "win11"
      BOOT_MODE: "windows_plain"
    devices:
      - /dev/kvm
    cap_add:
      - NET_ADMIN
    ports:
      - 8006:8006
      - 3389:3389/tcp
      - 3389:3389/udp
    stop_grace_period: 2m
    restart: on-failure
    network_mode: bridge

Container Log

❯ Starting Windows for Docker v2.07...
❯ For support visit https://github.com/dockur/windows
net.ipv4.ip_forward = 1
❯ Booting Windows using QEMU emulator version 8.2.1 ...
3h3h3hBdsDxe: failed to load Boot0002 "UEFI QEMU QEMU HARDDISK " from PciRoot(0x0)/Pci(0xA,0x0)/Scsi(0x0,0x0): Not Found
BdsDxe: loading Boot0001 "UEFI QEMU QEMU CD-ROM " from PciRoot(0x0)/Pci(0x5,0x0)/Scsi(0x0,0x0)
BdsDxe: starting Boot0001 "UEFI QEMU QEMU CD-ROM " from PciRoot(0x0)/Pci(0x5,0x0)/Scsi(0x0,0x0)

image

TheBlindHacker commented 7 months ago

I changed my version to Win10, and it worked fine. Win 11 was doing buggy stuff. Then I also did a retry and redownload after a purge, and Win 11 worked, but after a few reboots (I did try to add more CPU/ram), it gave me a small error. So, I'm stuck with Win 10, which is on reboot 30, and running finne.

On Tue, Mar 19, 2024 at 3:22 PM DiamondDrake @.***> wrote:

I'm getting this too, doesn't seem to work. Ubuntu 22 with docker I just stay on this screen indefinitely in VNC. Tried waiting 45 minutes just in case it was slow.

version: "3" services: windows: image: dockurr/windows container_name: windows privileged: true environment: VERSION: "win11" BOOT_MODE: "windows_plain" devices:

  • /dev/kvm cap_add:
  • NET_ADMIN ports:
  • 8006:8006
  • 3389:3389/tcp
  • 3389:3389/udp stop_grace_period: 2m restart: on-failure network_mode: bridge

Container Log

❯ Starting Windows for Docker v2.07... ❯ For support visit https://github.com/dockur/windows net.ipv4.ip_forward = 1 ❯ Booting Windows using QEMU emulator version 8.2.1 ... 3h3h3hBdsDxe: failed to load Boot0002 "UEFI QEMU QEMU HARDDISK " from PciRoot(0x0)/Pci(0xA,0x0)/Scsi(0x0,0x0): Not Found BdsDxe: loading Boot0001 "UEFI QEMU QEMU CD-ROM " from PciRoot(0x0)/Pci(0x5,0x0)/Scsi(0x0,0x0) BdsDxe: starting Boot0001 "UEFI QEMU QEMU CD-ROM " from PciRoot(0x0)/Pci(0x5,0x0)/Scsi(0x0,0x0)

image.png (view on web) https://github.com/dockur/windows/assets/342468/045e1709-6643-47be-b45d-3d42a552b4e0

— Reply to this email directly, view it on GitHub https://github.com/dockur/windows/issues/226#issuecomment-2007952322, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABSK4RMGXQUQSLEAQE6QHULYZCF55AVCNFSM6AAAAABELIVIDGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMBXHE2TEMZSGI . You are receiving this because you commented.Message ID: @.***>

--

--------------------Joe Brinkley

https://twitter.com/TheBlindHacker https://twitter.com/TheBlindHacker https://www.linkedin.com/in/brinkleyjoseph/ https://www.linkedin.com/in/brinkleyjoseph/

RickeyWard commented 7 months ago

I tried no change to my compose other than win11 to win10 and the errors disappeared. but its stuck on the black screen with TianoCore in the middle and no other text.

It's a pretty beefy machine, not sure why its not making it to the install screen.

FixeQyt commented 7 months ago

hey it work thx for u support ❤️ the only thing is not good when windows get to Getting Ready it stuck any fixes ? how can i pause the container

Just wait (To me worked)

christyler80 commented 7 months ago

I got the same 'Not Found' problem where trying to pass through a physical disk - /dev/mmcblk1 which already had a bootable copy of Windows 11 installed.

Should it be possible for the Docker KVM to run an existing copy of Windows (and accepting that the VirtIO Drivers will need to be installed per the FAQ)?

version: "3" services: windows: image: dockurr/windows container_name: windows environment: VERSION: "win11" DEVICE: "/dev/mmcblk1" BOOT_MODE: "windows_plain" devices:

zozidalom commented 7 months ago

I am experiencing the same issue is there a solution for it?

zan73 commented 7 months ago

I am getting this error with your windows-arm docker too. Has windows-arm had the windows_plain BOOT_MODE env variable added as well?

I added a new flag now which disables a few features. Can you pull the new version (v2.07) and set:

environment:
  BOOT_MODE: "windows_plain"

in your compose file or

-e "BOOT_MODE=windows_plain"

in your run command and see if it changes anything? It disables Secure Boot + TPM + Hyper-V and it might make a difference for you.

kroese commented 7 months ago

@zan73 No this flag is not needed on Windows ARM because it has no Hyper-V, or TPM or Secure boot, so it would not make sense there.

Also, for you and others: "this error" is much too vague for me. If that is referring to the "not found" message: that is not an error, but completely normal. It means the harddrive is empty and it will boot from cd-rom to do the install. After the next reboot you will not see that message again since the harddrive will not be empty anymore.

If you get a different message, or some freeze, please provide a much more accurate description (including OS/kernel version, the compose file, docker log, screenshots, etc) otherwise I cannot give any advice.

zan73 commented 7 months ago

Thanks @kroese,

It appears that CD-ROM boot isn't occurring. The progress bar on the tiano-core boot screen gets to 100% but then nothing further happens. Running on a Mac Mini (Fedora 39): Linux macmini 6.6.3-414.asahi.fc39.aarch64+16k #1 SMP PREEMPT_DYNAMIC aarch64 GNU/Linux

@zan73 No this flag is not needed on Windows ARM because it has no Hyper-V, or TPM or Secure boot, so it would not make sense there.

Also, for you and others: "this error" is much too vague for me. If that is referring to the "not found" message: that is not an error, but completely normal. It means the harddrive is empty and it will boot from cd-rom to do the install. After the next reboot you will not see that message again since the harddrive will not be empty anymore.

If you get a different message, or some freeze, please provide a much more accurate description (including OS/kernel version, the compose file, docker log, screenshots, etc) otherwise I cannot give any advice.

zan73 commented 7 months ago

I've been able to get it to run with the KVM=N environment variable set. I saw your comments about hvf rather than kvm acceleration on M1 so will try to re-compile qemu with hvf support. Thanks for your work!

Edit: As I'm running this on asahi-linux I realised that hvf isn't relevant. Hoping that after first boot I can remove KVM=N and get better performance.

kroese commented 7 months ago

@zan73 I think your problem might be some bug/incompatibility between KVM and the M1 cpu (because KVM support for that CPU is very experimental and new). Also, are you are you sure you are using the windows-arm image since its another repository and you're posting the issue here?

zan73 commented 7 months ago

@kroese yes I hope it's just an issue with KVM and M1 that get's resolved in time. Thanks very much for your work on this docker and yes, I'm using windows-arm but posted here as I found the issue here first. Cheers

Scirocco3 commented 6 months ago

2024-05-02T15:04:39.034285087Z [=3h[=3h[=3hBdsDxe: failed to load Boot0002 "UEFI QEMU QEMU HARDDISK " from PciRoot(0x0)/Pci(0xA,0x0)/Scsi(0x0,0x0): Not Found 2024-05-02T15:04:39.070550354Z BdsDxe: loading Boot0001 "UEFI QEMU QEMU CD-ROM " from PciRoot(0x0)/Pci(0x5,0x0)/Scsi(0x0,0x0) 2024-05-02T15:04:39.082811069Z BdsDxe: starting Boot0001 "UEFI QEMU QEMU CD-ROM " from PciRoot(0x0)/Pci(0x5,0x0)/Scsi(0x0,0x0) 2024-05-02T15:04:46.937665302Z [=3h❯ Windows started succesfully, visit http://localhost:8006/ to view the screen... 2024-05-02T15:04:57.676644787Z ❯ ERROR: Forcefully terminating Windows, reason: 0...

Windows version = win10

Again with version 3.0 and 3.0.1 with docker on ugreen nas. for about 3-6 sec a screen with "setup" message appears and then shutdown.

HV: "N" BOOT_MODE: "windows_plain"

won't help. Some solution for this? thx

kroese commented 6 months ago

@Scirocco3 I suspect you have not enough RAM available, but can you create your own bug report so I have more information. Because it might be a totally different issue than the one here.

Scirocco3 commented 6 months ago

@kroese i've submitted a new bug report

quanmeta commented 4 months ago

i have the seem issue how do i fix ?我有似乎问题如何解决?

do you fix it?

FixeQyt commented 4 months ago

After a few months/a year of using QEMU virtualization, I finally understand what it's about. This indicates that the system is attempting to boot from the CD-ROM because it cannot find a valid bootable system on the qcow2 hard disk image. It's a normal message for QEMU-KVM under these circumstances. We can close the issue.