Linux help (for a dual-boot problem!) that affects my use of Zotero

So I don't waste your time ... this is specifically a Linux problem rather than a problem with Zotero itself.

It's a follow-on to a problem that I first raised a year ago on:
https://forums.zotero.org/discussion/92670/report-id-1084601263#latest and which I have been completely unable to solve. As @dstillman has explained in an answer on the earlier discussion, this is *not* a Zotero problem. It's a Linux problem that affects my use of Zotero.

Briefly, I have a dual-boot system. The Windows partition (on /dev/sda2) is mounted with:
> sudo mount -t ntfs -o nls=utf8,umask=0000 /dev/sda2 /media/myusername/windrive

I have general read/write access on the Windows partition for *most* file operations. The problem is that although Zotero can access the library on Windows OK, it can't update the library because of an error related to setting times (see the discussion referred to above). Has anyone else encountered a similar problem, and if so, how did you overcome it.
  • Suddenly, out of the blue, a solution!

    The problem stems from the command used to mount the NTFS drive. In the original `mount` command, it IS necessary to use `sudo` because the Linux system will only allow the NTFS drive to be mounted by someone with (temporary) super-user permissions. However, a problem then arises, which is that the NTFS drive is then owned by `root` and some operations on the drive are only `root` permitted by `root`. For example, copying (`cp`)from the Linux partition to the Windows partition would be allowed, but moving a file with `mv` would not be allowed, because moving (`mv`) requires permission to manipulate times on the NTFS drive. So, `sudo mv ...` would work, but `mv` alone would not.

    The solution is to add options into the original mount command. Specifically, tell your Linux system, that you, and not root, are the owner of the mounted NTFS partition. Just include the uid and gid options in the mount command as follows:

    sudo mount -t ntfs -o uid=myusername,gid=mygroupname,nls=utf8,umask=0000 /dev/sda2 /media/myusername/windrive

    The Zotero application on Linux can then update its library on the NTFS partition OK ... AND sync correctly.
  • Note that you can configure Linux to automatically mount NTFS partitions for you in the /etc/fstab file so you don't have to run this command every time between restarts and such. You may also want to use the proprietary ntfs-3g driver, but that is up to you as Linux kernel 5.15 has a Microsoft approved implementation of the NTFS driver, although people have reported some corruption issues with that.

    See How To: Debian/Ubuntu Linux Auto Mount Windows NTFS File System
Sign In or Register to comment.