Guide: How to install Windows 10 onto storage expansion card

Rufus has a “windows to go” preset, and I used that preset to install a normal w10 ISO to my storage expansion card. Worked very smoothly.

I just followed the directions given in the OP above, and a 256G Expansion Card. It worked fine on the 2nd try (probably typo’d the first one). Used a USB that I created from an existing Windows install. Disks look like this on Unix (OpenBSD, which as my main system is on the SSD):

dalai-LAPTOP-ian $ fdisk sd1
fdisk sd1
Disk: sd1       Usable LBA: 34 to 488397134 [488397168 Sectors]
   #: type                                 [       start:         size ]
------------------------------------------------------------------------
   0: Win Recovery                         [        2048:      1024000 ]
   1: EFI Sys                              [     1026048:       512000 ]
   2: e3c9e316-0b5c-4db8-817d-f92df00215ae [     1538048:       262144 ]
   3: FAT12                                [     1800192:    471040000 ]
   4: Win Recovery                         [   472840192:      8388608 ]
dalai-LAPTOP-ian $ disklabel sd1
# /dev/rsd1c:
type: SCSI
disk: SCSI disk
label: USB DISK 3.2    
duid: 0204060829212769
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 255
sectors/cylinder: 16065
cylinders: 30401
total sectors: 488397168
boundstart: 34
boundend: 488397135
drivedata: 0 

16 partitions:
#                size           offset  fstype [fsize bsize   cpg]
  c:        488397168                0  unused                    
  i:          1024000             2048 unknown                    
  j:           512000          1026048   MSDOS                    
  k:           262144          1538048 unknown                    
  l:        471040000          1800192   MSDOS                    # /c
  m:          8388608        472840192 unknown                    
dalai-LAPTOP-ian $

I was able to follow the guide and install windows (after jumping through some hoops)- but now wifi and sound don’t work on my pre-existing manjaro installation.

I tried disabling fast boot in the bios, but no luck. Any thoughts?


Edit. I also disabled Windows fast booting in the power settings, no luck.

It wasn’t until I stopped rebooting from one OS to the other that I got my network back on Manjaro. Have to fully shut down Windows, wait for a few seconds, and then boot into Manjaro, and wifi would be fine then.

I don’t understand. Do you put Windows into hybernation? sleep?
I believe Windows saves some data (on the disk, maybe in BIOS too) that lock the state of certain things (should only occur in sleep tho, hibernation is next to a full shutdown)

Could be anything. The wifi card could simply be in some unexpected state that the linux driver doesn’t know how to reset out of. The clue is that staying powered off for longer time makes any difference. That means the card isn’t reset until all the caps on the power rail drain.

1 Like

I want to note some changes to the instructions I made for the current Windows 11 22H2 ISO’s. Please mind that anything in parentheses are not intended to be input, they’re just notes:

list disk

select disk x (where x is the number corresponding to your expansion card)

clean (WARNING: This will format the whole disk, make SURE you have selected the proper disk)

convert gpt

create partition primary size=670 (increased from 500 to account for larger size in current build)

format quick fs=ntfs label="Windows RE Tools"

assign letter="T"

set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac"

gpt attributes=0x8000000000000001

create partition efi size=100

format quick fs=fat32 label="System"

assign letter="S"

create partition msr size=128

create partition primary size=230000

format quick fs=ntfs label="Windows"

assign letter="W"

create partition primary size=5120 (increased from 4096 to account for larger size in current build)

format quick fs=ntfs label="Recovery Image"

assign letter="R"

set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac"

gpt attributes=0x8000000000000001

list volume

exit

md R:\RecoveryImage

copy XYZ:\sources\install.wim R:\RecoveryImage\install.wim (This needs to be the mounted ISO, which on one attempt was F and on another attempt was G. I used the command "notepad" to open notepad just to get a file browser so I could figure out the drive letter a bit easier and navigate around to ensure I was looking at the right device. Below X: is actually X:, the running from memory system. Changed esd to wim for Win11 build)

cd X:\Windows\System32

dism /Apply-Image /ImageFile:R:\RecoveryImage\install.wim /Index:6 /ApplyDir:W:\ (changed index to 6 for Windows 11 Pro)

md T:\Recovery\WindowsRE

copy W:\Windows\System32\Recovery\winre.wim T:\Recovery\WindowsRE\winre.wim

bcdboot W:\Windows /s S: /f UEFI

W:\Windows\System32\reagentc /setosimage /path R:\RecoveryImage /target W:\Windows /index 6 (changed index to 6 for Windows 11 Pro)

W:\Windows\System32\reagentc /setreimage /path T:\Recovery\WindowsRE /target W:\Windows

also figure it’s worth mentioning, the gpt attributes… those are 14 zeroes. so type 0x8, then hit 0 14 times, then 1. With so many it’s kind of hard to count.

2 Likes

I installed Win11 pro according to this method. What I have to say is that after using fedora for a long time, I switched to win11 to use Microsoft’s Chinese input method. It feels really great!
However, after the surprise, there are also some problems:

  1. I think it may be because the system is running on an external expansion card, so the system time cannot be synchronized, and it needs to be adjusted manually after booting.
  2. In standby mode, shut down and restart.
1 Like

Recently, my win11 professional version has a new problem, the system update has an installation error - 0x800703f1, and the inexplicable power button fails, I have to use shutdown to shut down or restart.
Another point is that disk detection often occurs when win11 is turned on. Recently, I have been thinking about how to produce these unstable factors after using it for a period of time.

What advantage do you have booting the OS from the external drive instead of just running it in a VM?

There are so many shortcomings in the external drive approach that I really question why someone should use that approach instead of the VM one.

With a VM, I can start+stop it without issues, freeze it, a snapshot is done within a milisecond (CopyOnWrite ftw.) and so many more things.

My suggestion would be: Passthrough the external expansion card to the VM and then install Windows to it. Then you can just point your VM to something like /dev/sda, all would work and you wouldn’t have to keep fighting with Windows.

1 Like

“Passthrough the external expansion card to the VM and then install Windows to it.”

This suggestion is eye-catching, but I don’t know how to configure it, is there a tutorial for it? @Anachron

That very much depends on both your primary OS as well as which VM solution you choose.

I use Void Linux with Qemu and it allows me to attach basically anything to my Virtual Machine: I can choose a file, partition or even block device to mount.

https://qemu-project.gitlab.io/qemu/system/images.html#using-host-drives

Since I use no GUI, I would pass -drive format=raw,media=disk,file=/dev/sda to my VM for example.

1 Like

@Anachron , just for context, for my personal use case the only reason I have any “bare metal” install of Windows on my Framework is specifically doing firmware updates on a couple of my 3D printing related devices. Some of the devices have linux firmware updaters but one in particular is poorly supported and works best in Windows. While it’s definitely possible to pass through the USB interface for the serial device to exist in the VM, it was really tedious to get it working consistently to the point where I thought “I’m gonna have to make an unnecessarily complicated script for this one thing I do every 6 months?” and I just stopped and installed directly to the expansion card to go bare metal.

That said, for many folks (depending on their needs) I’d very much agree that just running Windows in a VM is almost certainly going to be simpler.

1 Like

@Anachron @JP_Powers
Thank you for your suggestions, which gave me a new understanding of VM. I always thought that VM are not suitable for some production environments. I may be wrong. After I think about it, I might also think that installing the OS on external storage is weird behavior (it does have a lot of instability issues if you use it confidently).

I came across this forum/site/topic, which covers the specific installation I am looking for. However, my laptop is HP and I am not sure if this the right place to ask such question. If it is not, I apologize and just ignore my questions. If it is ok, then -
I am trying to follow these instructions and I am getting error “The operation is not supported on removable media” on the format quick fs=fat32 step. I think I should try Windows to go in order for this to work, which I am working on right now.
Also, I realized that my SD card is not recognized without drivers. So in Windows installer I have to browse and load my SD card reader driver before it becomes visible. And this makes me think, even if I succeed with the installation itself, the boot process will fail, because I can’t load driver before Windows boot starts, but the card is not visible before the driver loads. Any ideas?

Countless reasons. Not everything works in a vm. Some things just expect and require direct access to the hardware and passthrough doesn’t work. Portability, plug the external drive into some other machine, for instance when the first machine is broken, or just occupied. Storage space, give Windows a whole 1T yet consume none of your nvme, nor have to try to cut the Windows short and then later discover 128G or whatever wasn’t enough after all. Dual boot without risky bootloader setup. Run the os at full power and all hardware resources. Whatever.

But none of these particular reasons matter. The question was invalid in the first place. It’s like asking why does anyone eat chicken sometimes when you like beef so much. Beef is fine. In fact I like it too (aka, I use VMs too). But that doesn’t mean there is no valid reason to ever need any other solution or workflow. And whatever other way they want to operate, it’s valid even if it doesn’t make sense to you.

Most Windows users would ask why you bother running Windows in a vm in the first place instead of just running Windows instead of Linux when there are “so many problems with the vm approach” which there absolutely are. In fact they could even ask why not just run linux in wsl if you need linux? Same answer, A) that isn’t actually good enough in countless ways, B) invalid question in the first place anway. No one has to justify a thing like that for it to be valid.

Same here. I have a handful of odd things that require either a mac or windows machine. I have a couple things related to my car, one reads and writes a custom image to my cars ECU, and it’s a kind of junky little custom windows app that only works exactly one way. The place that made it does not support linux or even mac. If yoiu want this tune, you need to plug in their dongle and run their app on windows, period.

Similarly another updater/configurator for a fancy bluetooth audio module that connects to the canbus and integrates with the factory head unit. It doesn’t work in wine, and a vm doesn’t give good enough usb passthrough.

I used to have the same problem with a high end univerasl remote but that has gone unsupported and dead a long time ago now, but for several years, you simply needed a windows or mac to program it, not a vm.

Not to mention the firmware updaters for the Framework itself until recently, heck, even today still.

I daily drive linux 24/7 and probably boot windows about 1 hour every 2 years, but “almsot never need it” is not the same as “never need it”.

That should work just as you expect in a VM with as little as 5, maximum 10% decrease from native.

For everything else I’d double-check your setup,- that is not normal behavior.

I am in the same ballpack,- I need to run Windows at least once a year, but my VM setup is rock solid and allows for all cases I need to.

In fact with GPU passthrough you can even have reasonably good gaming performance.

when i try to copy the install file to the recovery image i get “There is not enough space on the disk.” although i followed all the steps and allocated 4096mb for the size of that partition. Any ideas why this is happening and how to fix it?

You may find that the recovery image has grown over the last couple of years and 4096MB is not enough now.

Try making it 8192MB.

Instructions to install windows 11 (22H2 or whatever is current as of April 2024). For the 1 TV expansion card purchased from framework. You should probably copy and paste the contents into notepad, and save it into the flash drive.
NOTEL XYZ is the flash drive that windows has booted, you need to put in the correct drive letter that contains XYZ:\sources\install.wim

This operation worked for my batch 5 FW16 to install window 11 pro.

create partition primary size=700
format quick fs=ntfs label=“Windows RE Tools”
assign letter=“T”
set id=“de94bba4-06d1-4d40-a16a-bfd50179d6ac”
gpt attributes=0x8000000000000001
create partition efi size=260
format quick fs=fat32 label=“System”
assign letter=“S”
create partition msr size=128
create partition primary size=945000
format quick fs=ntfs label=“Windows”
assign letter=“W”
create partition primary size=6120
format quick fs=ntfs label=“Recovery Image”
assign letter=“R”
set id=“de94bba4-06d1-4d40-a16a-bfd50179d6ac”
gpt attributes=0x8000000000000001

md R:\RecoveryImage
copy XYZ:\sources\install.wim R:\RecoveryImage\install.wim
cd X:\Windows\System32
dism /Apply-Image /ImageFile:R:\RecoveryImage\install.wim /Index:6 /ApplyDir:W:\
md T:\Recovery\WindowsRE
copy W:\Windows\System32\Recovery\winre.wim T:\Recovery\WindowsRE\winre.wim
bcdboot W:\Windows /s S: /f UEFI
W:\Windows\System32\reagentc /setosimage /path R:\RecoveryImage /target W:\Windows /index 6
W:\Windows\System32\reagentc /setreimage /path T:\Recovery\WindowsRE /target W:\Windows