Unable to mount NTFS hard drive partition "The disk contains an unclean file system" [duplicate]
Whenever I boot Ubuntu, I get a message that it cannot mount my windows partition, and I can choose to either wait, skip or manually mount.
When I try to enter my Windows partition through Nautilus I get a message saying that this partition is hibernated and that I need to enter the file system and properly close it, something I have done with no problem so I don't know why this happens.
Here's my partition table, if any more data is needed please let me know.
Device Boot Start End Blocks Id System
/dev/sda1 2048 20000767 9999360 83 Linux
/dev/sda2 20002814 478001151 228999169 5 Extended
/dev/sda3 * 478001152 622532607 72265728 7 HPFS/NTFS/exFAT
/dev/sda4 622532608 625141759 1304576 82 Linux swap / Solaris
/dev/sda5 20002816 478001151 228999168 83 Linux
A bug has been filed about the Nautilus dialog you are seeing as it recommends a potentially dangerous option that could result in data loss. Please do not run the command in this dialog unless you want to delete your saved Windows session and potentially lose unsaved work.
Explanation: Why Linux can't open hibernated Windows partitions:
You are seeing this error because you hibernated Windows instead of turning it off the normal way (in newer versions of Windows, hibernate might be the default option).
- Hibernating saves the current state information to the hard disk and then powers down the computer.
- Shutting down the computer closes all programs and ends all running processes before powering down the computer.
When you turn off Windows by hibernating it, you are essentially pausing the system and saving all of that information (into a big file called
hiberfil.sys
) This way when you resume from hibernation all of your applications and files will be exactly how you left them. It also sets a flag inhiberfil.sys
to let other Operating Systems know that Windows is hibernated.Making changes to your Windows (
ntfs
) partition while it is hibernated could be dangerous--it could cause Windows to not resume from hibernation or to crash after resuming. Because of this, the tool (ntfs-3g
) that mounts (opens) the partition will not mount it in read-write mode if it sees a hibernation flag. As such, Nautilus, the default file browser, will not be able to automatically open this partition--hence the error message that you see--because it is trying to open it in read-write mode.
Workaround for all versions of Windows:
There are three ways to mount a hibernated Windows partition:
Boot into Windows and power down the system by shutting it down completely. You may then boot back into Ubuntu and the partition will mount in read-write mode automatically when you open it in Nautilus. Note that the "Shut Down" option may not be the one displayed in your start menu by default. You may need to click the button next to it to see further options.
-
Manually mount the filesystem in read only mode.
-
Check to see if you have a mount point (folder for mounting your partition in) for your Windows partition in the folder
/media
using this command:ls /media
-
If you don't see a folder for your Windows partition, you should create one with the following command:
sudo mkdir /media/windows
-
Next, mount the partition in read-only mode onto this folder with this command:
mount -t ntfs-3g -o ro /dev/sda3 /media/windows
Note that you should change
/media/windows
if your mountpoint is called something else. - Now you will be able to view/open files on your Windows partition using any program in Ubuntu. However you will not be able to write to the partition or modify any files as it is in read only mode.
-
-
If you need to mount the partition in read-write mode and are not able to or willing to boot into Windows and shut it down completely there is a third option. However, it is not included here because it completely deletes
hiberfil.sys
and will cause you to lose all unsaved information in the hibernated Windows programs. The following is a quotation fromman ntfs-3g
about the option that would be used to do this.remove_hiberfile Unlike in case of read-only mount, the read-write mount is denied if the NTFS volume is hibernated. One needs either to resume Windows and shutdown it properly, or use this option which will remove the Windows hibernation file. Please note, this means that the saved Windows session will be completely lost. Use this option under your own responsibility.
Solution (only for Windows 8 and 10):
There is a new feature in Windows 8 called Fast Startup. If this feature is enabled (which it is by default), Windows 8 does not actually completely shutdown when you choose shutdown. Instead, it does a "hybrid shutdown". This is something like hibernating; it makes booting Windows 8 back up faster. So, you need to disable this feature to be able to shut it down properly, and be able to mount the Windows partitions. To do this, boot into your Windows 8 and:
Note: disabling Fast Startup will most likely make your Windows 8 take a longer time to boot. There are no "exact" numbers, but let's say that if it took you 10 seconds to boot into Windows 8, it will now take you 50 seconds after disabling this feature.
- Open Control Panel in the small icons view and click on Power Options. (see screenshot 1)
- Click on Choose what the power buttons do. (see screenshot 2)
- Click on Change settings that are currently unavailable. (see screenshot 3)
- Uncheck Turn on fast startup (recommended). (see screenshot 4)
Click on Save changes. Now, shutdown Windows 8 and boot back into Ubuntu.
If you still aren't able to mount without getting errors, you may need to turn off hibernation completely. Open an elevated Command Prompt (right click on the shortcut, click on “Run as Administrator”), and input:
powercfg /h off
Source: Fast Startup - Turn On or Off in Windows 8.
EDIT: DOING THIS MIGHT HAVE DANGEROUS CONSEQUENCES and Windows might fail to boot or corrupt the filesystem upon booting.
Use ntfsfix in the terminal, even if you can't access Windows
sudo ntfsfix /dev/sdXY
where XY is the partition, e.g. a2
(/dev/sda2
) or b1
(/dev/sdb1
)
ntfsfix repairs some fundamental NTFS inconsistencies, resets the NTFS journal file and schedules an NTFS consistency check for the first boot into Windows.
If you want to terminate the hibernated session, run this command in a Terminal(press Ctrl+Alt+T to open Terminal)
sudo ntfsfix /dev/sdXY
where XY
is the partition. ex: sda2 or sdb1
This also works if you couldn't get into Win8.
My solution was to call a mntwindows
script in /etc/rc.local
. This script would check for hibernation and if hibernated mount as read only. In order to make sure the script may always be called I placed it in /bin
and marked it as executable. The contents of the script are as follows
sudo mount /dev/sda[Partition Number] /media/[Any existing folder name]
#Mounts Windows
if [ $? -eq 14 ]
then
echo "Windows is sleeping, I'm mounting as read-only"
sudo mount -o ro /dev/sda[Partition Number] /media/[Any existing folder name]
fi