Stop Disk Check From Running On Every Boot

In dual-boot configurations, like Windows 7 and Windows 10, sometimes an interesting phenomena occurs: a full disk check is executed each time Windows 7 boots after Windows 10.

This erroneous disk check is caused by combination of two seemingly unrelated factors: hybrid boot of Windows 10 (enabled by default) and a new format of NTFS logfile introduced in between these OSes.

Unlike other websites suggesting to disable Windows 7 disk check at boot time, we fix this issue properly, so that disk check will run whenever necessary, but not on every reboot.

Contents

1. Symptoms of this problem

Each time you boot older operating system after using a new operating system in the dual-boot configuration, full disk check occurs (even if computer was shut down cleanly):

Disk Check Running On Every Boot

2. Cause of this problem

NTFS logfile format depends on Windows version

For a long time, there was no difference in NTFS logfile format between Windows versions. Then in Windows 8.1, logfile format was changed. Older versions of Windows are no longer able to recognize and replay NTFS integrity logfiles created by modern versions of Windows.

Windows version NTFS logfile format
Windows NT 4.0 1.1
Windows 2000 1.1
Windows XP 1.1
Windows Vista 1.1
Windows 7 1.1
Windows 8 1.1
Windows 8.1 2.0
Windows 10 2.0


Effect of the hibernation on the volume dirty state

In Windows 8/8.1/10, default shutdown mode is hibernate-in-logoff-state (called hybrid boot).

Unlike proper full shutdown used by previous versions of Windows, hibernate-in-logoff-state leaves filesystem and registry in dirty state (i.e. with non-empty integrity logs).


Rules of disk checking at boot time

Each time Windows 7 boots, it ensures that fixed volumes were unmounted cleanly.

If there are NTFS volumes which were not unmounted cleanly, Windows 7 applies NTFS logfile of each volume to restore its consistency.

If volume is both: (a) dirty; and (b) not recoverable to clean state by applying its NTFS logfile, then full disk check is executed.


Summing it up

So, why full disk check is executed each time in dual-boot configuration of Windows 7 and Windows 10?

  1. Because of hybrid boot, Windows 10 hibernates to disk in logoff state instead of properly unmounting NTFS filesystem. Filesystem remains in dirty state.
  2. NTFS logfile of Windows 10 system disk is nonempty and is stored in 2.0 format.
  3. Windows 7 NTFS driver detects that one of fixed volumes is dirty and has nonempty logfile.
  4. Windows 7 NTFS driver is unaware of 2.0 logfile format, it expects NTFS logfile in 1.1 format.
  5. Because of NTFS logfile format mismatch, Windows 7 NTFS driver is unable to apply logfile to the filesystem, so filesystem consistency can't be restored quickly.
  6. To restore filesystem consistency of Windows 10 system partition, full disk check is executed in the context of Windows 7, on each reboot after Windows 10.


Generalization

This situation applies not just to Windows 7 and Windows 10, but to any pair of Microsoft Operating Systems in dual-boot configuration with following properties:

  • Older OS has 1.1 NTFS logfile format (Windows 8 or earlier).
  • Newer OS has 2.0 NTFS logfile format (Windows 8.1 or later).
  • Newer OS is configured to use hybrid boot (the default setting) or wasn't shut down cleanly.

3. Wrong way to fix this problem

There are some articles on other websites suggesting to disable Windows 7 autochk via registry (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager), but this approach is wrong: NTFS filesystem ultimately remains in dirty state, and full disk check is not eliminated, but merely postponed to a later time (e.g. when the disk is accessed via File Explorer):


Disk Check After Every Boot In GUI Mode

Proper fix must be proactive: nonempty NTFS logfile in 2.0 format should not even exist, so there will be no need to deal with the consequences.

4. Right way to fix this problem

1. Disable hybrid boot in Windows 10

Press Win+R, type powercfg.cpl, press Enter.

Click "Choose what power buttons does" left menu item:

Stop Disk Check From Running On Every Reboot - Choose what power buttons does
Stop Disk Check From Running On Every Reboot - Choose what power buttons does

Click "Change settings that are currently unavailable" link:

Stop Disk Check From Running On Every Reboot - Change settings that are currently unavailable
Stop Disk Check From Running On Every Reboot - Change settings that are currently unavailable

In the bottom of this page, uncheck first checkbox related to the fast startup:

Stop Disk Check From Running On Every Reboot - Uncheck the fast startup checkbox
Stop Disk Check From Running On Every Reboot - Uncheck the fast startup checkbox

2. Disable 2.0 logfile format in Windows 10

Disabling hybrid boot is nice, but not enough. Windows 7 will still do a full disk check if Windows 10 wasn't shut down properly. Let's fix that too, so Windows 7 could replay NTFS logfiles of Windows 10.

Windows 10 supports reading and writing both versions (1.1 and 2.0) of NTFS logfile. Let's force it into "always version 1.1" mode.

Press Win+R, type regedit.exe, press Enter.

Navigate to HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem registry key:

Stop Disk Check From Running On Every Reboot - Navigate to the FileSystem registry key
Stop Disk Check From Running On Every Reboot - Navigate to the FileSystem registry key

Create a new REG_DWORD value named NtfsDisableLfsUpgrade and set it to 1.

Stop Disk Check From Running On Every Reboot - Set NtfsDisableLfsUpgrade value to 1
Stop Disk Check From Running On Every Reboot - Set NtfsDisableLfsUpgrade value to 1

Make sure that REG_DWORD value named NtfsDisableLfsDowngrade contains 0.


3. Reboot Windows 10 twice for new changes to take effect