Dropbox 真的会在 2018 年 11 月停止在 ecryptfs 上工作吗?我的系统是 Lubuntu,主文件夹使用 ecryptfs 保护。可以做些什么来确保 Dropbox 仍然有效?
答案1
2018 年 11 月之后发布了 Linux 版 Dropbox 的新版本仅支持启用 xattr 的 ext4,不支持 ecryptfs(Ubuntu 的加密主文件夹)。
我希望如果你使用加密文件系统它将继续工作,直到您将 Dropbox 更新为具有更改的较新版本。
如果您停止使用 ecryptfs 或将 Dropbox 文件夹移出加密目录,更新后的 Dropbox 将会正常工作,但在任何一种情况下,您都需要将文件迁移到非加密位置。
如果你需要加密,Dropbox 仍然可以在块加密设备上的 ext4 分区上工作,例如使用卢克斯。
请注意,Dropbox 是 Ubuntu 本身不提供的第三方应用程序。
答案2
依照指示这指南我设法将 Dropbox 文件夹保留在我的 ext4 ecryptfs 用户主文件夹中。它在 Ubuntu 18.10 上运行良好,无需重新安装 Dropbox。我对原始指南做了一些更改,因为我遇到了一些问题。
步骤 1:创建挂载点,如果未挂载则将其设置为只读
mkdir ~/remote/Dropbox
sudo chattr +i ~/remote/Dropbox
如果您希望将 Dropbox 文件夹放在其他位置,请更改路径的“远程”部分。
步骤 2:创建图像文件并格式化
将 10G 更改为与同步 Dropbox 文件所需的空间相对应的值:
truncate -s 10G ~/remote/.Dropbox.ext4
使用 ext4 格式化图像:
mkfs.ext4 -F ~/remote/.Dropbox.ext4
步骤 3:在 /etc/fstab 中创建一个条目
/home/<username>/remote/.Dropbox.ext4 /home/<username>/remote/Dropbox ext4 user,noauto,rw,loop,x-gvfs-hide 0 0
我们使用参数 x-gvfs-hide 来避免在文件管理器的侧边栏显示该文件夹。
步骤 4:使用 systemd 用户服务挂载 Dropbox 镜像
创建新文件
touch ~/.config/systemd/user/mountdropbox.service
编辑文件,添加以下内容:
[Unit]
Description=Mounts a Dropbox ext4 image in the home directory of a user
After=home-<username>.mount
Requires=home-<username>.mount
[Service]
ExecStart=/bin/mount %h/remote/Dropbox
ExecStop=/bin/umount %h/remote/Dropbox
RemainAfterExit=yes
[Install]
WantedBy=default.target
现在让我们启用并启动该服务。如果用作 systemd 参数,则必须将斜线替换为破折号。
systemctl --user enable mountdropbox.service
systemctl --user start mountdropbox.service
我们还确保我们拥有已挂载的文件夹:
sudo chown <username>:<username> ~/remote/Dropbox
重命名旧的 Dropbox 文件夹(即/home/<username>/Dropbox
)
mv -iv ~/Dropbox ~/Dropbox_old
在原始 dropbox 路径创建一个新的符号链接(即/home/<username>/Dropbox
)
cd ~ && ln -vs ~/remote/Dropbox Dropbox
运行 Dropbox
dropbox start -i
第五步:在dropbox启动前挂载文件夹
在 Dropbox 偏好设置中,取消勾选该选项启动时启动 Dropbox
创建新文件并使其可执行
touch ~/remote/start_dropbox.sh
chmod +x ~/remote/start_dropbox.sh
编辑文件并添加此内容
#!/bin/sh
systemctl --user enable mountdropbox.service
systemctl --user start mountdropbox.service
dropbox start -i
重命名dropbox原有的自动启动文件(否则dropbox会用原有内容覆盖它)
mv -iv ~/.config/autostart/dropbox.desktop ~/.config/autostart/start_dropbox.desktop
编辑文件并修改 Exec 属性
Exec=/home/<username>/remote/start_dropbox.sh
答案3
我以此为动力,建立了一个 Nextcloud 服务器,并用它代替 Dropbox。你也可以考虑 SpiderOak、Box 等。我不太明白 Dropbox 这样做的动机。他们说他们需要 ext4 上可用的文件属性工具,但这些工具在加密文件系统上也能很好地工作。不管怎样,是时候找个更好的了。
答案4
这个 (cha4on) 太棒了。我尝试了上述更简单的解决方案,但它们只是挂起了我的 kubuntu 18.04。我不确定为什么人们会认为它如此过度,对我来说,它不仅运行良好,而且也是一个很棒的教程。我特别喜欢 fstab 行和 systemctl。只有一件事 - 它完成的方式,对我来说,dropbox 程序本身不会链接到 /remote/Dropbox - 可能是因为驱动器不是特定目录?我必须让它将 /remote/Dropbox/Dropbox 作为 dropbox home,并对指向 /home/ 的符号链接进行相应的更正