So can Linux corrupt the data on an NTFS partition (I am using Ubuntu, but my question is about Linux in general)?
short answer: no.
long answer: yes, if you want to. windows has 'hibernation'. and it is enabled by default on windows 10. it saves cache, tmp files, unfinishied task and more. this makes windows shutdown and boot process a lot faster.
writing something on this state can corrupt saved tmp files, causing windows boot with new clean session but it wont corrupt system. but writing on hibernation state can also overwrite saved unfinished task, including file movement, copy, and anything related to file. so files will be corrupted.
linux's default NTFS driver can detect hibernation, and it will mount filesystem on read-only state so you cant do anything on that filesystem unless you override that protection. this can be fixed by turning off 'fast restart' on windows power option. this disables hibernation, allowing file editing.
- do not mount(RW mode) after sudden power loss. it can mess things up.
- if you want to edit just once without adjusting windows settings, type this command
shutdown /sthis will shut down systemsafely.
- be aware windows system files are not hidden or locked. those are not protected on linux and you can mess windows.
I think you are asking a wrong question. Is it safe to access NTFS filesystem from Linux? Yes, it is. But no one can give you 100 % guarantee and your data can get corrupted. The chance is very low, but it can happen. It can happen with any filesystem (even native Linux ones). The solution is simple: backups, you can lose your data for many reasons and having a backup is the only way to be safe.
The general rules are:
- Do not hibernate Windows, always shutdown it before booting Linux. The NTFS driver can detect this and shouldn't allow mounting Windows system partition of a hibernated system.
- For removable devices, always use the "safe remove" action before disconnecting it (on both systems).
And if you are worried, mount NTFS as read-only in Linux and find a different way to share data between Windows and Linux. But there is no real reason for that.