Need to see if your shared folder is taking up space on your dropbox 👨💻? Find out how to check here.
Forum Discussion
David C.118
9 years agoExplorer | Level 4
Dual booting with shared DB drive possible?
I am looking in to buying a new laptop and will need to dual boot Windows and Ubuntu. I am planning three SSD's - one for Windows, one for Ubuntu and one as a shared data drive. Is it possible to...
- 9 years ago
It's very possible, just not supported or recommended.
Install Dropbox and use the Advanced Options to specify the location for your Dropbox folder. Allow it to sync completely. Boot into the other operating system and install Dropbox, again using Advanced Options to specify the same Dropbox folder. Dropbox will index your files when the installation is complete, but shouldn't need to sync anything unless there have been changes (though it may appear to be syncing, just let it work).
It is extremely important that you DO NOT USE SELECTIVE SYNC from either operating system when running in this configuration. If you do, you WILL lose files.
I would also suggest never booting into the other operating system until you're certain that the current one is fully synced. Also, as always, keep your own backups of your data.
paloi
8 years agoExplorer | Level 4
I feel the same pain. I have 170 Gb in my Dropbox, therefore I am a paying user.
Counting the Dropbox folder plus the .cache folder plus the DBs ..., goes beyond 200 Gb at my hard disk ...
It looks awkward and wasteful to have 200Gb in a windows partition and again another 200Gb in the Linux partition.
It is rather unaffordable, if you mostly work with laptops, and you expect to have fast SSD drives, as basically a 512 GB SSD which is not cheap will not be enough and then I will need a 1TB SSD drive which is quite expensive.
This thread started with someone trying to eliminate the duplication of the DB, and has evolved into confirming duplication of both, DB and files.
For me, this blow up the competitive advantage that Dropbox has over Google Drive and OneDrive, as until now they were performing quite poorly on Linux (to be gentle, because they do not have Linux client), ... so now this places Dropbox to some short of similar side, where it is only able to work in one of the two OS of my Dual boot laptops.
I can understand the complexity of this, and accept that the indexing is done every-time we switch of OS, and that in the worst case scenario the DB is duplicated ... but having several hundreds of GBs duplicated is not an option for me and most of the dual boot Dropbox clients ...
TripleS
7 years agoNew member | Level 2
I'm using window 10 and ubuntu 18. I tried to use the same folder for windows and ubuntu however dropbox says:
"To sync your dropbox move your drobox folder to partition with a compariable file system,.. Drop box is compariable with ext4"
Since this thread is outdated, are there any updates?
- TripleS7 years agoNew member | Level 2
@Здравко - thank you. btw - who wrote this script? have you tested it?
- Здравко7 years agoLegendary | Level 20
The script part is entirely mine and C-code is derived from number other publications.
Ooo.. I didn't see the question for test! Yes, I currently use it. :slight_smile:
- Здравко7 years agoLegendary | Level 20
TripleS, Sorry, my last publication was one of my drafts. For sure it will not work. It was debug version (some syntax error was still there, missing punctuation). After install I didn't use it for long time (multiple versions was on same place). The next is the last actual version:
#!/bin/bash ############################################################################## # Workaround for Dropbox daemon # ----------------------------- # Verified on Dropbox v73.4.118 # Just make it executable (if need, using # $ chmod a+x fix_dropbox # ) and run it. # Author: Здравко # www.dropboxforum.com/t5/user/viewprofilepage/user-id/422790 ############################################################################## # Figure out the target places. USR_HOME=`realpath ~` USR_LOCAL="$USR_HOME/.local" USR_LOCAL_BIN="$USR_LOCAL/bin" USR_LOCAL_LIB="$USR_LOCAL/lib" DRB_REPLACEMENT="$USR_LOCAL_BIN/dropbox" DRB_FIX_LIB="$USR_LOCAL_LIB/libdropbox_ext4.so" USR_PROFILE="$USR_HOME/.profile" ############################################################################## # Precheck and fix up some prerequisites. # Ensure target directories are on their place. if [[ ! -d $USR_LOCAL_BIN ]] then echo "The Directory \"$USR_LOCAL_BIN\" doesn't exist, going to create it." mkdir -p $USR_LOCAL_BIN if [[ $? -ne 0 || ! -d $USR_LOCAL_BIN ]] then echo "Directory \"$USR_LOCAL_BIN\" creation fail! Exit." exit 1 fi fi if [[ ! -d $USR_LOCAL_LIB ]] then echo "The Directory \"$USR_LOCAL_LIB\" doesn't exist, going to create it." mkdir -p $USR_LOCAL_LIB if [[ $? -ne 0 || ! -d $USR_LOCAL_LIB ]] then echo "Directory \"$USR_LOCAL_LIB\" creation fail! Exit." exit 1 fi fi # Ensure backup for any existing files. if [[ -e $DRB_REPLACEMENT ]] then if [[ -f $DRB_REPLACEMENT ]] then echo "\"$DRB_REPLACEMENT\" already exist, going to back it up." mv --backup=t -T $DRB_REPLACEMENT "${DRB_REPLACEMENT}.backup" if [[ $? -ne 0 || -e $DRB_REPLACEMENT ]] then echo "Error backing up \"$DRB_REPLACEMENT\" file! Exit." exit 1 fi else echo "$DRB_REPLACEMENT is not regular file! Exit." exit 1 fi fi if [[ -e $DRB_FIX_LIB ]] then if [[ -f $DRB_FIX_LIB ]] then echo "\"$DRB_FIX_LIB\" already exist, going to back it up." mv --backup=t -T $DRB_FIX_LIB "${DRB_FIX_LIB}.backup" if [[ $? -ne 0 || -e $DRB_FIX_LIB ]] then echo "Error backing up \"$DRB_FIX_LIB\" file! Exit." exit 1 fi else echo "$DRB_FIX_LIB is not regular file! Exit." exit 1 fi fi # Ensure writing permissions. if [[ ! -w $USR_LOCAL_BIN || ! -x $USR_LOCAL_BIN ]] then chmod u+rwx $USR_LOCAL_BIN if [[ $? -ne 0 ]] then echo "The Directory \"$USR_LOCAL_BIN\" is inaccessible! Exit." exit 1 fi fi if [[ ! -w $USR_LOCAL_LIB || ! -x $USR_LOCAL_LIB ]] then chmod u+rwx $USR_LOCAL_LIB if [[ $? -ne 0 ]] then echo "The Directory \"$USR_LOCAL_LIB\" is inaccessible! Exit." exit 1 fi fi ############################################################################## # Generate actual workaround components. # Fixer - source and building. gcc -shared -fPIC -ldl -xc -o $DRB_FIX_LIB - << EndOfSrc // Functions replacements #define _GNU_SOURCE #include <stdlib.h> #include <sys/vfs.h> #include <linux/magic.h> #include <dlfcn.h> #include <sys/statvfs.h> #include <stdarg.h> static int (*orig_statfs)(const char *path, struct statfs *buf) = NULL; static int (*orig_statfs64)(const char *path, struct statfs64 *buf) = NULL; static int (*orig_open64)(const char *pathname, int flags, ...) = NULL; int statfs(const char *path, struct statfs *buf) { if (orig_statfs == NULL) { orig_statfs = dlsym(RTLD_NEXT, "statfs"); } register int retval = orig_statfs(path, buf); if (retval == 0) { buf->f_type = EXT4_SUPER_MAGIC; } return retval; } int statfs64(const char *path, struct statfs64 *buf) { if (orig_statfs64 == NULL) { orig_statfs64 = dlsym(RTLD_NEXT, "statfs64"); } register int retval = orig_statfs64(path, buf); if (retval == 0) { buf->f_type = EXT4_SUPER_MAGIC; } return retval; } int open64(const char *pathname, int flags, ...) { if (orig_open64 == NULL) { orig_open64 = dlsym(RTLD_NEXT, "open64"); } register const char *p0 = "/proc/filesystems", *p1 = pathname; while(*p0 && *p1 && *p0 == *p1) ++p0, ++p1; if (*p0 == '\0' && *p1 == '\0') { return -1; } va_list arg; va_start(arg, flags); mode_t mode = va_arg (arg, int); va_end(arg); return orig_open64(pathname, flags, mode); } EndOfSrc if [[ $? -ne 0 ]] then echo "Error building \"$DRB_FIX_LIB\"! Exit." exit 2 fi echo "\"$DRB_FIX_LIB\" - build and ready." # Wrapper generating. cat > $DRB_REPLACEMENT << WrapperHead #!/bin/bash if [ \$1 == "start" ] then sleep 1 patchpath=\`which \$0\` if echo \$(for i in \`ps -C dropbox -o pid\` do ls -l /proc/\$i/exe 2>/dev/null | grep -v \$patchpath done) | grep dropbox > /dev/null then timeout=300 # Make sure there isn't any concurrent start operation in progress. /usr/bin/dropbox running while [[ \$? -eq 0 && \$timeout -ne 0 ]] do sleep 1 ((--timeout)) if echo \$(for i in \`ps -C dropbox -o pid\` do ls -l /proc/\$i/exe 2>/dev/null | grep -v \$patchpath done) | grep dropbox > /dev/null then /usr/bin/dropbox running fi done # If there is running application instance, force its stop. /usr/bin/dropbox running while [[ \$? -ne 0 && \$timeout -ne 0 ]] do /usr/bin/dropbox stop sleep 1 ((--timeout)) /usr/bin/dropbox running done # If something goes wrong... if [[ \$timeout -eq 0 ]] then # ...notify somehow about. title="Problem launching Dropbox" mainmsg="Possible existing application instance dead" submsg="Check that, clear and try start again" if which notify-send > /dev/null then notify-send --icon=dropbox "\$title" "<b>\$mainmsg\!</b>\n\$submsg." elif which zenity > /dev/null then zenity --error --title="\$title" --timeout=10 --width=380 \\ --text="<span size=\"xx-large\"><b>\$mainmsg\!</b>\n\$submsg.</span>" \\ 2> /dev/null else echo " \$title!" echo "\$mainmsg." echo "\$submsg." fi exit 1 fi fi fi WrapperHead declare -p | grep "declare -x LD_PRELOAD" > /dev/null if [[ $? -ne 0 ]] then echo "export LD_PRELOAD=$DRB_FIX_LIB" >> $DRB_REPLACEMENT else echo "LD_PRELOAD=$DRB_FIX_LIB:\$LD_PRELOAD" >> $DRB_REPLACEMENT fi echo "/usr/bin/dropbox \$@" >> $DRB_REPLACEMENT chmod a+x $DRB_REPLACEMENT echo "\"$DRB_REPLACEMENT\" - generated." # Environment check and fixup (if need). echo "" echo "" ( IFS=: for a in $PATH do if [[ "$a" == "$USR_LOCAL_BIN" ]] then exit 0 elif [[ "$a" == "/usr/bin" ]] then break fi done exit 1 ) if [[ $? -ne 0 ]] then echo "" >> $USR_PROFILE echo "" >> $USR_PROFILE echo "# Add $USR_LOCAL_BIN to \$PATH environment variable." >> $USR_PROFILE echo "# This addition is dedicated for Dropbox Workaround." >> $USR_PROFILE echo "# Remove theses lines when they are no more needed." >> $USR_PROFILE echo "PATH=\"$USR_LOCAL_BIN:\$PATH\"" >> $USR_PROFILE echo "" >> $USR_PROFILE echo "Your Dropbox is almost patched. You have to logout and login" echo " (or on Your opinion - restart), so all changes to take effect." echo "After Your next account login:" fi echo "Your Dropbox is already patched. Just start it from desktop GUI or type:" echo "\$ dropbox start" echo "in console." - paloi7 years agoExplorer | Level 4
Здравко Thanks for your posting, it looks like a new hope after so many months.
Could you please confirm what the script does?
Not only the workarround to have the Dropbox only once over the NTFS locations, but also a single DB which avoids reindexing every time one boots with the other OS, plus support for selective sync?
- Здравко7 years agoLegendary | Level 20
Hi paloi, Yes, I reinstall it just to be sure (after detecting that the last publication wasn't the recent). Exact function is: mask the underlying filesystem, so for Dropbox it looks like Ext4 (doesn't matter what is realy). The change is only how it looks like, there are no any actual changes in real filesystem.
- Здравко7 years agoLegendary | Level 20
I don't use selective sync, so this is not tested.
- chasDSO7 years agoHelpful | Level 5
'..There is no common format that is supported on each operating system....'
That post doesn't make sense. You don't need compat formats on the drive system. Dropbox should just be copying down folders and files to the file system irrespective of what format. Any of those will support the same files - for instance, you can dload .docx or linux text files just fine to any format - disk format is irrelevent.
There is no technology reason why Dropbox decided to end support for this option - they supported it in the past I believe but functionality was removed.
- Rich7 years ago
Super User II
chasDSO wrote:
'..There is no common format that is supported on each operating system....'
That post doesn't make sense.
In terms of Dropbox, yes, it does. Dropbox does not support NTFS for Linux, anything other than NTFS for Windows, etc. Are there workarounds? Yes, apparently, but that doesn't make my comment invalid. In reference to Dropbox and how it works, there is no common format that will allow the official Dropbox client to work across mutliple operating systems. I'm not talking hacks or workarounds. I'm not talking about Linux being able to access NTFS. I'm talking naitive Dropbox support of the file system.
Regardless, I removed that last post of mine since Здравко has a workaround.
There is no technology reason why Dropbox decided to end support for this option - they supported it in the past I believe but functionality was removed.
No one ever said there was a technology reason for it. No one is debating that. Dropbox simply doesn't support it anymore. Technically they never officially supported it, but it worked.
- Здравко7 years agoLegendary | Level 20
Rich wrote:...
No one ever said there was a technology reason for it. No one is debating that. Dropbox simply doesn't support it anymore. Technically they never officially supported it, but it worked.
Almost, but not exactly! In fact You are right, there wasn't (and is not) any technology. Dropbox (or any other such service) don't need to support this. This is OS responsibility! And, in this context, it's not clear why was this limitation added (not support missing)! Support is not need.
- Rich7 years ago
Super User II
Здравко wrote:Support is not need.
You're confusing support from a technology standpoint (Product A working with Product B) and support from a business standpoint (Company A saying "No, we don't allow that.").
Dropbox never officially supported Dropbox being used in such a configuration. They didn't design it to work like that, and if a person wasn't careful they could cause damage to their files or possibly lose data (like by using Selective Sync in such a configuration). I'm guessing that's the reason Dropbox no longer supports their product being used in such a way. They could simply be trying to make it more idiot-proof, like they've been trying to do for years.
About Create, upload, and share
Find help to solve issues with creating, uploading, and sharing files and folders in Dropbox. Get support and advice from the Dropbox Community.
The Dropbox Community team is active from Monday to Friday. We try to respond to you as soon as we can, usually within 2 hours.
If you need more help you can view your support options (expected response time for an email or ticket is 24 hours), or contact us on X, Facebook or Instagram.
For more info on available support options for your Dropbox plan, see this article.
If you found the answer to your question in this Community thread, please 'like' the post to say thanks and to let us know it was useful!