If you’re dual-booting Windows and Linux, you may have noticed that when you mount an NTFS partition from Linux, sometimes you can’t write to it. You can read anything you have there, but you can’t delete files, rename them, modify them or write new files and directories.
Why Can’t I Write on My Windows Partitions from Linux?
This happens because the partitions get mounted in read-only mode. Some file managers will display a notice dialog when you mount a Windows partition and warn you about this. Others won’t mention anything – you just won’t be able to perform any write operations on the NTFS filesystem.
“But why does the partition get mounted in read-only mode?” you may ask. Well, that’s because of a feature called Fast Startup. Long story short, when you shut down your computer, Windows saves a portion of the random access memory (RAM) to your disk. The next time you boot up, it loads that portion back into memory.
This is much faster because it’s almost a simple copy operation, from disk to memory. In contrast, in a normal boot files have to be read from disk, and then the CPU has to process a lot of data to initialize everything. If that sounds abstract, think of it this way: when you “normal boot,” it’s like preparing food from scratch, then putting it in the oven. When you “fast boot,” it’s like taking already prepared food from the fridge and reheating it.
It’s a Safety Feature
To recap, when Windows shuts down, it hibernates core operating system data to disk. When it boots up after hibernation, it resumes and starts much faster. Because a hibernation freezes some memory data and operating system state and saves it to disk, it’s risky to modify any data on that disk.
Imagine a program is in the middle of doing something. It has a few open files with partial contents written to them. As the system shuts down, program code is saved to disk so that it can be resumed later. If you modify the program’s files, when the application resumes, it won’t find the data it was working on, so it will either crash or simply lose all its progress, a situation that may be hard to recover from.
How to Make NTFS Partitions Writable from Linux
There are two workarounds, each with its own drawbacks. If you rarely need to write on Windows partitions from Linux, try the one mentioned in the next section.
Boot into Windows and Restart Instead of Shutting Down
It’s true, this is a bit inconvenient. However, it’s also the quickest fix for your problem and doesn’t involve changing anything long-term, as the other solution does.
1. If you’re currently in Linux, restart.
2. Boot into Windows.
3. Click on the Start Menu and choose to restart instead of shutting down.
4. Finally, boot back into Linux, and you should be able to mount your Windows NTFS partitions in read/write mode.
When Windows restarts, it won’t use the Fast Startup feature for the next boot. This means it doesn’t hibernate, snapshot system operating state or save any memory data to disk. No hibernate data on partitions means it’s safe to write on them, and Linux will recognize that.
In case there’s any confusion, you don’t have to go through all four steps every time. As long as the last time you booted Windows you restarted instead of shutting down, Linux will be able to write on NTFS partitions.
Disable Fast Startup
This is useful if you often need to write on your Windows partitions from Linux. The drawback is that Microsoft’s operating system will take a longer time to boot.
To disable Fast Startup, right-click on the Start Menu and then left-click on Power Options.
Look for “Additional power settings,” and click on the text. You’ll either find this on the right-side of the window or have to scroll down to find it if the window is too small.
Next, click on “Choose what the power button does.”
Then click on “Change settings that are currently unavailable.”
Deselect “Turn on fast startup,” and then click on the “Save changes” button at the bottom-right of the window.
These are the safe methods. If you’re willing to take risks, this Linux command worked in the past. (It doesn’t seem to work with modern versions of Windows though.) Replace “/dev/sda4” with the correct device name for your NTFS partition. If you don’t know the device name, you can find it by following this tutorial.
sudo mount -o remove_hiberfile /dev/sda4 /mnt
Keep in mind that you might screw up Windows’ next boot process, so try it only if you can afford the risk of potentially having to fix Windows problems. If this works for you, you will find the contents of your Windows partition in the “/mnt” directory.
Our latest tutorials delivered straight to your inbox