-
Notifications
You must be signed in to change notification settings - Fork 76
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Problem Using WOR-Flasher #158
Comments
This is not an issue with WoR-Flasher, but rather a strange HW/SW compatibility issue. I've had massive trouble installing Win11 Pro ARM64 24H2 into NVMe SSDs mounted into USB enclosures that feature the Realtek RTL9210B chip inside (e.g. Sabrent EC-SNVE) for my Raspberry Pi 5 (and Orange Pi 5 Plus). Problem symptoms were similar to yours. I then changed to a different USB enclosure with Jmicron JMS583 chip inside (e.g. 1st gen Plugable USBC-NVME) and OS installation proceeded normally to completion. For some unknown reason, Win11 ARM64 OS installation bits just do not play nice with RTL9210B-based NVMe USB enclosures, but Win11 x86-64 OS (for Intel & AMD) does not have this issue. Even updating the firmware of the Realtek USB enclosure did not help. Switching to Jmicron-based USB enclosure is the only realistic workaround I've found. Tricky part is how to identify whether a USB enclosure uses Realtek or Jmicron chip as the manufacturers never volunteer this info. |
Thanks. This is very helpful. I have found that Plugable uses both JMicron and RealTek chipsets in various versions. I have asked Plugable Support how to identify the correct version. I’ll see what they have to say.
|
Another option is to connect an NVMe SSD directly to the Raspberry Pi 5 with a m.2 PCIe hat. With latest bootloader installed into the Pi 5, WoR-Flasher works great installing Win11 ARM64 24H2 OS directly into NVMe SSDs. The performance is good too, especially with the PCIe configured to gen 3 speed. |
I just spoke to Plugable this morning. With their enclosure they now use a RealTek chipset. They used the JMicron chipset in an early version which is not out of stock and not available. They did have a good idea.
“I have not tested with Windows on Raspberry Pi (ARM) however I do not normally recommend this enclosure for direct connection to the Raspberry Pi. NVMe SSDs require a great deal of power and often switch on/off quite quickly, I have found in testing with the Pi 3 and Pi 4 that this causes the USB host controller to go offline and disconnects the drive during some read and most write operations. Using an independently powered USB 3.0 hub between the enclosure and the Raspberry Pi should resolve this disconnection issue.” From Plugable Support.
I have ordered a powered USB 3.0 hub and will try it with the enclosure I have already. I did try the NVMe SSD in a Hat for the Pi, but had the same problem with trying to install Windows 11 ARM. I will let you know the results of my testing. It may be a power problem.
John
|
I have given up trying to get WOR-Flasher to work with an NVME drive. I tried a powered USB hub twice with a 500gb NVMe card and a 256gb NVMe card and the Windows installation failed in both cases. I then installed the official Raspberry M2 hat (I had another M2 hat but decided to try the official one) using the 256gb NVMe card and that failed.
WOR-Flasher sets up the boot partition and a partition with the install.wim file on the NVMe card. As near as I can tell the problem arises when it is formatting and trying to install the wim file on a third partition. I have tried formatting the whole NVMe cards as ExFat on a PC before trying WOR-Flasher. That didn’t help.
I do have Windows 11 installed on a USB SSD using WOR-Flasher and that works. I think there is a definite problem with Flasher when using NVMe. It looks to me like Flasher was developed primarily for SD cards. I suspect a problem with the script for DiskPart in the final stages.
John
|
WoR-Flasher is NOT at fault for your Win11 OS installation failures with Raspberry Pi 5 and NVMe SSD. There is a known issue with the Win11 inbox NVMe storage driver (stornvme.sys) not working with RPi5, so installations using stock (unmodified) OS installation bits will fail, and even if you somehow make it through the installation, the OS will likely fail during OOBE and never reach the desktop properly. WoR-Flasher simply gets badly tripped up by this issue. To use WoR-Flasher to directly install Win11 into NVMe SSD, it is necessary to replace the stornvme driver residing in the OS installation files (boot.wim & install.wim) on the USB installation media. A version of stornvme driver v6 "50%" provided recently by developer digdoug2 on Discord works well with RPi5 and I've had multiple successful installations and stable OS operation with several different NVMe SSD brands and models attached via m.2 Hat. Attached is a script I wrote that uses DISM to automate the replacement of stornvme.sys for boot.wim & install.wim, and optionally inject 3rd-party ARM64 device drivers (there are none currently for RPi5). Once the boot.wim & install.wim files are processed by this script, Win11 installation into NVMe SSD connected to RPi5 should work. |
This looks promising. @schau80269 If you are interested in getting this added to the wor-flasher for everyone, let me know! |
@Botspot Feel free to add stornvme driver replacement functionality to WoR-Flasher! Replacing the inbox stornvme driver is critical in getting Win11 ARM64 OS to install successfully for ARM SBCs such as Raspberry Pi 5 and Rockchip RK3588-based boards such as the Orange Pi 5 series. With the replacement stornvme driver in place, WoR-Flasher typically completes OS installation into NVMe SSD on RPi5 in less than 6 minutes, and subsequent OS bootups are trouble free. The ARM64 driver injections in my script are mostly for my Orange Pi 5 Plus. Pre-injected RK3588 ARM64 drivers don't seem to affect Raspberry Pi 5 installations. I also inject a ARM64 driver for Realtek USB-to-Ethernet adapters (1GbE & 2.5GbE) so RPi5 can have internet connectivity during the OOBE setup. The v6 "50%" stornvme driver provided by digdoug2 serves the RPi5 extremely well. I've had zero crashes. Unfortunately, it's different for my Orange Pi 5 Plus where there are still random DPC_Watchdog_Violation BSOD crashes with NVMe SSD, so Win11 ARM64 24H2 currently runs with NVMe SSDs on Raspberry Pi 5 better than with RK3588 SBCs. |
I’m not familiar with the download sources for the stornvme driver v6. I have searched but can’t find. Where can I find it?
John
|
stornvme v6 driver was posted to the "Windows on R" Discord server by digdoug2. Attached is a copy. |
Thanks. I’m working a bit over my head…smile. Where is storahci driver?
John
|
storahci driver is not used for Raspberry Pi 5 with NVMe SSD, so no driver replacement is needed. |
Thank you. I was confused by your CMD file. I will try it out tomorrow.
|
Here's a replacement storahci driver to keep the CMD script happy. |
Thanks. I ran the CMD file without it and it complained a bit, but it did produce the modified intall.wim and boot.wim. Tomorrow I will try Flasher again.
John
|
I have tried running Flasher again several times with and without the storahci driver. This morning I tried the new install.wim and boot.wim files produced by your CMD script including the storachi driver. The first test was to a 500gb NVME SSD connected via a USB port. The process got to the Windows Preinstallation and hung up. The log file showed it got to the point: “Launch Diskpart.exe with /s “X:\diskpart.script”. Then I tried to flash to a 256gb NVME SSD inserted in a Raspberry official M2 Hat. It did not get to the Windows Preinstallation. In both cases the NVME SSDs were partitioned with a BOOT partition and one other which included install.wim, but Windows 11 Pro was not installed.
I ran your CMD script again and saved the results in the attached logs – one is a capture of the CMD screen and the other is the DISM log. Note there are several errors. The resulting install.wim and boot.wim files may not be complete. One set of errors reference the ARM64 drivers. It appears it is looking in Windows\system32\drivers.
John
|
The script failed to process install.wim. Mounting of install.wim failed with Error:11 and it went downhill from there. Were you trying to get Win11 OS installed into the same NVMe SSD that was loaded by WoR-Flasher with the modified installation files? I don't recommend doing this as it is more likely to have issues. Instead, use a 8/16GB USB flash drive (not a NVMe SSD in a USB enclosure!) and get WoR-Flasher to load this up, then copy out the boot.wim & install.wim files to another PC to run the script, then copy the modified files (in the Src subfolder) back into the USB flash drive (boot.wim in BOOT partition sources subfolder, install.wim in the exFAT partition) overwriting the originals. Install a blank NVMe SSD to m.2 Hat as OS installation target drive. Attached is an updated script. Since there are no ARM64 device drivers for RPi5 to inject, simply remove the Drivers subfolder (or don't create one) and the script should skip all driver injections and only do the stornvme driver replacement. Even storahci replacement is not needed for RPi5. So the stornvme_storahci subfolder should just have 2 files: the v6 stornvme.sys & stornvme.pdb and nothing else. This is a better way to install Win11, as the USB flash drive can be used repeatedly for OS installs after WoR-Flasher and script processing is done once. If you use NVMe SSD in USB enclosure with Realtek RTL9210B bridge chip as OS installation target, your installations will continue to be unsuccessful. I wasted several days fighting this last month and concluded that Win11 ARM64 OS has a major incompatibility with that Realtek chip with no fix in sight. You are much better off installing OS directly into NVMe SSD attached to m,2 Hat. My script was written to enable this to work. One more thing: Don't leave a copy of the script sitting in the installation media. WoR-Flasher seems to pick it up which may mess up the Pre-installation environment. Script_to_Inject_ARM64_Drivers_Replace_stornvme_for RPi5_Win11ARM64.zip |
Well I tried again with failure trying to load Windows Pro 11 on to a 256g NVME drive in a m.2 Hat. The attachments are extracts showing the errors in your CMD script and the associated errors in the DISM log. I don’t know whether those are critical.
For the original install.wim and boot.wim I have been using those found in the WOR Flasher Files folder on the RPI 5 Raspbian desktop. These files were created weeks ago before I started messing with NVME drives when I first tried WOR Flasher. In your instructions are a little unclear. You say “…then copy the modified files (in the Src subfolder) back into the USB flash drive (boot.wim in BOOT partition sources subfolder, install.wim in the exFAT partition)…” Shouldn’t the modified files go back into the WOR Flasher Files folder? For the creation of the NVME in the m.2 Hat running the Flasher from Raspbian, I don’t see the USB flash drive involved.
John
|
Something is not right about your install.wim, and DISM chokes up trying to mount it, so of course the stornvme driver replacement fails. Your installation media was thus not prepared properly to support OS installation into NVMe SSD. The script must be run from an elevated command prompt. I suggest you start over by downloading a recent Win11 24H2 ARM64 build from uupdump.net. I've had great success with the 26100.1000 ARM64 build. Attached is a procedure I just wrote up. There are steps to be done with both x86-64 Win11 PC and Raspberry Pi 5. I strongly recommend you use a dedicated USB3 8/16GB flash drive to be OS installation media. Once prepared properly, this USB flash drive should be usable repeatedly for installing OS. Windows_11_ARM64_OS_Installation_into_NVMe_SSD_for_Raspberry_Pi_5.zip |
Thanks for the detailed instructions. I will start fresh this week.
John
|
I have tried to follow your instructions in detail. First problem: step 7 under “Generate OS Installation USB Media, there is no “More Options” in my version of WoR-Flasher. I selected “Advance” and set the working directory to an extra flash drive named Flasher. All of the WoR-Flasher Files will go into that. I converted the ISO file downloaded from UUPDUMP to an install.wim file for WoR-Flasher to use instead of the file that WoR-Flasher would download. Completed step 8 and the USB flash drive contained an install.wim and a boot.wim.
Under “On a x86-64 Win 11 PC” I ran your CMD script and had the errors shown in the attachment. An install.wim file was not produced in the Src sub-folder.
I am about to give up…smile. I hope the originator of WoR-Flasher will include the CMD script you have provided to make things simpler for NVMEs and move away from just thinking of SDs. Right now things are very difficult.
John
|
The CMD script should NOT be copied to C:\Windows\System32 and run from there! The SSD drive in my x86-64 Win11 PC is partitioned into C: and D: drives, and the CMD script is sitting in D:\Win11_ARM64_WIM folder along with Orig and stornvme_storahci subfolders. C:\Windows\System32 is Windows folder under strong OS protection and no user files should be copied into it, otherwise you run into file permission issues: Access Denied. Also, where is your J: located? Is J: the USB flash drive? The CMD script is intended to run process boot.wim & install.wim files sitting in an NTFS formatted disk partition. USB flash drive with FAT32 or exFAT formatted partition will run into ACL issues as evidenced in the log. Keeping all these files away from C:\Windows\System32 should go a long way to help the CMD script run successfully. Either create C:\Win11_ARM64_WIM on your PC hard drive, or better yet, shrink C: and use the available space to create a D: partition of at least 30GB, and copy the .wim files into D:\Win11_ARM64_WIM\Orig first before launching the CMD script. The CMD script must still be run from elevated command prompt but change directory (cd) first to D:\Win11_ARM64_WIM then launch the script sitting there. Only when the script completes successfully do you copy the modified boot.wim & install.wim files in the Src subfolder back to the USB flash drive. |
I tried again today. I had been running from an NVME drive in a USB enclosure on my main workstation using Windows 11 Pro. I followed your suggestion and created a new partition on my C: drive. The new partition is labeled K:. I downloaded again your zip file with your edited CMD script. Here is my setup now after the first run.
***@***.***
Orig folder has boot.wim and install.wim from the flash drive produced by WoR-Flasher. Stornnvme_storahci contains the new drivers you provided.
Before I ran the script in a CMD (Run as administrator), I edited one line of your script: set wimPATH=K:\Win11_ARM64_WIM. For the first run I also deleted folders created by your script: mWIM, temp, and winre_mWIN in case their presence created problems.
In running your script, I am still getting errors as described in the attachment. What am I doing wrong?
John
|
boot.wim was processed properly by the CMD script, but I have no idea why the DISM /export-image command failed on install.wim, and can only guess that something is still wrong with it. At this point I'd recommend taking a completely different approach, which is entirely done with a Windows x86-64 PC, so possibly more straightforward and faster. High level steps are as follows:
Windows on Raspberry Imager and Boot partition mount utility: Raspberry Pi 5 UEFI firmware: |
Thanks for the detailed instructions. I will try.
John
|
I precisely followed your directions below. All steps were completed with a 256gb NVME SSD in a USB enclosure. I removed the SSD and mounted it on a Raspberry M.2 HAT on my RPi5 computer. The RPi5 was set to boot from NVME. Boot failed. The M.2 HAT power LED came on, but the activity LED never blinked once after 5 minutes. I tried again with the SD card removed and it still failed.
All your steps were completed without errors or problems except as noted below:
* Step 1: In downloading Win11 ARM64 build 26100.1000.240625 from uupdump.net there were a few errors in downloading some components. I assumed those were just not available for that build – looked like they were various apps. The conversion to an ISO file completed.
* Step 2: At first the settings.ini file was not present until after I loaded Raspberry Imager (WOR), then it appeared, and I edited per your instructions before proceeding.
Your script to update the stornme and storachi drivers ran without errors.
Upon inspection the NVME SSD has 2 partitions and an unallocated space. They look complete as best I could tell. The first partition has the Win11 ARM64 build. The Raspbian OS lists that file type as “raw CD image”.
Any idea on what to try next?
John
|
Check that the Pi 5 UEFI files have been properly copied to the small BOOT partition in the NVMe SSD. If Pi 5 cannot boot UEFI it certainly will not boot to Win11. Also, ensure the Pi 5 has latest bootloader installed and has PCIe included in its boot device order. It's normal for Raspberry Pi OS to see the Win11 OS partition as raw since this OS does not recognize the NTFS file system used for Windows. Pi 5 may also need an additional line in config.txt to properly enable the Raspberry m.2 Hat. |
I checked and all is fine. I am guessing the NVME SSD that I’m using may not work well in the HAT. I have ordered a new and different model – SABRENT Rocket 2230 NVMe 4.0 256GB High Performance PCIe 4.0 M.2 2230 SSD<https://www.amazon.com/gp/product/B0BQG58F34/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1> Will try it.
In the RPi 5 config file it was set for GEN3 and I changed that in case GEN3 is a problem.
Raspbian OS with latest updates has problems in detecting what drives are attached. File Manger lists many volumes that are not there. It is strange.
More later.
John
|
I got the:
SABRENT Rocket 2230 NVMe 4.0 256GB High Performance PCIe 4.0 M.2 2230 SSD<https://www.amazon.com/gp/product/B0BQG58F34/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1>
And cloned what I had created before to the new SSD. When I tried to boot with it, I got the blue Windows screen that said there was an error in Windows\system32\winload.efi file. I forgot to copy down the error number. On a PC I checked the SSD and found the file was there. Also the files from RPi5_UEFI_Release_v0.3 (1) are in the Boot partition of the NVME drive.
In trying to troubleshoot I ran into another problem. I inadvertently changed the Boot Discovery Policy to Minimal from Connect All Devices. No matter how I tried using the various menus, it seems locked on Minimal. I think there is a problem with the screen that allows this change. Is the Boot Discovery Policy in some configuration file?
John
|
UEFI error message about winload.efi file (e.g. cannot be found) is typically caused by something in the BCD (Boot Configuration Data) being out of whack. Your SSD cloning may have neglected to make the necessary BCD content adjustments and created an unbootable clone. Do you know how to use bcdedit? Also, the SSD your cloned from was not working to start with. I don't think that previous SSD was entirely responsible for your OS installation troubles. I would suggest you abandon SSD cloning, blank out your Sabrent SSD (diskpart - clean) and start from scratch. It's still unclear whether you have generated USB installation media property. If the USB installation media was not set up exactly right, it will doom all OS install attempts! I would suggest that you do a reset, forget about Win11 installation briefly, and work first to ensure your Pi 5 can boot Raspberry Pi 64-bit OS successfully from that Sabrent SSD. My original script is intended to modify Win11 ARM64 OS installation files (boot.wim & install.wim) to enable OS installation directly into SSD attached to Pi 5. That apparently didn't work for you. My recent script is intended to post-process a Win11 OS installation sitting in an SSD with a replacement stornvme driver for proper OS bootup. That didn't work for you either. I'm running out of ideas on how to help you troubleshoot. For me, Win11 ARM64 OS installation for Pi 5 has become very straightforward, and I have done it nearly a dozen times. Remote/armchair troubleshooting is always difficult and can easily mislead down the wrong path. |
Eureka! It works…smile. Here is what I did.
* I used Raspberry Pi Imager on my PC with the older Western Digital NVME SSD
* Mounted it on the RPi5 and it failed to boot – no flashing of the activity LED on the HAT.
* Conclusion that NVME does not work on the RPi5.
* I repeated the above process with the Sabrent NVME SSD.
* It worked on the RPi5 and booted into the Raspbian OS.
* Then I used your 8-step process from 10 Jul on the Sabrent.
* Mounted it on the RPi5 and Windows Pro 11 installed without problems.
So in summary in my case, the following hardware setup works.
* Raspberry Pi 5,
* Raspberry M2 Hat,
* SABRENT Rocket 2230 NVMe 4.0 256GB High Performance PCIe 4.0 M.2 2230 SSD [SB-2130-256]
* Your 8-step process works well.
Thanks very much for your help in walking me through this. Hopefully, the Raspberry Pi Imager for PCs will be updated to include Windows 11 as one of the optional operating systems. Hope somebody is working on that when Microsoft provides support for the Raspberry. I now have Windows 11 on the RPi5 working from a USB attached non-NVME SSD and a HAT installed NVME SSD.
John
|
funny that you think a company that bans every mention of windows on their forums would add support for windows in their Raspberry Pi Imager. WoR tool won't be updated either. |
Windows 11 running on my RPI 5 has been working great thanks to your help.
I have it connected to my LAN, but now would also like connecting it to my WiFi network.
Have you found any USB WiFi adapters that will work with the ARM version of Windows 11?
John
From: schau80269 ***@***.***>
Sent: Wednesday, July 10, 2024 8:17 PM
To: Botspot/wor-flasher ***@***.***>
Cc: SeaDog58 ***@***.***>; Author ***@***.***>
Subject: Re: [Botspot/wor-flasher] Problem Using WOR-Flasher (Issue #158)
boot.wim was processed properly by the CMD script, but I have no idea why the DISM /export-image command failed on install.wim, and can only guess that something is still wrong with it.
At this point I'd recommend taking a completely different approach, which is entirely done with a Windows x86-64 PC, so possibly more straightforward and faster. High level steps are as follows:
1. Download a recent Win11 ARM64 build (e.g. 24H2 26100.1150) from uupdump.net. Run the script to completion to get the ISO file.
2. Download Windows on Raspberry Imager (WoR) version 2.3.1. Extract to a folder, edit the settings.ini file to add the following line to the bottom:
SkipEditionBuildNumCheck = 1
3. Attach a NVMe SSD via USB m.2 enclosure to PC. This SSD will be used to boot Win11 on RPi5 so it needs to be at least 60GB in size.
4. Launch WoR 2.3.1, select the attached NVMe SSD, select "Raspberry Pi 2/3" (don't select Raspberry Pi 4), point it to the Win11 ISO image file from uupdump, and let the tool finish installing OS into the SSD.
5. Download and launch WoR-Boot-Mounter (release 1.1.0) to access the BOOT partition on the NVMe SSD (Click the Mount button),
6. Copy the files for the latest Raspberry Pi 5 UEFI (bcm2712-rpi-5-b.dtb, RPI_EFI.fd and config.txt) into the BOOT partition, overwriting any existing files. Click the Unmount button to unmount the BOOT partition.
7. Run the attached script in elevated command prompt to do the stornvme driver replacement directly on the system drive of the NVMe SSD.
Example: Replace_stornvme_local E K:\Win11_ARM64_WIM\stornvme_storahci
where E is the Windows partition of the attached NVMe SSD
8. After this script completes, eject the NVMe SSD from PC and attach it to RPi5 via m.2 Hat. Win11 ARM64 OS should be ready to do first boot on RPi5.
Windows on Raspberry Imager and Boot partition mount utility:
https://worproject.com/downloads
Raspberry Pi 5 UEFI firmware:
https://github.com/worproject/rpi5-uefi
Script_to_replace_stornvme_driver.zip<https://github.com/user-attachments/files/16169989/Script_to_replace_stornvme_driver.zip>
—
Reply to this email directly, view it on GitHub<#158 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AGHY4P7F7GCDBDYTKXHPUOLZLXFHXAVCNFSM6AAAAABIPQGL5GVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMRRG42TCOJWGY>.
You are receiving this because you authored the thread.Message ID: ***@***.******@***.***>>
|
there are simply no USB wifi adapters that have arm64 drivers. |
Setup:
Procedure:
Latest attempt to Flash Windows Pro 11 to a Raspberry Pi 5 using WoR-Flasher
• Steps completed without error until “Downloading Windows ESD Image”.
• Then errors in downloading numerous CUIDs. Error code 8.
• Continued to download 4.8gb of data.
• Download verified.
• Extracted image.esd to /home/John/wor-flasher-files/winfiles_22631.2861_en_us
• Preparations completed with GDK error which I understand is not critical.
• I re-booted Raspbian OS after changing the boot order to start with NVMe.
• In “Windows on Raspberry Pre-installation Environment”.
• Displayed “Preparing Disk”.
o Western Digital 1TB SN750 NVMe Internal Gaming SSD Solid State Drive - Gen3 PCIe, M.2 2280, 3D NAND, Up to 3,470 MB/s - WDS100T3X0C
o It is in an external enclosure with a USB 3 cable.
o The drive in this enclosure worked fine on a PC running Windows Pro 11.
o After about 12 hours, there was no additional activity.
• I moved the NVMe drive to a PC running Windows Pro 11 and used Disk Management to explore the drive.
o There were 3 partitions – 953mb FAT32, 16.76gb exFAT, 913.38gb not formatted.
o In the exFAT partition there is an install.wim file (5.1 gb) which apparently was never executed.
• I have attached the Log file from the Pre-installation Environment.
• Is there any way to use install.wim while drive is connected to PC?
Any help would be appreciated.
WoR-PE.log
The text was updated successfully, but these errors were encountered: