Dual booting MS Windows and linux

October 15, 2014 — October 11, 2021

compsci
computers are awful
MS Windows
POSIX
premature optimization
Figure 1

Don’t want to fully commit to the overhead of maintaining a foreign OS, or the performance overhead of virtualization? How about committing to the maintenance overhead of two OSes plus some labour getting them not to fight? This is dual booting. In contrast to linux-windows hybrids and virtualization

  1. non-trivial hardware works across both OSes
  2. you cannot do two things at the same time (genuine retro 1980s computing experience!)

Dual booting might be the path for you if you feel that Dr Jekyll’s potion was an excellent solution to the demands of managing his conflicting priorities with Mr Hyde. Alternatively, if you are vexed by the notion of keeping two souls in one body on good terms with one another, this time sharing arrangement will annoy you. In that case, alternatives such as

  1. Buying a second computer, or
  2. giving up one OS

might be more appropriate.

1 Filesystem

In practice, unencrypted ntfs seems best for data to be shared across the OSes. I don’t keep any confidential data on Windows, but if you want the Microsoft-supported disk encryption system Bitlocker, that will not be readable from Linux.

To avoid annoying permissions errors I found it necessary to map users between Windows and Linux.

1.1 Windows Fast Boot leaves FS unreadable from linux

Windows file system becomes read-only after reboot? Disable “fast startup” in Windows. as Linux Uprising says:

You can disable fast startup in Windows 10 or 8 this by launching the Control Panel, search for Power Options and click it. Next, click on the Choose what the power buttons do item from the left-hand sidebar:

Windows power options > choose what the power buttons do

To be able to turn off fast startup, click on Change settings that are currently unavailable:

Windows power options > fast startup

Now disable the Turn on fast startup option that appears under Shutdown settings; after turning it off, remember to click the Save changes button to apply the changes.

You need to re-do this often because Windows intermittently decides to change this setting for you without warning. Background info on this feature.

1.2 Partition resizing did not work

I cannot honestly tell you if it is reputable or not, but MiniTool Partition Wizard did a good job of fixing my paritions up to be comprehensible to Windows.

2 Don’t confuse Windows time/date when dual booting

Windows updates the time not the time zone to stay compatible with MS-DOS. Who knew.

Linux has to bear the compatibility burden on this bit of arse-backwardsery, but the command in that link seems to work more or less. I also needed to kick the hardware clock.

timedatectl set-local-rtc 1 --adjust-system-clock
hwclock -w --localtime

To revert to sanity if we give up on booting into windows, this is necessary:

timedatectl set-local-rtc 0 --adjust-system-clock
hwclock -w --utc

Or, life hack: I tell Windows OS that the timezone is UTC and deal with Windows thinking it is 4am when I am at work. Since I only use Windows for an hour here and there it’s much easier. (Not recommended: tell Windows to use UTC via advanced registry settings but still set a non-trivial time-zone.)

3 Dual boot without unpairing bluetooth

Yes every time you boot into a new OS you must re-pair your bluetooth devices. Claudia Kang’s tip was the simplest I found that worked, and can get your mouse working with only about 10 minutes labour intermittently repeated when you need to re-pair a device because something stupid happened with bluetooth. See also Mario Olivio Flores’ explanation and more complicated workaround which avoids manual copying via regedit.exe (although manual steps are still needed). AFAICT this no longer works with devices that use Bluetooth>=4.0.