Last modified: Sat Jan 15 17:17:55 EST 2022
Most of these notes originated with my installation of Windows 10 Technical Preview in early 2015. I revised them to correct outdated details after installing later revisions in October 2018 and January 2022. I use W10 only for video games. Your requirements may vary.
While Windows 10 is not the full repudiation of Windows 8 that all sane users hoped for, it is definitely about damage control. The Metro BS is still there, but instead of replacing the entire desktop it just takes over the left-click menu of the start button which is now a window icon thing with no name. More familiar stuff is on the right-click menu.
This option will probably go away now that they are on to Windows 11, but for some time in history, signing up with Windows Insider got you a free installation of Windows 10. It was a full-blown, bloated edition which came with mandatory telemetry and constant, massive updates. These updates were gigantic and I was always waiting on them to finish when I didn't have time for it.
Alternatively, with an activation key from Windows 7 or 8 you can install Windows 10 Home edition. This strips out the "enterprise" components and gets you on the slow, stable updates channel. If you have a spare Windows license laying around and don't enjoy watching reboots and progress bars, this is a better experience.
W10 continues the post-2000 Windows tradition of celebrating each reboot by launching a hundred disk-intensive threads at once and letting them fight a battle royale for I/O bandwidth. I have tried it on a relatively good spinning rust hard drive and it is unplayable. It takes forever to boot and settle down enough to run something other than its own useless overhead. All they had to do was copy a competent open-source I/O scheduler from Linux; but since they didn't, an SSD is effectively required.
The minimum practical SSD size for W10 and a few games is 500 GB. It's easy to fool yourself with a smaller SSD, where you think everything is installed and working, but then Windows updates start failing for lack of space and it all ends in tears.
Hibernation mode automatically grabs an amount of space equal to the
amount of system RAM. To disable hibernation and free up that space,
run Command Prompt as Administrator and do powercfg -h off
.
Making it hard for people who don't already have Windows running to install Windows seems like a self-own for Microsoft, but that's exactly what they did. To make a bootable USB flash drive, you are supposed to use the Media Creation Tool, which runs only on Windows:
"You've been routed to this page because the operating system you're using won't support the Windows 10 media creation tool and we want to make sure you can download Windows 10. To use the media creation tool, visit the Microsoft Software Download Windows 10 page from a Windows 7, Windows 8.1 or Windows 10 device."
What they allowed me to download from Linux was a generic 5.5 GiB iso. Sometimes you can just write an iso to a thumbdrive and it will boot. This was not one of those. It only has El Torito, not any alternative boot sector or bootloader.
There are lots of web pages saying do this or do that to create a bootable USB flash drive. I took the path of least resistance, which was to burn it to a BD-R and boot that.
With successive updates it has become harder and harder to install Windows 10 without an online Microsoft account. In 2018 there was a tiny link at the bottom of the screen to use a local account instead of registering online, but it was hard to see and you had to really insist on it. In 2022 the latest advice is to run the whole process without an internet connection to force the local options to surface. I gave up and created an online account.
Pitfall: The installer is easily confused by the existence of multiple devices and other operating systems. It leads to getting stuck at the partitioning screen with a bogus error about cannot find a partition. You really do just have to disable all of the other drives. If there's no BIOS setup option to disable a drive, you have to disconnect its power temporarily. (Yuck.)
As with Ubuntu, choosing to boot the installation medium in BIOS or UEFI mode apparently determines the mode of the installed bootloader. This matters because Grub has issues with cross-mode chainloading. I was able to boot a UEFI W10 install from a BIOS Grub, bypassing the Windows EFI stuff, but doing so caused all Windows updates to fail.
It is possible to install W10 in a single NTFS partition if you use BIOS mode and format it yourself. However, if you install to an empty disk, you'll get a separate partition for Windows Boot Manager. (In UEFI mode, this is just the mandatory EFI system partition.)
Sometimes you get a separate partition for the Windows Recovery Environment. This is a good thing, but I don't know how to make it happen. When it's not put in a separate partition, it goes in C:\Recovery.
In 2022 I did a BIOS-mode install to an untouched 1 TB SSD that was full of zeros, just hit "Next" without partitioning or formatting, and ended up with three NTFS partitions: Boot Manager, the C: drive, and Recovery Environment.
Device Boot Start End Sectors Size Id Type /dev/sdh1 * 2048 104447 102400 50M 7 HPFS/NTFS/exFAT /dev/sdh2 104448 1952475788 1952371341 931G 7 HPFS/NTFS/exFAT /dev/sdh3 1952477184 1953519615 1042432 509M 27 Hidden NTFS WinRE
In 2022, the uninstalls all failed with a hexadecimal error code, so I just unchecked them.
Windows now installs manufacturer's drivers for Nvidia GPUs and Realtek audio/LAN automatically.
The auto-installed Nvidia driver is the minimal one. Nvidia's full-bloat driver pack now comes with something called GeForce Experience. It has nice features like screen recording, optimizing game settings, and updating drivers automatically, but it also has some hidden background function that randomly goes off and hogs massive amounts of CPU and network bandwidth without any warning or explanation.
W10 does not correctly install this device. It looks like a regression. To get it working in XInput mode, I followed the steps found here:
In DirectInput mode, W10 may install the device as "Logitech Cordless RumblePad 2." I had it working like this briefly before finding the XInput solution.
This Logitech FAQ suggests that Logitech Gaming Software (LGS) might be necessary for the F710 to work in W10. I did install LGS before I got the gamepad working, but I doubt that it was actually a prerequisite for either XInput or DirectInput mode to work.
There were outdated links on Logitech's site that misled me into first installing a bogus old version of LGS. I found version 9.02.65 (2018-10-08) for x64 here.
If it's necessary to "try again" on connecting the F710, you have to do the silly dance of unplug the USB dongle, take a battery out of the controller, plug the dongle back in, and replace the battery. Logitech's F710 Connect Utility appears to do nothing more than walk you through these steps and then confirm that the hardware is "connected." "Connected" does not mean that it has a working driver.
Under System Properties > System Protection, enable System Restore and create a restore point.
Under Settings > Notifications and actions, turn off everything that annoys, then follow the link to configure Focus Assist. "Alarms only" is the quietest setting.
It automatically signs you into Skype and OneDrive. Uninstall these apps if they are not needed.
By default, SSDs and USB flash drives will be subjected to scheduled automatic "optimization" which you may or may not want. To disable it, run Disk Defragmenter, click on "Configure schedule...," clear the checkbox next to "Run on a schedule," and hit OK.
By default, Windows will awaken from S3 if you bump the mouse. To fix this, find the mouse device, open Properties, click on the Power Management tab, and uncheck "Allow this device to wake the computer."
To avoid possible problems with updates such as I had with the UEFI install, I chain boot to Boot Manager instead of directly to Windows.
menuentry "Windows 10" -id W10 { # Boot the Windows Boot Manager search --no-floppy --fs-uuid --set=root [UUID of sdh1] chainloader +1 }
Oopsie Woopsie is why you want to make sure that System Restore is working.