Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Basic guide for windows VM in unraid.

Featured Replies

I had it at 2gb RAM and 1 CPU, but I killed it and increased it to 2CPU..  No change..  It's been sitting there for probably at least 45 minutes now..

in ESXi, they recommend not going over 2vcpu unless you can show i'ts needed.. 

 

Full disclosure - I don't have an SSD in there - I'm running it from /mnt/disk2/.... but nothing else is accessing disk 2, and I'm used to the performance I'd get from Unraid for my VMs on ESXi when I was running them via NFS, and they were fine that way, so I don't think it's a physicaly bottleneck..  I'm wondering if there's some overriding VM performance tuning I need to do or something?  Something similar to setting shares or reservations on an ESXi 5.x machine.  With only one VM running, and 32g of physical RAM, I wouldn't expect a problem though, so I'm kind of stumped..  I'm an ESX guy, not XEN traditionally!

 

Thanks!

Steve

  • Replies 146
  • Views 25.6k
  • Created
  • Last Reply

I've been plugging away at this for a while now, and I'm really close.  Here is my current cfg file...

 

# Documentation for the settings is here: http://xenbits.xen.org/docs/unstable/man/xl.cfg.5.html
#kernel = '/usr/lib/xen/boot/hvmloader'
builder = 'hvm'
vcpus = '2'
memory = '2048'
device_model_version="qemu-xen-traditional"
disk = [
       'file:/mnt/cache/domains/Windows7/windows7.img,ioemu:hda,w',
       'file:/mnt/user/backup/Programs/Windows7_Slipstream_files/Windows7rc21.iso,hdc:cdrom,r'
]
name = 'windows7'
vif = [ 'mac=00:16:3e:a4:b4:c4,bridge=br0' ]
on_poweroff = 'destroy'
on_reboot = 'restart'
on_crash = 'restart'
boot = 'cd'
acpi = '1'
apic = '1'
viridian = '1'
xen_platform_pci='1'
sdl = '0'
vnc = '1'
vnclisten = '0.0.0.0'
vncpasswd = ''
# Force it to 5901. So connect to port vnc://dom0ip:5901/. Use raw encoding!
#vncdisplay = 1
stdvga = '0'
usb = '1'
usbdevice = 'tablet'

# Enable Xen VGA Passthrough gfx_passthru=1
# VGA Passthrough Palit NVIDIA Geforce 8400 GS PCI Express x16 VGA card. pci = [ '01:00.0','00:1b.0' ]
# PCI Passthrough Intel HD Audio Controller. #pci = [ '00:1b.0' ]
# PCI Passthrough all the USB Controllers. # pci = [ '00:1a.0','00:1a.1','00:1a.2','00:1a.7','00:1d.0','00:1d.1','00:1d.2','00:1d.7' ]

 

I originally had the first disc comment out, like so...

 

disk = [
#       'file:/mnt/cache/domains/Windows7/windows7.img,ioemu:hda,w',
       'file:/mnt/user/backup/Programs/Windows7_Slipstream_files/Windows7rc21.iso,hdc:cdrom,r'
]

 

Here is what I got when it actually started the installation...

 

root@media:/mnt/cache/domains/Windows7# xl create windows7.cfg
Parsing config from windows7.cfg
xc: info: VIRTUAL MEMORY ARRANGEMENT:
  Loader:        0000000000100000->000000000019ec84
  Modules:       0000000000000000->0000000000000000
  TOTAL:         0000000000000000->000000007f800000
  ENTRY ADDRESS: 0000000000100000
xc: info: PHYSICAL MEMORY ALLOCATION:
  4KB PAGES: 0x000000000005c000
  2MB PAGES: 0x000000000000011c
  1GB PAGES: 0x0000000000000000
Daemon running with PID 3261

 

That almost worked.  Windows started installing fine, but there was no disc available for windows to install to.  So I removed the # to try to give access to the windows7.img file so I could complete the install.  However, this resulted in...

 

root@media:/mnt/cache/domains/Windows7# xl create windows7.cfg
Parsing config from windows7.cfg
libxl: error: libxl.c:3729:libxl_set_memory_target: new target 0 for dom0 is below the minimum threshold

libxl: error: libxl.c:3729:libxl_set_memory_target: new target 0 for dom0 is below the minimum threshold

libxl: error: libxl.c:3729:libxl_set_memory_target: new target 0 for dom0 is below the minimum threshold

failed to free memory for the domain

 

I have 8GB installed in the server, and have 4096 allocated to the archVM, and I've seen unRAID  use 3348, but it's currently using 1346.  The message looks like there isn't enough memory, but maybe I'm not understanding the error message.

 

Ideas?

After trying several things, I finally tried changing

 

boot = 'cd'

 

to

 

boot = 'dc'

 

and Windows is installing as I type.

 

Yay!

 

Thanks for the great guide.

Windows is installing as I type.

 

Did the install go normally?  I got that far, but the windows logo from the initial boot of the CD didn't ever really go away..  It was like the VM wasn't getting any time on the CPU, and it was just going VERY slowly (Like I waited HOURS and it never got to the initial install window)

 

-Steve

i got mine going and it working fine.

 

I ended up copying a cfg file from a person installing it on debian but once it was up it was smooth sailing.

Windows is installing as I type.

 

Did the install go normally?  I got that far, but the windows logo from the initial boot of the CD didn't ever really go away..  It was like the VM wasn't getting any time on the CPU, and it was just going VERY slowly (Like I waited HOURS and it never got to the initial install window)

 

-Steve

 

Yeah, it installed okay.  it actually seemed to install faster than normal.  I changed the workgroup, restarted, then installed updates (99 of them) and am just now rebooting again.

Yeah, it installed okay.  it actually seemed to install faster than normal.  I changed the workgroup, restarted, then installed updates (99 of them) and am just now rebooting again.

 

Thanks..  I'll give it another shot.  My latest change was to set the min/max memory for dom0..  My box has 32g.  I left Unraid 1-2gb, although I'll probably set it higher not to be so tight on the memory for it..

my cfg file is a bit of an amalgamation of several versions I found in this thread.  It probably most closely matches that of IronicBadgers, but I have a few things different still.  The biggest on is boot 'dc', instead of his boot 'cd'

 

That was the one change that allowed my install to proceed without hanging the whole system.

 

Attached is a shot of all my VM's and status.  I'm not sure what "State" means, nor why archVM is different from the others, but I'm sure it's fine ;)

vms.jpg.6b4a782c2b6652551b12e1aff41277dc.jpg

The biggest on is boot 'dc', instead of his boot 'cd'

 

I understand the boot..  that's just setting the boot priority, so when you were set to "cd" it was booting off of an empty hard drive, and failing, but with "dc" it was picking the CD image first, so the install could complete..

 

I just found out that the new processor I have, which I THOUGHT was a "Real" quad core might actually be dual core with hyperthread (A10-7850k.  I'm finding conflicting info) so perhaps I've oversubscribed my physical cores to the point that it just gridlocked and couldn't process anything anymore.. I'll look to limit dom0 to 2 cores, and see what happens if it doesn't just happen to work next time!

Thanks!

The biggest on is boot 'dc', instead of his boot 'cd'

 

I understand the boot..  that's just setting the boot priority, so when you were set to "cd" it was booting off of an empty hard drive, and failing, but with "dc" it was picking the CD image first, so the install could complete..

 

Maybe, but in a 'normal' windows install, it would skip the empty drive, since there is nothing to install from, then move to the next drive, the CD ROM, but would offer the empty drive as a drive to install to.  That didn't happen here, it just started the install (which could only have started from the CD ROM), but didn't show the other drive.  Only after I swapped the boot order did it allow me to install to the empty drive; which I still think is weird; but oh well, it eventually did work.

 

I just found out that the new processor I have, which I THOUGHT was a "Real" quad core might actually be dual core with hyperthread (A10-7850k.  I'm finding conflicting info) so perhaps I've oversubscribed my physical cores to the point that it just gridlocked and couldn't process anything anymore.. I'll look to limit dom0 to 2 cores, and see what happens if it doesn't just happen to work next time!

Thanks!

 

Seems like a reasonable solution.  A quick found that one site specified that it's got "No of Cores: 2 (2 logical cores per physical)" and newegg shows that it has 2 x 2MB L2 cache, which would also indicate 2 physical cores.

 

Good luck getting it going.

 

I'm starting to work on PCI passthru, but have to figure out what all the addresses of the components are first.  unRAID shows a list of all the PCI components, but I have to translate that into useful information before I proceed.

I've got the windows VM installed and running.  I've managed to install all windows updates and the gplpv drivers.  So far, so good.

 

Now, I want to try passing thru some PCI stuff, so windows has direct access to my...

 

TV Tuner

USB controller (keyboard, bluetooth mouse)

Video card (prefer the iGPU - HD4600, but assume I can only get the PCI card at this point - Radeon X600 SE)

Intel NIC

HD Audio (Creative Sound Core3D)

 

I think I have figured out which PCI addresses go with which devices, but I'm not sure if I need to pass i.e. the PCI slot AND the NIC to the VM, or if I just need to pass one of the 2 alone.

 

Attached is my PCI list, from unRAID, along with my analysis of what they are.  I'm not sure about all of these, so any suggestions on which to passthru are most welcome.

 

My plan was to start with this...

 

# VGA Passthrough Radeon X600 SE Video Card PCI Express x16 VGA card.

pci = [ '00:01.0' ]

# PCI Passthrough Creative Sound Core3D Device.

pci = [ '00:1b.0' ]

# PCI Passthrough of some USB Controllers.

pci = [ '00:14.0' , '00:1d.0' ]

# PCI Passthrough of Intel NIC

pci = [ '02:00.0' ]

# PCI Passthrough of TV Tuner Card

pci = [ '09:00.0' ]

 

Which didn't prevent Windows from booting, but I don't think everything passed thru correctly.  I've attached screenshots of Device Manager inside the Windows VM.  I'm still connecting to this VM with TightVNC from my laptop; not sure if that matters.

 

I'm not sure  where I've gone wrong, or how to perhaps better determine exactly which PCI addresses need passed thru.  I'm certainly open for suggestions.

PCI_list.jpg.6dd39cee70e223c0bbbba95e8929b3f8.jpg

Device_manager1.jpg.42af72411ded7df0b4359c3b7bebbb2a.jpg

Device_manager2.jpg.9ac0ca8c8f13cc16dcf96ee421e23918.jpg

I am getting this message after typing "xl create windows7.cfg"

 

Parsing config from windows7.cfg

WARNING: ignoring "kernel" directive for HVM guest. Use "firmware_override" instead if you really want a non-default firmware

libxl: error: libxl_create.c:416:libxl__domain_make: domain creation fail

libxl: error: libxl_create.c:644:initiate_domain_create: cannot make domain: -3

libxl: error: libxl.c:1383:libxl__destroy_domid: non-existant domain -1

libxl: error: libxl.c:1347:domain_destroy_callback: unable to destroy guest with domid 4294967295

libxl: error: libxl_create.c:1209:domcreate_destruction_cb: unable to destroy domain 4294967295 following failed creation

 

My Contents of windows7.cfg

 

name="Windows7"
kernel = 'hvmloader'
builder="hvm"
vcpus = '1'
memory=512
disk = ['file:/mnt/disk1/apps/VM/windows7/windows7.img,hda,w' , 'file:/mnt/disk1/apps/VM/windows7/Windows-7-AIO-SP1.ISO,hdc:cdrom,r']
vif = [ 'mac=00:16:3e:01:01:02,bridge=xenbr0' ]
boot="dc"
acpi = '1'
apic = '1'
viridian = '1'
xen_platform_pci='1'
sdl = '0'
vnc = '1'
vnclisten = '0.0.0.0'
vncpasswd = ''
usb = '1'
usbdevice = 'tablet'  
on_poweroff="destroy"
on_reboot="restart"
on_crash="destroy"

 

Does anyone know how I should proceed?

Well it is defiantly an issue with my test server. I just tried the same settings on my main server and installed Windows just fine.

# VGA Passthrough Radeon X600 SE Video Card PCI Express x16 VGA card.

pci = [ '00:01.0' ]

# PCI Passthrough Creative Sound Core3D Device.

pci = [ '00:1b.0' ]

# PCI Passthrough of some USB Controllers.

pci = [ '00:14.0' , '00:1d.0' ]

# PCI Passthrough of Intel NIC

pci = [ '02:00.0' ]

# PCI Passthrough of TV Tuner Card

pci = [ '09:00.0' ]

 

Did this work? From my understanding, each "pci" line you have above would replace the previous "pci" line so in effect, only your TV tuner card is going to be passed. You should provide them in a full list.

No, it didn't actually.  I'll try them in a list next time.  I'm still fighting with some other issues, and once that's resolved, I'll come back to the Windows VM.  I feel like I'm trying to 'fix' too many things at once, so I've put the windows on hold for now.

 

I did post some screen shots earlier of the windows device manager, and there was one device that was unknown, which certainly could have been the TV card.  I didn't bother trying to find the driver for it, since so much still needs to be 'fixed', I just let it be.

 

I will report back, however, once I'm back to work on this machine, and will hopefully get it all resolved.

I have the same unknown xen PCI device on my Windows Home Server installation and needed to install drivers for my USB PCIe card that I didn't need to install with Win8. I'll check to see if that same unknown device is in Win8.

 

I'm kinda ignoring it for now though, since the external USB drive was detected after the USB PCIe drivers was installed.

 

Well it is defiantly an issue with my test server. I just tried the same settings on my main server and installed Windows just fine.

 

Saw your figured out if you still need it I can share my confg file

 

 

Sent from my iPhone using Tapatalk

Well it is defiantly an issue with my test server. I just tried the same settings on my main server and installed Windows just fine.

 

If you haven't sorted this out, make sure the array is started and try it again.

I have the same unknown xen PCI device on my Windows Home Server installation and needed to install drivers for my USB PCIe card that I didn't need to install with Win8. I'll check to see if that same unknown device is in Win8.

 

I'm kinda ignoring it for now though, since the external USB drive was detected after the USB PCIe drivers was installed.

 

I have seen this exact same thing and have been struggling to figure out exactly what it is because it doesn't show up all the time for me in testing on different systems...

 

Sent from my Nexus 5 using Tapatalk

 

 

  • 2 weeks later...

I just made good progress on passing thru a few devices to my Windows 7 VM, and all devices were recognized and Windows automatically installed all drivers.

 

However, I still have the same Xen pci device #0 with the yellow warning triangle showing up in device manager.

 

One of the devices I passed thru was a single USB device (ASMedia Technology Inc.), which is actually my USB3 controller, like so...

 

usbdevice = [ 'tablet','host:174c:3074' ]) 

 

This, in turn passed my wireless mouse dongle, a bluetooth dongle and an external hard drive I have connected to my USB3 slots.

 

The other things I passed thru are PCI devices, passed thru by address, like so...

 

pci = [ '00:14.0','02:00.0','09:00.0','00:1b.0' ]

 

These are my a USB controller (which then passed a connected keyboard thru to windows), an add-on NIC, a TV tuner card and my onboard Sound device.

 

Everything but the USB3 controller was picked up by windows and installed correct drivers.  I had to manually install the USB3 driver, but that worked fine also.

 

The only thing not recognized is the Xen pci device #0 that has been there since I first got the Windows VM running.  I can't find anything to identify what it actually is, so I can't install any drivers for it.  I suspect it's coming from unRAID's implementation of XEN, but beyond that, it's a mystery.

The only thing not recognized is the Xen pci device #0 that has been there since I first got the Windows VM running.  I can't find anything to identify what it actually is, so I can't install any drivers for it.  I suspect it's coming from unRAID's implementation of XEN, but beyond that, it's a mystery.

I see the same thing with WHS2011 (Win7/Vista base).  Am planing on a WHSv1 VM so that I can access OLD backups but don't expect that VM to be running maybe ever after the install.  I will see if I see the same thing in WHSv1 (WinXP base).

Archived

This topic is now archived and is closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.