Ubuntu mounts external ntfs drive as read-only?
This is a common question and has been answered numerous times in AskUbuntu (for example, here).
In short, you probably have fast boot
turned on in Windows, which is why Linux will only mount it in read-only mode.
You should also have ntfs-3g
installed, which you likely will because it is installed by default on Ubuntu
Q1. Just mount your Windows partition and see if you can create or edit a file there.
Q2. To mount it reliably in read-write mode, you need to disable fast boot
in Windows. Then just double click the Windows partition in your file manager. Alternatively, you can do it from the terminal:
Find out which partition is your windows partition:
[van@z97:mnt]$ lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
loop0 squashfs /snap/ohmygiraffe/3
loop1 squashfs /snap/core/2844
loop2 squashfs /snap/core/2774
loop3 squashfs /snap/core/2898
sda
├─sda1 ntfs Recovery E6A60CE2A60CB559
├─sda2 vfat A80E-CD6E /boot/efi
├─sda3
├─sda4 ntfs 3C5E17DD5E178F30
├─sda5 swap e0f12aa3-2b9f-4e04-a91d-806a9eccb688
│ └─cryptswap1 swap c738647d-8719-4f4e-b454-14802635d295 [SWAP]
└─sda6 ext4 4295796e-0535-4fbf-843d-7c9970c9155e /
sdb
├─sdb1 ext4 4c9ee94a-d2b3-46a0-99a7-7f434814bda5 /home
└─sdb2 ext4 cc902d7c-591b-4a44-8b68-51a7ca7c4e7f /opt
In my example above, it's sda4
.
Now mount it to mount-point /mnt/windows
:
sudo mount -t ntfs /dev/sda4 /mnt/windows
ls /mnt/windows
Then just navigate to /mnt/windows
in your file manager and create a test text file and make sure you can save it.
You can umount the mount using:
sudo umount /mnt/windows
If valuable data, do the repair work on a cloned copy
If the data, that you want to recover are valuable, it is a good idea to clone the drive to another drive of at least the same size and to do the repair work on the cloned copy. This way you dare try potentially risky methods. If things go wrong, you can clone again, and try something else without losing your data. See this link,
- Repair the partition table and file system of a pendrive, scroll to 'Advanced repair ...'
Different causes of your problem to mount the NTFS file system
There could be different causes why you cannot mount the NTFS file system.
The file system needs repair and that, for NTFS, should be done in Windows, as suggested by @MichaelBay. If Windows in your current system does not work, you could connect the drive to another computer with Windows and do the job. But I can understand, that you would hesitate to do that because of the suspected ransomware malware.
Windows is hibernated or semi-hibernated, which means that the file system is in a state, that would be damaged, if written to by another operating system. The solution in this case is to
- boot into Windows if possible, and reboot (not shut down)
- turn off fast startup in Windows, which is a kind of semi-hibernattion
The automatic process is mounting the NTFS partition read-only although it can be mounted read-write. If this is the problem, you can unmount it and mount it manually with read-write permissions.
You can check if a partition is mounted read-only
ro
or read-writerw
in the file/etc/mtab
less /etc/mtab
or specifically with
grep
, for example withgrep 'ro,' /etc/mtab grep '^/dev/' /etc/mtab
See these links,
Unable to access SD Card
How do I use 'chmod' on an NTFS (or FAT32) partition?
The same syntax is used to mount NTFS and FAT32 file systems in linux, so instructions for FAT32 can be used for NTFS.
In my case, the problem was that I had disk caching activated in Windows. The solution was simple: disable disk caching on the drive in Windows.
After using Windows to disable disk caching on my portable USB NTFS formatted drive, I could then automatially mount the drive on my linux machine and both read and write to the disk from linux as well as on Windows.
To disable write-caching in Windows, do the following steps:
- Right-click on the drive in Windows Explorer.
- Open Properties.
- Go to the Policy tab.
- Uncheck "Enable write caching..."