Switching to Bazzite Linux
…a cautionary tale. And also completely my opinion.
Motivation
I’d finally had enough, one day, browsing my own PC. I accidentally clicked on the “OneDrive” advertisement, added just to the left of the file/folder path in the file explorer window. I had opted out of OneDrive, so instead of taking me to the parent folder, it tried to get me to sign up. The endless reminder popups weren’t enough for Microsoft. Oh, and the Nahimic service reinstalled itself, again, thanks to Windows update (“Nahimic is literally malware”, “Nahimic is malware”, “Nahimic service is a virus” — it repeatedly reinstalls itself thanks to how the Windows update anti-feature works). And I was already wary of my own PC, since I had installed games like Valorant and Marvel Rivals (kernel-mode protection via a VMProtect-obfuscated driver) that use kernel-level anticheat. Windows itself integrating copilot + replay, recording everything you do on your PC for anyone to steal. In addition to all this, I used to game from Ubuntu Linux for a time. I switched back to Windows when I upgraded my PC partly because it was pre-installed, and I wanted things that “just work”, unlike how Microsoft butchered Windows search from the start menu so it takes five-ever top open and find things that are literally on your desktop, because it has to search the web first. Or how Microsoft’s inconsistent UI strategy, prevalent both in my professional career (ie XAML, WinUI, MAUI, etc.) and personal life (which version of control panel do you need to change this setting?). Did I mention how they have ruined local-only accounts time and again for everyone but enterprise/pro users? Sure, it’s kind of a meme, but why does “notepad.exe” or “mspaint.exe” need a login prompt?
Windows 7 was the last great operating system developed by Microsoft. Windows 10 came close.
Anyway, this entire blog post is written in retrospect, as I documented to process pretty thoroughly.
The Plan
After using AI agents in professional work, I decided to have one make something similar to an “AGENTS.md” file for my own system, and do thorough research for each hardware component to determine Linux compatibility, potential gotchas, and follow-up things to watch out for. I had a plan — I would backup all of my nearly 2.5TB of steam games, photos, documents, personal projects, etc. to an external harddrive, shrink the Windows NTFS partition, install Linux side-by-side, ease into things and work out any kinks, then eventually reclaim all of the space for Linux. I will admit right now, a lot of things have changed since I last built my own PC.
All that was missing was the external harddrive.
Wrestling control from Windows
Yes, I know. It was incredibly stupid of me, in spite of all warnings not to, to try and shrink an NTFS partition — my OS partition — without a proper backup. Do not do this. But, in spite of my stupidity, I feel that it may be worth something (a laugh, perhaps) to share the experience with anyone considering the same.
I had Anthropic’s Claude on my side. I researched gaming-oriented distros compatible with my system, and chose Bazzite, built on Fedora, for several reasons. The immutable updates, baked-in patches, even a spin for developers who want to develop games. I was going to dual-boot anyway, so if I didn’t like it, I could just switch to Ubuntu, plain Fedora, Pop OS, etc.
“Okay now please give me up front instructions for this process. I want to take my single hard drive that is running Windows on my desktop gaming PC, and set up dual boot with bazzite on it, leaving the windows partition as-is.” I told Claude.
Phase 1 was to shrink the NTFS partition. But, Windows does not make this easy. There are files Windows cannot move while it is running, such as PageFile.sys and System Restore files. Claude instructed me to run “powercfg /h off” which disables hibernation. Disable secure boot, which allows booting from unsigned Linux images (ie ones not blessed by the manufacturers that worked with Microsoft to create secure boot), suspend or disable BitLocker-encryption (it’s much easier to “un-screw” things if something goes wrong if the drive isn’t encrypted), turn off “Fast Startup” (where Windows stores unmovable files that it uses to boot faster) and flash the Bazzite ISO image to my 16GB USB drive.
“I don’t see where to change fast startup” I told Claude. “You’re in the right area but wrong page. The Fast Startup toggle isn’t in the modern Settings app — it’s buried in the old-style Control Panel power settings. Here’s how to get there:” it replied, because of course it isn’t. But it wasn’t in the other place I was told to check, either:
“That confirms hibernation is already disabled on your system — the “Turn on fast startup” checkbox only appears when hibernation is enabled, so you’re good on that front. Fast Startup isn’t active.” Claude told me. How intuitive.
Thinking I had all the settings in place I needed, and after ensuring I had over 1.2TB of space free, I decided to see how much Windows would indicate I could shrink the drive.
Claude was not surprised, “Yeah, that’s the classic “unmovable files” problem. Windows is only offering you about 53 GB of free shrink space because system files (page file, hibernation file, shadow copies, etc.) are sitting near the end of the partition and can’t be moved by Disk Management.”
Like a noob, I had neglected to actually disable the page file. So I opened the System Properties > Performance Options > Virtual Memory screen and… it was all greyed out.
“You need to uncheck that “Automatically manage paging file size for all drives” checkbox at the top first. That’s what’s greying out the options below it. Once you uncheck that, the “No paging file” radio button and the “Set” button will become clickable.” Claude told me. Well, okay, that’s fair.
I disabled the page file, rebooted, and got the exact same result from “Disk Management”. I decided to let claude try and tackle the problem using the console AI agent directly. Of course it chose PowerShell, a pretty decent scripting language by Microsoft, which required adjusting some policies to allow me to run scripts in it.
Claude informed me that BitLocker was turned off, my page file showed usage of 0 bytes, although it was still registered (ie in the Windows Registry) even though it wasn’t in use. Claude suggested running a defrag operation. Even after another reboot, I still got the same result. At this point, even the robot had run out of options. It suggested that, since I had already written the Bazzite image to my USB key, I could just boot off of that, and use GParted (the Linux partitioning tool) to shrink the partition, “GParted can move those unmovable NTFS files and shrink the partition properly,” it told me. It also suggested the Bazzite installer itself can resize NTFS partitions (press “X” to doubt, especially as you’ll see later in this post) during the install process.
Booting from the Bazzite USB Key
But how would I boot to the USB key? Rather than mash random combinations of “Escape”, “F2”, “F12”, etc. at boot time, I had claude look up specific instructions for my motherboard. “F2” took me to a “windows recovery looking screen”, and “F12” let me actually select the boot device.
One thing I hadn’t mentioned before — I used Rufus, a tool I’ve used many times in the past — to burn the ISO. Yes, this caused problems.
When I got to the boot device selection, I saw two partitions on the USB key. I chose the first one, which dumped me to a grub terminal.
I tried both partitions, neither worked. I decided to leverage claude’s help to navigate the grub terminal and see if we could diagnose what was wrong.
Claude started to pick up on the issue, “Alternatively — this might be a problem with how the USB was flashed. How did you create the Bazzite USB? If you used Rufus, it may have written it in a way that doesn’t boot cleanly on this system. Fedora Media Writer or Ventoy tend to work more reliably for Bazzite ISOs. If we can’t get GRUB to cooperate, reflashing the USB might be the faster fix.”
Facepalm. Yes, I had made it with Rufus, I told claude, the same way I had burned ISOs for many years.
“That confirms the problem”, Claude responded, “this USB was flashed with Rufus using its “UEFI:NTFS” method, which splits the ISO into an NTFS data partition (gpt1, which GRUB can’t read — “unknown filesystem”) and a tiny FAT32 EFI boot shim (gpt2). That shim is what’s been loading, but it can’t find the actual live image because GRUB doesn’t have an NTFS driver in this context. You need to reflash the USB.”
Apparently I needed to flash the USB key using Rufus’ “DD” mode, which it doesn’t ask about until you hit “start”, and change the partition scheme from “MBR” to “GPT”, and ignore that under “Format Options” it still says “NTFS”.
Anyway, once I had reflashed, which took quite awhile in DD mode which is much, much slower, I was finally at the “gparted” screen. On opening gparted, I started to notice one of many UI bugs I would encounter throughout the process with Bazzite. I hoped this was just a small, one-off anomaly of the installer theme, but the buttons at the top of the gparted program were unreadable unless I hovered over them. Even so, I had read many anecdotes of people using Bazzite flawlessly and with great joy.
I started the shrink operation. It failed in about 12 seconds.
GParted did offer a place to get community support, which, of course, also did not work.
GParted actually completely froze at this point and couldn’t be closed.
Get K’s stories in your inbox
Join Medium for free to get updates from this writer.
“The error happened during the ntfsresize filesystem check step — it failed within 12 seconds, which means it didn't actually modify anything yet (it checks before resizing). Your data should be safe.” Claude assured me. It suggested that the NTFS filesystem was likely marked “dirty” by Windows, which is a thing Windows has long done when, for example, you don’t completely shut it down straight from Windows (as opposed to simply rebooting from Windows). Claude suggested a chkdsk (“check disk”) of my C:\ drive and then a full shutdown using shutdown /s /f /t 0, then to try again with gparted. Of course, chkdsk can’t run or fix things while Windows is running, and has to be scheduled for yet another reboot.
After the chkdsk and complete shutdown, a second attempt with gparted succeeded. I went with a more conservative 794GB of space. It would still be plenty for experimenting, installing some games and testing things out. GParted was now showing all of that space as unallocated. Yay!
I kept Claude up-to-date. “The hard part is done.” it told me, “Now close GParted and launch the Bazzite installer — it should be on the desktop or in the app menu, called “Install to Hard Drive” (Anaconda).””
I picked the options equivalent to sharing the disk with the other operating system. Unfortunately, what I selected did not work.
Claude suggested this error was likely due to my EFI SYstem Partition being too small. With Claude’s help at the terminal I was able to prove that guess wrong. “The ESP is 260 MB with 201 MB free — that’s actually plenty of space. So the ESP size isn’t the problem.” But no matter what options I tried, the Bazzite installer continued to fail to install.
Claude had some more suggestions to try. I could manually partition the unallocated space from the terminal, which required precise commands utilizing the “parted” (partition editor) CLI.
With manually provisioned partitions, the installer was finally able to get paste the partition wizard section, and proceed quite a bit further, until…
This is where things were about to really go wrong.
“The error is that Bazzite’s installer script is trying to run e2label (an ext4 tool) on a BTRFS partition, and it's failing because the filesystem isn't ext4. The script expects to label a boot partition called bazzite_xboot but can't because we skipped the /boot partition.” Claude offered helpfully.
I was determined to finish this before I had to sleep and work a full day the next morning. A few more partition commands later and I got even farther with the installer only to be met with another error message.
I actually tried pressing “Report issue”, figuring this could potentially help other users or the maintainers. I was prompted to create a redhat account. I obliged, only to be met with a 404 / not found screen. There seemed no way for me to submit anything related to my issue, so I moved on.
Claude was suggesting I install using the terminal, bypass the GUI installer and use Anaconda from the CLI. At some point, I rebooted again and … Bazzite started to boot up from my harddrive! Wait, what? The installer had never fully succeeded. “That’s great — you’re running Bazzite from the NVMe!” Claude responded.
I decided to setup a few things — like Firefox, which apparently wasn’t installed and has to be setup via the flatpak store which is … a choice. I setup a few more programs and logged into Steam. Things seemed to be working great! It was Claude who became the harbinger of reality.
“Also — one important thing: did you see a GRUB menu on boot with both Bazzite and Windows as options? We should confirm dual boot is working before you get too deep into setup.” it prompted me. Yeah, it was getting late and it was right. The GRUB menu had flown by so quickly I wasn’t sure what the options were. A few commands later and I found that although Windows EFI was present on the boot partition, grub wasn’t finding it, at first. After a few more commands, including grub2-mkconfig I had Windows appearing in the list. Now for the final test, I thought.
“Don’t panic”
Windows refused to boot. Yes, I know. It was incredibly stupid of me. And now I would have to solve these problems the hard way.
“Don’t panic” claude literally told me, “this is almost certainly because we disabled the page file and System Restore earlier and never re-enabled them, plus Windows may be confused by the modified partition layout. Your data is fine… The most likely fix will be running: bootrec /fixmbr , bootrec /fixboot, bootrec /rebuildbcd”
A chkdsk and several bcdedit commands later revealed that Windows could not find the “winload.efi” file, required to boot to my Windows partition. “Let’s rebuild the EFI boot files” claude suggested. A few exchanges later, I told claude, “It said failure when attempting to copy boot files.” Claude suggested maybe the EFI partition wasn’t mounted properly. I switched some drive letters around, tried a few more things… and at one point mounted what claude and I both believed was the “real Windows partition” of 2929GB. That partition only showed a “WINDOWS” folder, which was almost completely empty. And it had ~3,145GB free.
“This is concerning.”
Claude was in disbelief, “This is concerning. The actual Windows NTFS partition with your data might not be getting a drive letter. Let’s look at all partitions on the disk:”
As we continued to confirm without a doubt that the files would not show up from the Windows recovery console, Claude seemed to get more worried.
I had claude walk me through using testdisk, which I had used before, many, many years ago to recover a partition that had been lost but not overwritten. I was hoping that would be the case here, too. It took a long, long time for testdisk to scan the entire 4TB harddrive. I had to go to sleep.
Claude told me not to panic even then, in spite of its “concern”.
testdisk only seemed to find empty partitions. The partition data for the NTFS filesystem seemed to have been destroyed. At this point, claude was resorting to suggesting photorec which can recover files from an NTFS partition whose partition table has been destroyed, but only certain file types, and without their folders or filenames. On a very large drive like mine, I’d be swimming through an ocean looking for needles of data. It would take weeks if not longer to find important files. I was pretty stressed and disappointed, and largely with myself for being so careless.
To no one’s surprise at this point, ntfsundelete returned zero recoverable files. I was a little surprised how empathetic claude projected itself to be. “I’m really sorry about this.” claude said, “Let’s get as much back as we can.” I hadn’t told it how disappointed I was, or complained at all. It was a pretty unemotional back and forth from our conversation history.
Claude cautioned me not to write anything more to the drive if I could help it, as I might overwrite some of the files, especially given the way SSD harddrives work, writing in random places to spread out the wear and tear.
By this time I finally had an external harddrive to backup to, and went ahead and ran photorec to recover what I could, dismayed that I might be spending the next month looking for important PDF and XLSX files.
“It’s showing files being restored — but is this the best way available? What other options might I explore to restore my NTFS files?” I asked claude. I did my own research, too.
I decided to try DMDE, which has a free tier, worked on Linux (the only system I could boot to now), is cheaper than some other options as of this writing, and if it worked, I could purchase the full version and recover more files and folders. Claude helped walk me through the process, since DMDE was a tool I had never used before. And, sure enough, it worked. It took hours and hours to transfer over a terabyte of files, but I got all of the important ones recovered and transferred to the external USB drive, finally. I tested several of them and found them to be intact.
I decided it would be difficult to get Windows running again and would probably require a reinstall, which would mean setting up all of my programs and settings again. Instead, I reinstalled Bazzite again, giving it the entire 4TB disk, which went much smoother than attempting to customize the partitions.
Unfortunately, this wasn’t the end of my issues, but fortunately the rest were minor in comparison, if quite annoying. I plan to write about those in the future when I have time. I am still happily using Bazzite, even if, like most desktop user-friendly distributions, it could use some polish here and there.
Painful lesson learned. Backup your files before trying to shrink an NTFS partition, even if this worked once before without issues many years ago, and even if you write software for a living and have built your own PCs in the past, switching can be harder than you’d think without a backup plan.








