前段时间,Dropbox 开始警告我仅支持 ext4 作为 FS。作为一名 BTRFS 的忠实用户,我并不高兴,但我还是这样做了:
dropbox stop
dd if=/dev/zero of=~/dropbox.img bs=1M count=4096
mkfs.ext4 ~/dropbox.img
echo "${HOME}/dropbox.img ${HOME}/Dropbox ext4 rw,async 0 2" | sudo tee -a /etc/fstab
rm -rf ~/Dropbox/*
sudo mount "${HOME}/Dropbox"
sudo chown "${USER}:" "${HOME}/Dropbox"
一切正常,没有错误,但 Dropbox 仍然说我应该为其文件夹使用 ext4。我做错了什么?
答案1
有三Dropbox 需要在 Linux 上继续工作,总共需要 100 项,并且只有一项得到了妥善记录。我在这里总结的是在 Ubuntu 18.04.1 (amd64) 上适用于 Dropbox 59.4.93 的。
您已经扫清了第一个障碍:
ext4
基础文件系统需要不是ecryptfs
. 例如,如果您的主文件夹已加密,则需要将 Dropbox 文件夹放在其他地方,例如单独的ext4
分区。
其他需要检查的事项如下:
- 文件系统
ext4
需要使用ext_attr
on 进行格式化。这是默认行为,但您可以通过运行debugfs -R features /dev/sda1
(或任何设备文件的名称——如果您使用 LVM,则可能类似于/dev/mapper/computername--vg-partitionname
)来确认 - 该
ext4
分区需要使用user_xattr
选项集进行挂载(您可以在 GNOME 磁盘中检查并添加选项或/etc/fstab
直接编辑) - 目标文件夹(或 Dropbox 同步文件夹)至少需要二挂载点以下的级别,如所述这个帖子。这显然是一个让人无奈的 bug。
一旦我解决了所有这些问题,Dropbox 终于允许我移动目标文件夹,并且有关“不支持的文件系统”的错误消息消失了。
答案2
您的解决方案还有另一种选择 - GitHub 存储库名为dropbox-文件系统修复。这会让您的 Dropbox 文件夹看起来就像位于未加密的 Ext4 文件系统上一样,无论您使用什么文件系统,您都不必挂载任何东西,您只需使用 dropbox-filesystem 库 (LD_PRELOAD) 运行 Dropbox。
你需要从GitHub,编译该库(make
),并用dropbox-filesystem-fix提供的dropbox_start.py脚本替换Dropbox启动项。
如果您需要完整的分步说明,请查看这页。
答案3
我设法通过使用格式化 ext4 分区(而不是最初使用 GParted)来解决这个问题gnome-disks
,并确保 Dropbox 目录位于分区挂载点的 2 级深度。在 64 位 Ubuntu 18.04.1 LTS 上,使用 Dropbox v60.4.107。
完整故事情节:
首先,我使用 GParted 创建了专用的 ext4,它也用于调整旧分区的大小以便为新的 ext4 留出空间。
然后我尝试确保我的设置满足以下描述的所有要求:Florian 的回答,但这并不能解决我的问题。
然后,在尝试了多次结合不同的解决方案之后,我决定擦除整个分区,并使用 Ubuntu 的本机磁盘管理器(简称为磁盘或
gnome-disks
)将其重新格式化为 ext4,从而使 Dropbox 接受该分区为 ext4!
我使用以下行/etc/fstab
来挂载分区:
UUID=ext4_partition_UUID /media/dropbox ext4 defaults 0 2
(其中ext4_partition_UUID
代表使用 找到的 UUID ls -l /dev/disk/by-uuid/
)
请注意,我没有user_xattr
在这里指定选项。
我的 Dropbox 文件夹现在位于/media/dropbox/data/Dropbox
- 但没有检查 2 的深度是否真的有必要。
似乎在使用 GParted 而不是本机软件格式化 ext4 分区时出了点问题 - 不知道为什么,也不知道它们之间有什么区别。如果有人知道,我很乐意了解更多信息。
答案4
我的安装 Lubuntu 18.10 的笔记本电脑前段时间开始抱怨 Dropbox,但直到上周我才发现它没有安装包属性安装。安装完成后,Dropbox 似乎很开心……
我偶然看到了这篇文章https://unix.stackexchange.com/a/475253并尝试检查笔记本电脑上 Dropbox 目录中的文件属性。我惊讶地发现该getfattr
命令不可用,这导致我安装了该包。
这可能是您前进的一种方式,也可能是一个完全不同的问题,但我希望它值得引起注意。