How To Use Dropbox On Non-Ext4 Filesystems (Btrfs, Ext3, XFS, ZFS, Etc.) On Linux

Dropbox will stop syncing

As you probably know, Dropbox has ended support for folder syncing to drives with "uncommon" filesystems, which on Linux means anything but Ext4. As a result, Linux Dropbox users can't synchronize files if the Dropbox folder is on Btrfs, Ext3, ZFS, XFS etc., and even eCryptfs on top of an Ext4 filesystem. You can see the Dropbox desktop system requirements here.

In case you can't switch to a different cloud storage provider or use an Ext4 filesystem without eCryptfs for your Dropbox folder location, you can use a simple tool, called dropbox-filesystem-fix, that works around this Dropbox limitation, allowing the Dropbox desktop client to continue synchronizing files, no matter the filesystem type in use.

Dropbox should have ended support for synchronizing files on uncommon file systems on November 7, 2018. I still receive the old notification from Dropbox, saying "Dropbox will stop syncing. Move your Dropbox folder to a supported file system" though. However, some users have already begun receiving a new notification that mentions "Your Dropbox folder is on a file system that is no longer supported", with buttons to either quit Dropbox, see requirements, or move the Dropbox location.

dropbox-filesystem-fix should "fix" this, making your Dropbox folder appear as if it's on an unencrypted Ext4 filesystem.

The process of getting Dropbox to work on non-Ext4 partitions via dropbox-filesystem-fix involves stopping Dropbox from using its original autostart entry, and replacing it with a python script that preloads a library, both shipped by the dropbox-filesystem-fix project. Using this doesn't require moving the Dropbox folder or mounting a file formatted as Ext4, etc.; you'll continue to use Dropbox in the same way as before. Below you'll find step by step instructions for how to use dropbox-filesystem-fix.

The project page mentions: "This is an experimental fix, not supported by Dropbox. It might cause data loss", so keep this in mind when using it. The workaround may also stop working at any time due to Dropbox changes.

It should also be noted that you may run into issues if the filesystem you're using doesn't support extended attributes, as that's the reason Dropbox mentioned for dropping support for non-Ext4 on Linux. When enabled in the kernel configuration, there are multiple filesystems that support extended attributes though, including Ext3, Ext2, Btrfs, XFS, JFS, and others.

How to get Dropbox to work with non-Ext4 filesystems


These instructions assume you had Dropbox installed on your Linux desktop. If Dropbox is not installed on your system, install it before proceeding.

1. Install Git (to grab the latest dropbox-filesystem-fix code) and build-essential (to compile it).

In Debian, Linux Mint, Ubuntu, elementary OS and other Debian or Ubuntu-based Linux distributions, install Git and build-essential using this command:

sudo apt install git build-essential

2. Get the latest dropbox-filesystem-fix source code via Git and compile it:

git clone https://github.com/dark/dropbox-filesystem-fix.git
cd dropbox-filesystem-fix
make

A file called libdropbox_fs_fix.so should be created in the dropbox-filesystem-fix folder after running make.

You may also download the code by using this ZIP download.

3. Move the dropbox-filesystem-fix folder to /opt and mark dropbox_start.py as executable:

sudo mv dropbox-filesystem-fix /opt/
sudo chmod +x /opt/dropbox-filesystem-fix/dropbox_start.py

dropbox_start.py needs to be in the same folder as libdropbox_fs_fix.so, so don't move it to /usr/local/bin/ or some other folder.

You can now try it. This is not how you'll use dropbox-filesystem-fix, but only a one time try to see it actually fixes the Dropbox non-Ext4 filesystem sync issue on your system. To give it a try, make sure Dropbox isn't running - you can stop it using this command:

dropbox stop

And now start Dropbox by using this command instead of running it directly:

/opt/dropbox-filesystem-fix/dropbox_start.py

If you don't receive any filesystem-related notifications from Dropbox, it means dropbox-filesystem-fix works, and you can proceed to replace the original Dropbox startup entry with the dropbox-filesystem-fix dropbox_start.py script.

4. Stop Dropbox from autostarting.

The original Dropbox autostart entry needs to be removed / disabled, so we can use the dropbox_start.py script instead.

Stop Dropbox from running on startup by unchecking the Start Dropbox on system startup checkbox from the Dropbox Preferences, on the General tab. You can also run this command to stop Dropbox from autostarting:

dropbox autostart n

The Dropbox help mentions that this command may only work on current Ubuntu distributions. You can verify if Dropbox was removed from your startup applications by launching Startup Applications or equivalent from your menu - it shouldn't display Dropbox any more.

If Dropbox still shows up in Startup Applications or runs or startup, you can force it to stop autostarting by changing its Exec line in ~/.config/autostart/dropbox.desktop from Exec=dropbox start -i to Exec=, and making the file immutable so it can't be overwritten by Dropbox. You can do these two operations by running the following commands:

sed -i 's/^Exec=.*/Exec=/' ~/.config/autostart/dropbox.desktop
chattr +i ~/.config/autostart/dropbox.desktop

5. Add a custom Dropbox startup entry.

Now you'll need to open Startup Applications or equivalent from your applications menu, and add a new entry called Dropbox fix with the following in the command field: /opt/dropbox-filesystem-fix/dropbox_start.py

You can also do this manually, by creating a file called dropbox-fix.desktop in ~/.config/autostart/ with the following contents:

[Desktop Entry]
Type=Application
Exec=/opt/dropbox-filesystem-fix/dropbox_start.py
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name=Dropbox fix

Now logout / login and Dropbox, which starts automatically on login just like before, should be working with your Btrfs, Ext3, ecryptfs on top of Ext4 and so on.

In case you close Dropbox, don't run it from the menu as that entry doesn't make use of dropbox-filesystem-fix. Run it using /opt/dropbox-filesystem-fix/dropbox_start.py or make a new desktop file for Dropbox with /opt/dropbox-filesystem-fix/dropbox_start.py as the command, and place it in ~/.local/share/applications/. But in most cases, Dropbox is not launched from the application menu, so the autostart changes made above should be enough for most users.

via preining.info

5 comments:

  1. Or the easiest way is to ban Dropbox for this bullshit technical restriction...

    ReplyDelete
  2. A question. This restriction also cover using dropbox storage with rclone or just is for desktop official client? Thanks in advance.

    ReplyDelete
    Replies
    1. It only affects the official client. You can use Dropbox with rclone either to transfer files or to mount it without issues.

      Delete
  3. On my machine dropbox works fine with XFS.

    Last week the dropbox client complained about the file system, but this week it works as good as ever.

    openSUSE Tumbleweed 20181110-657.1 (updated this week)
    Dropbox v61.4.95

    ReplyDelete

Powered by Blogger.