After about 13 years of service, my trusty laptop finally gave out and it was undeniably time to get a new one. I am personally of the opinion that all money spent on laptops is wasted1, but now I found something that was nice enough to do the bare minimum and sufficiently on sale to justify. And because the CJEU continues to disappoint it came with a Windows license. While I don’t really need Windows on my laptop I am also way too Dutch to destroy something I’ve paid for so now this machine will be a dual boot. The last time I’ve set Windows up on a new machine was back in 2014, so let’s see how things have changed.

Installing Windows 10

Everything largely came preinstalled so starting the setup was as simple as plugging in the power and booting the laptop. The first thing that stood out to me is that Windows now talks. I imagine this does wonders for the visually impaired so I’m happy it’s there but I also rushed to turn it off immediately. Other than that it seems the initial steps really haven’t changed since the nineties and that’s probably for the best. From there on out, there were some minor changes, both good and bad, that I’d like to go over.

Mandatory account creation

Over the years Microsoft has gotten increasingly fond of the idea that people want to link their everything to everything else. Starting Windows 8, this manifested as being able to use your Microsoft account as your local machine account, while you were also free to use a good ol’ local account.

Today, that feature is no longer truly there. While Microsoft still insists you can use a local account after completely installing your machine, you can only do so after the system has been completely set up. Setup will not continue until you link a Microsoft account, inevitably linking your license with your real account, whether you like it or not.

Directly afterwards, you get another mandatory registration, this time with the manufacturer of your device. This one technically only requires an email, but setup still does not allow you to skip this step. That does allow you to put down any email you like of course. It also isn’t even validated, though I expect eyebrows to be raised should you ever try to argue over the warranty.

Both of these requirements are at least questionable under the GDPR2 because there is no real basis either of would strictly need to connect my identity to my physical device. Yet you either have to let them, or setup will not continue.

Then finally, there is yet another request, this time thankfully optional, whether setup can pass your email address to the vendors of the preinstalled bloatware. Which brings me to my next point.

Preinstalled bloatware

Since the dawn of me paying attention preinstalled Windows came with all sorts of other software you don’t need or want but got regardless, and by the way it’s only a 30 day trial hoping that less technically literate people will fall for it and actually pay up assuming its something essential. In this area, nothing has really changed although I do want to go over some of the software installed because I think there’s a pattern that should be noted.

  • Norton, a piece of antivirus software by a security company that’s not allowed to issue TLS certificates any more. You don’t need to pay for a separate antivirus, for all intents and purposes the builtin Windows Defender works just fine. This was also the piece of bloatware that wanted my email during the general installation.

  • ExpressVPN, which leads me to believe that VPNs are now in the same category where the above mentioned antivirus software lives: things that technically have a valid use cases but are mostly preying on consumer fear. Tom Scott explains it better than I ever could but I’ve also previously had the need for a snarky remark.

  • Trusty Office is still there. It is inconveniently installed as four separate packages. One trial install to try and get you hooked on WordArt3, and then three more for three separate language packs. The uninstaller for which conveniently walks you through the process in the language in question.

  • And rounding it out is a smorgasbord of other things you do not need like Skype, random 3D photo editing tools, three separate flavours of solitaire, and more.

Half an hour of carefully going through the list of installed software and removing stuff later I was done. I do hope all this advertisement brought down the price of the laptop, but it probably didn’t by very much.


To make space for the dual boot I needed to modify the existing partition tables. This I must say is something that’s gotten a lot better since I last tried. Microsoft now actually uses GPT partitioning and installs the bootloader on the ESP. The built-in partitioning tool also has gotten an upgrade: you can now resize the main Windows partition online. Gone are the times where you reboot Windows into some weird tool menu. The partition table starts out as follows:

  1. The ESP (100MB)
  2. Internal windows magic (16MB)
  3. Main system partition (the rest)
  4. More unknown Windows magic (1GB)

Only the third partition can be edited, and it can only be grown or shrunk, not moved. Thus, all of the Linux partitions will have to go in the gap between partitions three and four. The ESP cannot be moved or grown (from Windows) so we’ll have to deal with that separately. Other than that, I’m quite happy with how things have improved. The end result, according to Windows, now looks like this:

Partition table of the dual boot

Windows may deny that one of the magic Windows partitions exist but I promise it does.

Installing Linux

Installing Linux is as straightforward as it has ever been so most of my comments here are small. One major exception is however how easy it was to deal with the small ESP mentioned in the previous section.

My preferred boot loader for my systems is systemd-boot, which used to have the requirement that all of the kernels that it boots are on the same partition as the bootloader itself. With 100MB to play with and Windows eating more than half of that.4 That does not leave a lot of room for kernels.

This used to be a problem but no longer. In 2019 systemd-boot added support for the XBOOTLDR spec.5 It allows you to have a kind of second ESP where you can store kernels and bootloader configuration when your main ESP is too small. The bootloader itself still needs to be installed to the real ESP, but since systemd-boot weighs about 250KB in total, that is not really a problem compared to a 36MB initramfs.

Other than that, some minor comments:

  • iwd is such a big improvement over wifi-menu. There, I said it.

  • When you’re preparing a LUKS partition and you’re pre-writing random data using a temporary LUKS setup, you’re supposed to cat /dev/zero to it, not /dev/urandom. The randomness comes from the random encryption you’re applying. It’s the difference between writing 60MB/s and 1.4GB/s.

  • Swapfiles on btrfs have become very easy. It’s not quite “just works” level but reasonably close. I almost do not regret going for partitionless btrfs on LUKS for my setup.

  • That almost can be attributed by the effort required to hibernate to the aforementioned swapfile. It doesn’t quite work for me yet and all guides I could find list some step I feel like I should do that’s not elaborated on. If you think you can explain to me how I can get this to work, do get in touch.

  • The BIOS for this particular laptop requires one to set the BIOS password before you can edit most of the settings, including boot priority and secure boot. The BIOS also does not tell you that, you just can’t enter most menus. This is not my favourite design.

In conclusion

With all of the above said, I think it’s never been easier to install your dual boot. Even with intentional foot shooting (btrfs instead of ext4, systemd-boot instead of GRUB) things are in a place where everything largely “just works.” Windows even became more amenable to being dual-booted, even if it may have not actively intended to do so. Privacy has taken a nosedive but this is neither newsworthy nor on-topic for this post so I’ll complain about that in a future article assuming I can find clever things to say about it.

For now I have a functioning laptop that needs breaking into. Writing this article seems to have worked out. Goodbye tethys, and thank you for your service. Hello ganymede, long may you reign.

  1. Laptops tend to be very expensive relative to their power. Whenever practical, I prefer a desktop machine which gets you much more at a similar price point. Obviously this advice is specific to my preference and should’t apply to everyone. Also I was going to make a joke about Apple here but I’m not sure I can in good conscience now that apparently the M1 chips are really nice. ↩︎

  2. Not that I would know; I’m not exactly in a law-versed demographic. On the contrary: this is not legal advice, this is a tech blog with attempts at touches of humour. ↩︎

  3. Turns out LibreOffice now supports something similar called Fontwork. It allows you to create similar nostalgic text effects so there’s truly no reason to get an office license any longer. For Clippy you should just start writing Rust. ↩︎

  4. It’s not easy to tell exactly what is what in the Windows boot loader, but it’s clear most of its footprint is taken up by being pretty (27MB of the 53MB is taken up by fonts alone) and localization. ↩︎

  5. Calling it “the spec” may make it sound more official and widespread than it really is. It’s neither, the standard was written by systemd for systemd. Doesn’t make it any less useful though. ↩︎