Update: Not sure when this happened but I was checking the requirements for FS on Linux at Dropbox.com and apparently they DO support BTRFS once again. So the process outlined in this post is no longer necessary.
Old article: This is less of a write up and more of a PSA:
Want to put BTRFS on every device you have like me because you can’t get enough of CoW FS? Especially for operating systems? Because
machinectl? The list goes on…
BTRFS to your heart’s content! Just create a separate partition formatted with
EXT4 and mount it to your Dropbox-using user’s
This can be done while initially setting up your OS, which if you’re like me you’ll be doing all sorts of finagling with your partition layout anyway, or shrink one of your partitions after the fact (
/home comes to mind, since that’s where Dropbox is usually located).
I’ve done this in several builds so I can have snapshot+rollback capabilities while working around the new(ish) Dropbox file system requirements in OS like OpenSUSE, Debian and Ubuntu. Admittedly, less of the VMs are in service now that Dropbox limits free accounts to 3 devices.
What about snapshots of your Dropbox folder, you ask? Well, Dropbox has its own file versioning system built-in that should keep your files safe from accidental deletion for at least 1 month. So if you delete anything from your
EXT4 Dropbox folder, just get on the Dropbox website and click “deleted files” before it’s too late (!)
In another post, I’ll have to explain how I set up a Dropbox+Syncthing VM to share files across platforms and then propagate those files to other machines using Syncthing so as to skirt the 3-device limit.
I only use about 2GB on Dropbox in the form of PDFs and text files for work – I don’t need a $10/mo 1TB of storage, but I still have LOTS of devices I like to use. Thankfully Syncthing doesn’t have any high-falutin’ requirements for underlying file system types like Dropbox does [insert pointed stink-eye at Dropbox developers].
I’ve done this specifically to retain Dropbox notifications (changed/added file, etc.) which are easily connected to IFTTT for push notifications on cell phones. It’s not a functionality I’ve found easy to recreate using other methods.
If you want to delve deeper into the partitioning issue, here’s a thread in the BTRFS subreddit about the original topic – with an interesting alternative to creating a separate partition, a loop device!