Dual-booting Windows 11 and Windows 7 on a Haswell

I have a Haskell-era MSI B85-G41 PC Mate motherboard and I decided to use it as a “mid-tier”-ish gaming PC and also as a TV set top box. I already had a WinTV-DCR-2650 dual-tuner CableCARD USB device, and I was gifted a Nvidia GeForce RTX 3070 for the project. The board had 32 GB RAM when I decommissioned it in 2019 as the Adélie x86_64 builder, so memory was not a concern.

My goal is to use Windows 11 for gaming, and Windows 7 Media Centre for the TV support (since Cox Oklahoma uses encryption for virtually all channels).

The problem is that Microsoft dropped support for Windows 7 long before this hardware existed, so it is difficult to boot on it. Also, Windows 11 doesn’t officially support Haswell, either.

Windows 11 was trivial to install in all honesty. I used Rufus to put the installer for Windows 11 on a USB disk, then followed the suggestions from this article in Tom’s Hardware and it installed quite nicely. It is performant, stable, and even still does Windows Update.

Windows 7 was significantly more difficult. I used Rufus again and ensured it used GPT and UEFI. It locked up early in boot. I found the UEFISeven project which seemed to make things somewhat better, but it never finished booting beyond “Starting Windows”. The Windows logo continued to pulse, but after 15 minutes I gave up. I found an issue on the UEFISeven tracker and despite my trepidation on running unknown binaries for booting, putting it in the USB stick managed to boot Windows 7’s installation environment successfully.

Next, while performing the installation, the system had a STOP 0x7E in HIDCLASS.SYS. This appears to be a very classic bug and it’s caused by using a Microsoft Wireless Keyboard/Mouse. (Irony as a MS hardware product crashes MS Windows…) Replacing them with (even more ironically) an Apple Pro Keyboard and Mouse allowed setup to continue.

The next problem was actually dual-booting. If I use the patched Windows 7 boot EFI application as BOOTMGFW.EFI, Windows 11 doesn’t boot; it seems to load all the files, but stays at a black screen. If I use Windows 11’s BOOTMGFW.EFI, Windows 7 no longer boots.

I’ve made a small batch script on the desktop of each one to reboot to the other. The 7->11 script renames BOOTMGFW.EFI to BOOTMGFW.7, then renames BOOTMGFW.11 to BOOTMGFW.EFI. The inverse is done for the 11->7 script. Note that you have to mount the ESP first, which is done (in both OSes) as “MOUNTVOL S: /S”. You can use any available drive letter.

I used LegacyUpdate.net to fetch and install all the needed updates for Windows 7. I still wouldn’t trust it unprotected on the “real” internet, but I’m comfortable enough with it sitting on my home network this way. Kudos to that team for making such a useful and valuable service for all retrocomputing enthusiasts!

Expanding the Retro Lab, and Putting It to Work

Over the past month, I have been blessed with being in the right place at the right time to acquire a significant amount of really cool computers (and other technology) for the Retro Lab.

Between the collection I already had and these new “hauls”, I now have a lot of computers. I was, ahem, encouraged to stop using the closets in my flat to store them and finally obtained a storage locker for the computers I’m not using. It’s close to home, so I can swap between what I want to work on virtually at will.

Now I am thinking about ways to track all of the machines I have. One idea I’ve had is to use FileMaker Pro for the Power Macintosh to track the Macs, and FoxPro to track the PCs. One of my best friends, Horst, suggested I could even use ODBC to potentially connect the two.

This led me to all sorts of ideas regarding ways to safely and securely run some server services on older systems and software. One of my acquisitions was a Tyan 440LX-based server board with dual Pentium II processors. I’m thinking this would be a fun computer to use for NT. I have a legitimate boxed copy of BackOffice Server 2.5 that would be perfect for it, even!

Connecting this system to the Internet, though, would present a challenge if I want to have any modicum of security – so I’ve thought it out. And this is my plan for an eventual “Retro Cloud”.

Being a cybersecurity professional, my first thought was to completely isolate it on the network. I can set up a VLAN on my primary router, and connect that VLAN to a dedicated secondary router. That secondary router would have total isolation from my present network, so the “Retro Cloud” would have its own subnet and no way to touch any other system. This makes it safer to have an outbound connection. I’ll be able to explore Gopherspace, download updates via FTP, and all that good stuff.

Next, I’m thinking that it would make a lot of sense to have updated, secure software to proxy inbound connections. Apache and Postfix can hand sanitised requests to IIS and Exchange without exposing their old, potentially vulnerable protocol handlers directly to the Internet.

And finally, as long as everything on the NT system is public knowledge anyway – don’t (re)use any important passwords on it, don’t have private data stored on it – the risk is minimal even if an attacker were able to gain access despite these protections.

I’m still in the planning stages with this project, so I would love to hear further comments. Has anyone else set up a retro server build and had success securing it? Are there other cool projects that I may not have even thought of yet? Share your comments with me below!