Dual Boot with Windows 10 and Debian 10

2020-05-29
by Gernot WALZL

Partitioning Scheme

GUID Partition Table (GPT)

Device              Start        End   Sectors   Size Type
/dev/nvme0n1p1       2048     206847    204800   100M EFI System
/dev/nvme0n1p2     206848     239615     32768    16M Microsoft reserved
/dev/nvme0n1p3     239616  524527615 524288000   250G Microsoft basic data
/dev/nvme0n1p4  524527616 1476120575 951592960 453,8G Microsoft basic data
/dev/nvme0n1p5 1476120576 2000408575 524288000   250G Linux filesystem

If hibernation should be supported in Debian, swap space is required.
The size of the swap partition should be (at least) the size of installed RAM.

Shared Data Partition

Windows

Fast startup is some kind of hibernation.
If the same file is touched from Windows and Debian, it is likely that
changes to a file get lost without any notification.
To disable fast startup in Windows do the following:

  1. Start powercfg.cpl
  2. Click Choose what the power buttons do
  3. Click Change settings that are currently unavailable
  4. Uncheck Turn on fast startup
  5. Click Save changes

Debian

To automatically mount the shared data partition do the following:

List UUIDs of existing partitions:
blkid

Add the shared data partition to the file system table /etc/fstab:

UUID=6095C9DC13718A17  /mnt/ntfs  ntfs-3g  gid=users,fmask=113,dmask=002  0  0

Add user johndoe to group users:
usermod -aG users johndoe

Timezone (optional)

Having the real-time clock (RTC) on the mainboard running in
coordinated universal time (UTC) has the following advantages and drawbacks:

Pro: The switch to summer time will not happen twice (Debian & Windows).
This causes a wrong time to be displayed if the time is not synchronized
automatically.

Con: Time is shown in UTC in BIOS.
A scheduled startup at a specific time will ignore the summer time switch.

Debian

timedatectl set-local-rtc 0

Windows

RealTimeIsUniversal.reg

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
"RealTimeIsUniversal"=dword:00000001