Resize Disk for Windows VM in Unraid

Whenever I create a VM, whether it be within Unraid or otherwise, inevitably I create it with a disk that is too small for its intended purpose. Often, I will create it to test things out, like AMD Passthrough in Unraid, with only a small enough disk to do the testing I need to. However, these experiments, once functional often grow into something that you wish to use for other purposes. Once that happens, the 40G virtual disk you created to just hold Windows, drivers, etc. becomes drastically too small. Luckily these are virtual disks, and can be expanded arbitrarily quite easily… unless you’re using Windows.

There are two basic phases of expanding a disk in Unraid + Windows. First we’ll tackle the Unraid portion, which is pretty simple. Then we’ll handle the Windows portion, since it requires you to move the recovery partition it includes, which requires a quick explanation.

AMD Passthrough in Unraid

XFX Radeon RX 6800 QICK 319
XFX Speedster XICK 319 Radeon RX 6800 Black

Recently, I tried my iRacing / NAS rig in VR with an Oculus Quest 2 that a friend of mine brought over. However, after fiddling with some settings to make it not look like crap, it seems like either the CPU (hopefully fixed here) or the current 1080Ti is holding it back. Though I would love to upgrade to a 30-series Ampere GPU, the new Navi AMD GPUs are actually better at traditional rasterization workloads (at least per dollar). Given the 1080Ti’s performance, it’s actually quite difficult to beat it on any sort of budget. However, really any GPU is hard to come by these days as we’re in the midst of a global silicon shortage. Luckily, I was able to get my hands on an XFX Speedster XICK 319 Radeon RX 6800 Black from Best Buy with 10 windows open, wildly refreshing during Best Buy’s last restocking. Unlike the nVidia GPUs, however, AMD’s have been previously plagued with a reset bug which requires rebooting the host OS when the guest is shutdown / booted up. Combine this with the RX 6800s being quite new, there’s a few complications involved in getting Unraid AMD passthrough running.

Read More

Zen 1 Turbo Boost in Unraid

Zen1 Logo (AMD)
Ryzen 7 1700 (Zen 1) on Unraid

One of the most frustrating things that has plagued my Unraid gaming VM setup has been that it doesn’t seem up to snuff when running games like iRacing. This as well as other single-threaded operations seem to run at a snails pace compared to what I’d expect. It turns out, this is partially a problem with AMD’s Zen 1 architecture compatibility with Linux. Unraid does not like to work well with the Zen architecture’s C-states, which must be disabled in the BIOS for system stability. However, doing so also seems to affect its Turbo Boost capability, as it will not single-thread boost up to the rated 3.7GHz. I’ll walk through what I did to enable, or work around at least, Zen 1 Turbo Boost in Unraid.

Read More

X370 Motherboard PCI / IOMMU Mapping

MSI X370 Gaming Pro Motherboard
MSI X370 Gaming Pro Motherboard

Since the NAS was going to be a typical tower and in the living room, the overarching goal was to make it also have the functionality of a gaming PC. To get true USB Hot-Plugging will require us to pass through an entire USB controller just like we did the Pascal GPU. We’ve covered the basics of IOMMU groups, and most server / workstation hardware (CPUs, motherboards, and chipsets) would make this pretty easy. However, I put this together out of older hardware I had laying around. Specifically, I have a Zen 1 Ryzen 7 1700 dropped into an X370 motherboard (MSI X370 Gaming Pro). Since all this hardware was made for “consumers”, the designers did not put a lot of thought into how things can be isolated and virtualized. So, the next step I need to take is to map all the IOMMU groups to actual devices on the motherboard.

Read More

Unraid PCIe and IOMMU Groups

Passing through a GPU on Unraid is usually a pretty easy task. Issues are easily solved as long as it’s in one of the “GPU” / main PCIe slots on most motherboards. There are some issues using it in the primary slot which are easily overcome. I discussed in my unRAID Pascal GPU Passthrough guide. However, for more advanced setups, you’ll need to start passing through other PCIe devices to virtual machines. This starts to get a bit more tricky and the many guides have some shot-gun approaches to solving the problems associated with these advanced setups. In order to maximize system stability, you’ll want to avoid these shot-gun approaches and the pitfalls associated with them. In this post I’ll give you a basic understanding of PCIe and IOMMU groups. Then discuss one of the more commonly touted “solutions” and the pitfalls associated with it.

Read More

Unraid VM USB Hot Plug

Windows Device Manager with USB Devices
USB Controllers in a Windows VM

Once you have basic GPU passthrough configured, you can get near bare-metal performance in a VM on Unraid using KVM under the hood. However, one thing that is a little awkward are USB devices. The host, in this case Unraid, owns, initializes, and configures USB devices by default. This gets even more complicated when you consider that Unraid boots off a USB device rather than another drive in the system.

Here we’ll look at how you can get close to hot-plugging USB devices into a VM. In a future post we’ll take it a step further to get near-baremetal functionality just like we did with the GPU.

Read More

unRAID Pascal GPU Passthrough

I decided recently to move on from my Synology NAS as the core storage / server device in my network infrastructure. I have re-purposed my previous gaming machine to become a heavier-duty server. There will be more to come on this setup later. I chose unRAID because I wanted it to also serve dual-duty as a living room gaming machine. One of the major advantages of unRAID is that it provides a good front-end to KVM virtualization under the hood. In order to enable nearly bare-metal performance on a VM, you have to direct-pass through a GPU to the VM. However, as we find this is not straightforward with nVidia cards.

Read More

Houston Racing Events Calendar

As I mentioned in my Motorsports Beginning post, one of the hardest challenges I faced in getting into this hobby was the fact that I just didn’t know all the racing events in the Houston area. Specifically,

  • What kind of events were there?
  • What organizations hosted them?
  • Where around Houston did they occur?
Houston racing events calendar including autocross and hpdes.
Zack Barnes at an SCCA Autocross at the Houston Police Academy (Courtesy: Racer.com). One of the events on the Houston Racing Events Calendar.

Eventually, through the help of the friends I met at the beginning of it all I was able to start putting together those lists of organizations in the area. I started to learn their pros, cons, culture, and the types of events they hosted. They all independently posted the details, so it was hard to piece together myself at first. To solve this problem I created a public Google Calendar that I could consolidate the information for myself and others:

I focused on two specific types of events, namely:

  • Autocross – these are cheaper per event and safer to run for beginners.
  • HPDEs – these are faster, traditional road-course events but challenge both the car and body more.

Since I curate this calendar myself, it may not always be the most up to date. I at least try to do it every quarter or whenever I find new information. I’ll probably compile a list of the organizations that run events in the area in another post.

The Motorsports Beginning

After I set my 30 by 30 Travel Challenge goal, I also decided to finally do one of the things that I always wanted to do: Motorsports. I always perceived there to be three major roadblocks, though:

  1. I still owed a bank for my current daily driver
  2. It’s expensive, right?
  3. Where do I start?

I self-imposed the first roadblock on myself: I didn’t want to put my car at risk while a bank still owned it. The second I found to be only as true as you want it to be. The last one was a tougher nut to crack in isolation, however. That is, until a friend of mine asked to stay on my couch one night.

Read More

The 30 by 30 Challenge

Air travel would be required to visit 30 countries by the time I was 30.

At the end of 2014, I was going through quite the tumultuous transition; I was reinventing myself. Luckily, my short term and long term goals were pretty well understood. But part of what I lost was my medium term goals, the 5 year plan as it were. However, I met some amazing people during that time, including Jess of FullCircleJess and STEM Journeys, and Jason of The Windy Sailboat. Through many games of Scrabble and many bottles of wine among friends, I finally arrived at my 5-year plan: I would challenged myself to visit 30 countries by the time I was 30. The 30 by 30 challenge it was called, and I had just over 5 years to do it.

Read More