← Default view
Checklist DB-01 Rev 2026-07-30 Applies to: Windows 11 24H2 · UEFI · TPM 2.0 Class: Survey

Dual-boot
without wrecking
Windows

Normal procedures · Hazards · Abort · Recovery card
References
30
Est. read
13 min
Reversible
Yes — Config A
Point of no return
Partition write
◆ Decision — read before anything else

Put Linux on a second physical disk, give it its own ESP on that disk, and switch OSes from the firmware boot menu (F12) rather than a shared boot loader. This is the only layout where "undo" means "unplug a drive."

Leave Secure Boot ON and pick a shim-signed distro. Turning it off in 2026 costs you Windows Hello and a BitLocker recovery prompt, and buys you almost nothing [1] [4].

01 · Before
powercfg /H off, then a full shutdown — not a reboot.
02 · Before
Escrow the 48-digit BitLocker key somewhere that is not this machine.
03 · Before
Suspend-BitLocker -MountPoint "C:" — suspend, never decrypt.
§ 1
Configuration selection

Pick the airframe before you pick the procedure. Everything downstream changes.

Config A

Second physical disk

Recommended
An M.2 NVMe solid-state drive
Fig. 1 — one NVMe. The whole cost of reversibility.
Windows partition table✗ never touched
BitLocker risk from partitioningNone
Hibernate one, boot the other✓ separate ESPs [1]
ESP sizeYours — 1 GiB suggested, 4 GiB "ought to be enough" [7]
UndoPull the drive, or wipe it
CostOne NVMe
Config B

Shrink Windows on one disk

Higher blast radius
A graphical partition editor showing the partitions of a single disk
Fig. 2 — one disk, one ESP, one partition table, shared.
Windows partition table✓ rewritten every resize
BitLocker risk from partitioning⚠ documented recovery trigger [12]
Hibernate one, boot the other✗ one ESP → corruption risk [7]
ESP sizeWindows Setup's 100 MiB (300 MiB on 4Kn) [1]
UndoDelete partitions, extend C:, hope the OEM/recovery partitions survived
CostFree
Note · The official sources disagree here

ArchWiki's ESP page: a separate ESP per OS is the recommended mitigation for the hibernation problem, and "most UEFIs support this as long as the ESPs reside on physically different disks" [7].

ArchWiki's dual-boot page and Microsoft: "An additional EFI system partition should not be created, as it may prevent Windows from booting" [1] [2].

Reading: Microsoft's warning is about two Windows installs. A Linux ESP on a second disk is the common working configuration — but it is firmware-dependent. Install it, then immediately verify Windows still boots from a cold start and from the F12 menu. If your firmware only ever boots one ESP, fall back to Linux's loader in Windows' 100 MiB ESP and accept that you must then fully shut down Windows, never hibernate [7].

There is only one ESP per drive. Hibernating Windows and still booting Linux therefore requires two physical disks. No exceptions [1].

Caution · The strongest form of the trick

Physically disconnect the Windows drive while installing Linux. The installer then cannot write boot files to the Windows ESP even if you misclick, and the Linux disk is guaranteed self-contained and bootable on its own [6]. Separate drives also sidestep OEM recovery partitions and vendor RAID/Intel RST setups that confuse installers, and let you move the Linux drive to another machine later [5].

§ 2
Before install — Windows side

All of this happens while Windows is still the only OS on the machine. None of it is destructive.

Fast Startup / hibernationOFF
powercfg /H off — then shut down. A reboot does not clear the flag [1].
BitLocker statusASSUME ON
Windows 11 24H2 enables automatic device encryption on clean installs signed in with a Microsoft or work account, on all editions including Home [11]. Arch is blunter: C: "will come with BitLocker enabled by default, even if BitLocker appears disabled by searching for its name" [1].
48-digit recovery keyESCROWED, OFF-MACHINE
Print it or store it somewhere that is not the machine you are about to repartition. Microsoft: "BitLocker is designed to make the encrypted drive unrecoverable without the required authentication" [3]. On a personal machine it is in your Microsoft account by default — verify that, don't assume it.
BitLocker protectionSUSPENDED, NOT DECRYPTED
Suspend-BitLocker -MountPoint "C:" keeps the volume encrypted but wraps the volume master key with a clear key; on resume it reseals to the new measurements without ever asking for the recovery key [3]. Microsoft recommends exactly this for planned firmware/hardware changes. It auto-resumes on the next reboot unless you pass -RebootCount [12].
Secure BootLEAVE ON
See § 4. The cost of disabling it landed on the Windows side.
Copy of the whole ESPTAKEN TO EXTERNAL
A small FAT32 filesystem; cp -a it from a live USB. Cheapest insurance you will ever buy.
Shrink C: — Config B onlyWINDOWS' OWN TOOL
Disk Management can only shrink up to the last unmovable file — usually pagefile.sys, hiberfil.sys, and System Volume Information [10]. Disable hibernation, disable the page file, turn off System Protection, defragment, shrink, re-enable. GParted often shrinks further — but not on a BitLocker-encrypted volume; Windows can resize an encrypted C:, Linux tools cannot [1].
Warning · Fast Startup is hibernation wearing a "Shut Down" label

Windows writes the kernel session to disk and leaves NTFS volumes flagged in-use. Boot Linux, mount them read-write, and Windows restores a stale image over your changes — "anything from a couple of lost files to entire directories being corrupted" [8] [9]. The same applies to a shared ESP: hibernate Windows, boot Linux, and the ESP itself can be damaged [1].

The safety nets are asymmetric. ntfs-3g refuses read-write mounts of a hibernated NTFS volume. The in-kernel NTFS driver has no such safeguard [1].

⚠ Windows updates have been reported to re-enable Fast Startup. Re-check after every feature update [1].

§ 3
Install and post-install verification
Windows driveDISCONNECTED
Config A only. Reconnect after the Linux install completes [6].
DistroSHIM-SIGNED
Ubuntu (and by extension Mint/Pop) ships "a shim binary signed by Microsoft and a GRUB binary signed by Canonical"; Fedora and RHEL do the equivalent [17] [16]. Arch does not — you sign your own with something like sbctl ⭐ 2.2k [14]. For a first rung, pick shim-signed.
ESPOWN, ON THE LINUX DISK
1 GiB suggested; 4 GiB if unsure [7].
Linux disk encryptionLUKS PASSPHRASE
BitLocker and LUKS are independent — BitLocker seals to the TPM for the Windows volume, LUKS lives entirely on the Linux disk and Windows cannot see it. The interaction only appears if you also seal LUKS to the TPM with systemd-cryptenroll --tpm2-pcrs=7: then a Secure Boot key change breaks both unlocks at once [15]. For a first Linux trial, a passphrase is the lower-drama choice.
Windows cold bootVERIFIED
Not "it booted once from the menu" — a genuine cold start.
F12 firmware menu, both entriesVERIFIED
If only one ESP ever boots, fall back to the shared-ESP layout now — before you have data on the Linux side.
BitLockerRESUMED — WHILE WINDOWS IS DEFAULT
See the PCR 7 trap in § 4.
§ 4
Known hazards

Four things that bite dual-booters. Three of them are Windows-side.

⚠ The PCR 7 trap

Modern BitLocker binds to PCR 7 (Secure Boot state) + PCR 11, which tolerates firmware and boot-component churn. But "BitLocker can be prevented from binding to PCR 7 if a non-Windows OS booted prior to Windows, or if Secure Boot isn't available" [3]. Fall back to the PCR 0/2/4 profile and every BIOS update becomes a recovery prompt.

→ Don't turn Secure Boot off, and don't re-enable BitLocker while Linux is the default boot entry.

⚠ Secure Boot off = Windows Hello gone

Disabling it makes a TPM-sealed BitLocker volume show the recovery screen at every Windows boot [14] — reversible. It also makes Windows disable every Windows Hello method — PIN, face, fingerprint, security key — across all accounts. Re-enabling Secure Boot does not restore them, and you need the actual account password to get back in [1].

→ In 2026 disabling Secure Boot is not a reasonable trade.

⚠ Windows resets the boot order

Boot Windows once and Windows Boot Manager is back on top at the next start; efibootmgr reordering does not stick on some boards, and some firmware overrides it outright whenever it detects Windows [19] [22]. Related: if firmware boots the fallback path \EFI\BOOT\BOOTx64.EFI, that file may already have been overwritten with the Windows loader.

→ Fixes by increasing intrusiveness: use F12 every time (zero maintenance); bcdedit /set "{bootmgr}" path "\EFI\<path>\<app>.efi" to chain from Windows; or a Windows startup task running bcdedit /set "{fwbootmgr}" DEFAULT "{id}" [19].

⚠ Windows updates revoke your bootloader

August 2024's KB applied an SBAT revocation intended for old vulnerable shims. Microsoft's "dual-boot detection did not detect some customized methods of dual-booting and applied the SBAT value when it should not have been applied", leaving Verifying shim SBAT data failed: Security Policy Violation [18].

→ The strongest argument for Config A: a revocation still hits you, but nothing Windows does can corrupt an ESP it never mounts.

A discrete Trusted Platform Module chip soldered on a laptop motherboard
Fig. 3 — the TPM. It holds the key you cannot re-derive.
Caution · What actually triggers a recovery prompt
From Microsoft's own list, the ones a dual-booter hits: changes to the NTFS partition table · changes to the boot manager · changing the BIOS boot device order (on TPM 1.2) · UEFI firmware upgrades · installing additional UEFI drivers or applications outside Windows Update · manual changes to the Secure Boot databases · modifying the PCRs in the TPM validation profile [12] [3]. Even vendor firmware/TPM updates do it on their own [13].
§ 5
Airworthiness notice — Secure Boot certificates, 2026

Microsoft's 2011 Secure Boot certificates are aging out on a published schedule [4].

Expiring certificateExpiresReplacement
Microsoft Corporation KEK CA 201124 Jun 2026Microsoft Corporation KEK 2K CA 2023
Microsoft UEFI CA 2011 (third-party / shim)27 Jun 2026Microsoft UEFI CA 2023
Microsoft Windows Production PCA 201119 Oct 2026Windows UEFI CA 2023
Status · Nothing breaks on the date

Expiry stops Microsoft signing new boot components; it does not revoke what your firmware already trusts. Microsoft: "Devices that haven't received the newer 2023 certificates will continue to start and operate normally" [4]. Red Hat's guidance to Linux users matches — "a shim signed by this key will continue to boot as long as the public certificate is not removed" [16].

Two action items: let Windows Update or fwupd push the 2023 certs into your firmware db — and ⚠ do not remove the 2011 certificate afterwards, because current shims are dual-signed against both [16].

Note · NVIDIA and other DKMS modules
Out-of-tree modules must be signed or the kernel refuses them: "Unsigned modules aren't loaded by the kernel. Any attempt to insert them with insmod or modprobe fails" [17]. Ubuntu automates it — DKMS generates a machine-specific Machine Owner Key, signs the module, and prompts you once at the blue MOK-enrollment screen on the next reboot. It's one extra reboot, not a project.
§ 6
Boot manager selection — by blast radius
ApproachWindows ESP touchedSecure Boot out of boxBlast radius when it breaks
Firmware boot menu only
own ESP per disk, no cross-registration
✗ never Depends on distro Lowest — each OS boots independently; the other disk is unaffected
systemd-boot ✓ if sharing ESP ✗ sign your own Low — minimal UEFI-only design; auto-detects Windows Boot Manager [20]. Recommended over GRUB/rEFInd on loosely spec-compliant firmware [21]
GRUB via shim
Ubuntu / Fedora default
Medium — the most-tested path, but the one the 2024 SBAT incident bricked [18]
rEFInd ✗ sign your own Low–medium — auto-detects everything including Windows Boot Manager [1]
A GRUB2 boot menu listing operating system entries
Fig. 4 — a boot menu you don't have to own. F12 shows the same list, maintained by the firmware.
§ 7
Shared data between the two OSes

Use a dedicated third partition (or the leftovers of the Linux disk). Never C:, and never point Linux at the Windows system volume for read-write work while Fast Startup exists on the machine [8].

NTFSexFAT
Journaling
Linux driver churn3 drivers, ongoing [25] [26]Stable in-kernel exfat
POSIX permissions / exec bit / symlinks✗ uid/gid fixed at mount[29]
Hibernation dirty-flag hazard✓ presentLower, but still a shared-mount hazard [9]
Mount optionwindows_names
So Linux can't create filenames Windows will refuse to open [25].
Driver choiceNO OBJECTIVE WINNER
Linux now has two read-write NTFS drivers in tree: ntfs3 (Paragon's, in-kernel since 5.15) and a new ntfs, formerly NTFSPLUS, merged for Linux 7.1 [25] [26]. Arch's verdict: "There is no objectively better driver at the moment"; the new ntfs is slightly faster but has no Windows native symlinks yet (planned for 7.2). Userspace ntfs-3g is slower but is still what conservative reviewers recommend for bulk data [27] — and the only one of the three that refuses to read-write mount a hibernated volume [1].
Dirty-volume escape hatchntfsfix --clear-dirty
Expect volume is dirty and "force" flag is not set! with ntfs3 after an unclean Windows shutdown [25].
Warning · Do not put $HOME or a git repo on the shared partition

Neither filesystem stores POSIX permissions, so everything is owned by whatever uid/gid you set in fstab and the executable bit is gone [29]. git init itself fails on NTFS mounts because git chmods files inside .git/ and the driver returns an error [28].

For a .NET/TypeScript workstation this is fatal in practice — mode bits in the index, node_modules symlinks, and dotnet build outputs all depend on things NTFS does not carry.

→ Keep repos on ext4/btrfs on the Linux side and on NTFS on the Windows side. Let the shared partition hold data, not code; symlink individual data directories out of $HOME into it if you want the convenience.

§ 8
Abort procedure — un-dual-booting
Order matters — deviating loses the machine
If GRUB is in the boot path, deleting the Linux partitions first leaves you with a grub rescue> prompt and no OS.
  1. Boot Windows. Confirm it boots without the Linux loader — F12 → Windows Boot Manager directly.
  2. Restore the Windows boot path if Linux owns it: bcdboot C:\Windows /s <ESP> /f UEFI [1]
  3. diskmgmt.msc → delete each Linux volume → the space becomes Unallocated → Extend Volume on the adjacent Windows partition [24]
  4. Delete the leftover \EFI\<distro> directory from the ESP (mountvol a letter to it) and drop the stale firmware entry with bcdedit, efibootmgr from a live session, or EasyUEFI [24]
  5. Resume BitLocker.
Config A · The whole point
With the second-disk layout, steps 2–4 collapse to "delete the firmware boot entry and reformat the drive."
✂   Detach along this line — keep off the machine   ✂

Recovery card

Assemble before you touch a partition · store outside this workstation
① Windows recovery media

Shift+F10 in Setup gives you a console with diskpart and bcdboot [1]. Note: Windows RE started manually from repair media requires the BitLocker recovery key to unlock the drive [12].

② BitLocker 48-digit key

Printed, or on a phone. The pre-boot recovery screen needs it typed with the function keys [3].

③ A copy of the whole ESP

A small FAT32 filesystem. cp -a it to external storage from a live USB. Cheapest insurance you will ever buy.

④ Boot-Repair live disk

Boot-Repair "generally reinstalls GRUB and restores access to the operating systems you had installed before the issue", and produces a Boot-Info report you can paste into a forum before letting it change anything [23].

Recovery password — write it here, then put this card in a drawer
If you nuke the ESP — rebuild Windows' side from install media
diskpart → select the ESP → assign a letter bcdboot C:\Windows /s G: /f UEFI
Source: ArchWiki — Dual boot with Windows [1]
REF
References — 30 sources
▸ Open the reference appendix
3BitLocker FAQofficial
BINDER
Other checklists in this binder

Part of Testing the waters: a staged, reversible path from a Windows dev workstation to Linux — where the recommended route skips dual-boot entirely in favour of an external NVMe.

Survey
The staged ladder: what each rung of a Windows→Linux move actually proves

A rung-by-rung ladder from WSL2 to full switch, with what each rung proves, what it structurally hides, the go/no-go signal, and the cost of retreating.

Survey
WSL2 as rung zero — what it proves, and the exact wall it hits

WSL2 retires every userland risk in a Linux migration and none of the machine-ownership risks; here is where the line falls in 2026.

Survey
Trial hardware and VM paths for evaluating Linux before you commit (2026)

Live USB first (€10, 15 minutes, proves your actual hardware), then a full install on an external NVMe SSD (€90–150) — everything else is a detour.

Survey
Living in both OSes: running Windows and Linux for months without your setup rotting

One source of truth per asset class, replicated by a tool that knows the OS difference — never a shared partition and never two hand-edited copies.

Survey
Dropbox on Linux and shared folders: what actually works in 2026

The official Linux client now supports btrfs/zfs/xfs, but you cannot share one Dropbox folder between a Windows and a Linux install, and code repos do not belong in Dropbox at all.

Recon
Exit criteria and the blocker inventory: decide the Linux switch on evidence, not vibes

A fill-in blocker inventory plus tickable go/no-go criteria and a pre-committed rollback date for a Windows-to-Linux workstation trial.

Checklist DB-01 · Rev 2026-07-30 Runbook view of the canonical page 30 references · Survey depth Atlas