Windows Licensing is a Mess!

Good Morning from my Robotics Lab! This is Shadow_8472 and today I am exploring the notably hostile environment of recycling old Windows keys. Let’s get started!

Among my long-term projects box is a retro gaming VM running one or more old versions of Windows. How hard can it be to move an installation legally?

VM: Virtual Machine

Very.

What is a Computer?

I grew up on Windows. Our tech stockpile has no shortage of outdated machines or extracted hard drives with valid installations of the operating system. Surely, there should be nothing wrong with playing Musical Chairs with components until I have something that meets my needs. Microsoft’s licensing doesn’t work that way.

I feel like Moses proclaiming, “Let my people go!” to Pharoh with the way nostalgia of boyhood intermingles with a starkly contrasting mission. The worst I’ve had Linux complain about hardware is when I duplicated a Debian drive and GRUB got upset over a UUID mismatch (it remains unaddressed to this day). To illustrate: I’ve had three Windows XP installations sitting around for years – one on the Old Church Computer I’ve been featuring lately and a couple pulled from other machines. I tried booting one of the pulled drives with the Old Church Computer, and the obtuse operating system asked for its installation disk before it would consent to my game of Musical Chairs. For all intents and purposes, Windows figures your computer is your motherboard because that’s most involved part of the system.

UUID: Unique Universal IDentifier – a [hopefully] unique number for identifying hard drives

Product ID’s and Keys

Major versions of Windows are were sold through different channels under different licensing terms. The important variations today are between Retail, OEM, and Volume. A Retail/“full version” (usually bought off a store shelf) follows the owner, entitling him to a single Windows workstation. OEM licenses offer some marginal savings in return for the license following the hardware; factory OEM’s will flash a system’s key into the motherboard’s BIOS. Volume licenses are sold with bulk in mind; one key can activate as many installations as its organization paid for, but if individual computers are ever sold off, the license stays with the organization. Each of these classifications have multiple channels each as identified by a triplet of digits in the Product ID [1].

The main event this week is a software tool called NirSoft [2] that scans Windows’ registry (or a mounted installation of Windows) and extracts product ID’s and activation keys for both Windows and a small selection of other software. From the three readily available installations of XP, I recovered two OEM type keys and one 011 type (upgrade to XP Home Edition) [1]. Luckily, a matching upgrade CD recently turned up.

Takeaway

I counted four different ways I could pirate Windows XP with the tools I have. I may frown on Microsoft’s data-gobbling and competition crushing policies, but I respect them enough to keep it to name calling in unprofessional venues. Even if I did steal and post about it, I doubt it would be worth their time coming after me. I’m doing this 100% legit to the best of my ability, and I’d encourage anyone looking to make a similar VM to practice integrity as well.

Final Question

Unless I can also scrounge a retail Windows 95 or 98 disk + key, I can’t install XP fresh. My tentative plan therefore is to move the existing retail installation over to a VM and situate it with the matching CD I found. My one concern at the moment is weather the XP upgrade license overrides or augments whatever underlying license, which may be an unmovable OEM license. I don’t know if I can even tell. Am I safe to proceed?

Works Cited

[1] Lunarsoft Wiki, “Product IDs,” wiki.lunarsoft.net, Nov. 7, 2016. [Online]. Available:https://wiki.lunarsoft.net/wiki/Product_IDs. [Accessed June 19, 2023].

[2] N. Sofer, “NirSoft,” nirsoft.net, [Online]. Available:https://www.nirsoft.net/. [Accessed June 19, 2023].

Building A Fake Computer to Split

Good Morning from my Robotics Lab! This is Shadow_8472 and today, I am building a Linux virtual machine for my mother and sister to split. Let’s get started.

Machines Within Machines

Switching operating systems is like moving to a new house. It’s intimidating. Things are arranged in different spots. The pattern of your daily life will shift and there will be an uncomfortable adjustment period.

But at least with computers, anyone with a semi-recent CPU and enough other system resources can host a “guest” operating system for evaluation. While I previously have no experience with this method, for others, it serves as a sandbox where they can try things with Linux without the pressure of learning everything at once or else risk being out a computer if a problem commands a chunk of research time.

VirtualBox

I’ve done my share of research on Virtual Machines (VM’s) in the past. VirtualBox is a well-respected name, and I can see why. Once I installed it on my sister’s Windows machine, I didn’t have to research anything about it specifically until I was looking at a desktop and my sister wanted the VM to use both screens. Otherwise, the experience was intuitive.

PopOS is quickly becoming my go-to easy mode for Linux. Their downloads come with shasum verification hashes, which I made use of. In one way, it was even easier to install because I could just install straight from the disk image without any physical install media. I did have one problem during installation where the installer window rendered larger than the screen resolution. Instead of brute forcing a virtual screen size from VirtualBox, I just used Super (Window key)+click&drag as I learned to do while working with GIMP on a boxy tube monitor with a similarly nostalgic resolution.

Dual screens had me stumped on their instruction set. From what I can tell, I had to insert a virtual CD that came with VirtualBox and install it into PopOS’s virtual disk drive. A bit of computer wizardry happened that involved some sudo password prompts that crashed and duplicates thereof happened and I seemingly needlessly rebooted the VM several times before I unlocked the necessary options to enable dual screen. I will want to pay more attention next time.

The default desktop environment for PopOS was based on GNOME 3, but it’s not for us. System76, the makers of PopOS provided an awesome command by command guide for installing a large selection of alternate desktop environments, so I loaded a few my mother and sister should feel most comfortable with. KDE is my favorite, but Cinnamon and MATE are other names I recognize.

Speaking of KDE, If Linux is the OS of customization and decision fatigue, KDE compliments it perfectly. I spent more of my blog project time this week trying to chase down the color settings than I would have liked. I was hoping for some sort of base color picker that would then populate the rest of the theme with different shades, but I found some options to pick each shade individually. Unfortunately, you’d have to be an artist to make something that looks decent. I was able to find a user-submitted theme with an acceptable color palate.

Side Project

My Manjaro workstation has been getting its Internet through a Raspberry Pi for a while now, but lately I’ve been getting periods of having the Pi’s Wi-Fi connection drop randomly. My father picked up a special gaming Wi-Fi router and I set it up today after months of other projects constantly taking priority. Long story short: I was easily able to use my laptop to connect and arrange default configurations on the router, but I have yet to get it to agree with the Pi 4. I’ve tried looking into possible inherit compatibility issues, but all the guides for finding information on Wi-Fi from Linux assume the presence of tools that aren’t present in Raspian. I thought this was small enough for a side project, but it appears I was wrong.

Takeaway

Setting up a new computer and getting it tweaked properly takes a while and a VM is no exception. One point I didn’t go into was how our NFS drive didn’t admit the VM on account of its IP address. I also learned that one of the intended host machines sits a little too heavy on its existing RAM, so it will need an upgrade for comfortable VM operation. I expect a follow up to this project at a later date.

Final Question

Do you have any tips for working with virtual machines?