Why Linux sees your Windows drive as read-only
How-To Geek blames Fast Startup, which is usually on by default. At shutdown, Windows saves its kernel session and driver state to hiberfil.sys instead of shutting down completely. When you then boot Linux, the NTFS volume is in a hibernated or inconsistent state. Linux responds by mounting it read-only or refusing to mount it. The article notes this can also hit other NTFS drives that Windows used, such as secondary internal disks and USB drives.
The Linux-side documentation backs this up. The ntfs-3g manual says Windows has to be fully shut down before booting into Linux, or NTFS file systems may be left inconsistent. It adds that if Windows is hibernated or its fast restart is enabled, partitions on internal disks are forced to be mounted in read-only mode. One caveat: the manual specifically says internal disks. That means the article's claim about USB drives is plausible, but I couldn't confirm it from the ntfs-3g documentation.
The ntfs-3g remove_hiberfile option can force a mount, but the man page warns that the saved Windows session will be completely lost. Treat it as a last resort.
The fix: turn off hibernation, or fully shut down
The article's quickest fix is to open an elevated terminal in Windows and run powercfg /h off. Microsoft's documentation spells the command powercfg.exe /hibernate off. It says to run it from an elevated Command Prompt, and powercfg.exe /hibernate on reverses it. The ntfs-3g man page also recommends powercfg /h off, describing it as the Windows command which disables both hibernation and fast restarting.
Steps:
- In Windows, right-click Start and open the admin terminal (the article calls it "Terminal (Admin)").
- Run
powercfg /h off. - Shut down Windows completely.
- Boot Linux and mount the NTFS volume again.
What you give up. This turns off hibernation entirely, not just Fast Startup. Microsoft warns that you may lose data if hibernation is unavailable and a power loss occurs while hybrid sleep is on. Laptop users who rely on hibernate should think twice. The article mentions a way to disable only Fast Startup, but I haven't verified those steps, so I won't give them here. One practical option for laptops is to turn off Fast Startup and fully shut down before booting Linux.
The restart shortcut. The article says restarting Windows instead of shutting down avoids the problem, because Fast Startup applies only to shutdown. That's plausible, but I couldn't confirm it in the Microsoft documentation I reviewed. Treat it as a workaround, and verify the drive mounts read-write before you trust it.
The "boots barely slower on an SSD" claim. That's the author's experience, not a measured result. Your results will vary.
Still read-only? Fast Startup is a common cause, not the only one. One Manjaro forum user, quoted here only as an anecdote, reported that a Windows update seemed to turn shutdown back into hibernation. They fixed it with powercfg /h off. The same thread mentions ntfsfix under Linux as an alternative, though one the poster called less thorough. An unclean NTFS journal or a failing disk can also produce read-only mounts.
Reading Linux disks from Windows
Windows has no built-in support for ext4, Btrfs or ZFS. The article's recommended route is WSL, which runs a real Linux kernel and can mount those filesystems. Microsoft documents the workflow in its WSL 2 disk-mounting guide.
Prerequisites. Microsoft says you need Windows 11, or the Microsoft Store version of WSL. You also need administrator access.
Steps for a partitioned disk, following Microsoft's guide:
- In elevated PowerShell, list disks with
Get-CimInstance -Query "SELECT * from Win32_DiskDrive". TheDeviceIDis usually in the\\.\PHYSICALDRIVE*format. - Attach the disk without mounting it:
wsl.exe --mount <Disk> --bare. - Inside WSL, run
lsblkto list the block devices and partitions. If you need to identify a filesystem, runblkid <BlockDevice>. - Mount the partition:
wsl.exe --mount <Disk> --partition <Index> --type <Type>. If you leave out--type, WSL assumes ext4. - Open File Explorer and go to
\\wsl$\<Distro>\<Mountpoint>. The disk is mounted under WSL'sautomount.root, which defaults to/mnt/wsl. - When you're done, run
wsl.exe --unmount [DiskPath]. If you omit the path, all attached disks are detached.
If a disk has no partitions, you can skip the --bare step and run wsl.exe --mount <Disk>.
The limits
How-To Geek says this method only works if Linux is on a separate physical drive from Windows. Microsoft's documentation supports that and goes further.
- Whole disks only. Microsoft says
wsl --mountalways attaches the entire disk even if only a partition is requested. - No boot disk. It's not possible to read a partition on the boot device this way, because that device can't be detached from Windows. You can't mount the Windows installation disk.
- Nothing in use. It can't mount a disk, or partitions on a disk, that is currently in use.
- No USB. The command does not currently support USB/flash drives/SD card readers. Microsoft points to its separate "Connect USB devices" instructions for external drives.
- Kernel-supported filesystems only. Filesystems that the WSL kernel doesn't support natively can be attached with
--bareand handled through a FUSE driver, according to Microsoft.
The most common dual-boot setup is Windows and Linux sharing one SSD. For that layout, wsl --mount won't help. You'd need a third-party ext4 driver for Windows, which the article calls "lackluster" and "buggy" (the author's opinion, not a benchmark). Another option is to keep shared files on a partition both systems read natively, such as NTFS or exFAT. That is my suggestion, drawn from general practice rather than from the sources above.
Which direction is which
Two distinctions are easy to mix up:
- Windows NTFS drive, accessed from WSL: Microsoft says you can mount it with
drvfs, for examplesudo mount -t drvfs D: /mnt/d. - Ext4 drive, accessed from Windows: Microsoft says you cannot mount it on your Windows file system. You mount it inside WSL and browse it through the
\\wsl$network path.
Microsoft's general guidance on working across filesystems is also useful. It recommends against working across operating systems with your files, unless you have a specific reason. It also notes that Windows is case-insensitive and Linux is case-sensitive. That matters if you copy project folders back and forth.
Verdict
How-To Geek's diagnosis of the Windows-to-Linux problem holds up. Fast Startup and hibernation are well-documented causes of read-only NTFS mounts, and powercfg /h off is the standard fix. Just remember it disables hibernation entirely.
The Linux-to-Windows advice is good, but only for a particular setup. If your Linux install is on a separate internal disk, wsl --mount is a clean, Microsoft-supported route. If Linux shares a drive with Windows, or lives on a USB stick, you'll need another approach. The article's "about an hour" estimate is the author's, so treat it as a rough guide.
References
- Sharing files between Windows and Linux is a mess — here’s what actually works - How-To Geek How-To Geek · 2026-11-03T13:00:15+00:00
- Get started mounting a Linux disk in WSL 2 | Microsoft Learn learn.microsoft.com
- Ubuntu Manpage: ntfs-3g - Third Generation Read/Write NTFS Driver manpages.ubuntu.com