今年第一季度的时候,我成了 OneDrive 以及 Microsoft 365 套件的粉丝。如此高性价比、高用户体验、高颜值的服务,正好击中了刚刚打算不用 Linux 一段时间的我的心。但是,大约一个月前,我发现 OneDrive 的在线版网址打不开了,但是各种同步仍然可以进行。这就意味着,我在除了 Windows 之外的操作系统上,都无法在线预览或者下载我的文件了。这样下来,OneDrive 的作用直接大打折扣。

云的重要性

OneDrive 在我心目中,可以算是残废了。为什么我一定需要一个云服务呢?

我的室友告诉我(当然,很可能是他从其它地方看到或听说的),重要资料一定要多加备份:本机一份,移动硬盘一份,云端一份。可能每个人对于自己的数据的概念不同,但是我的数据对我而言是极度重要的。

我一直没有移动硬盘。在使用 OneDrive 期间,我一直能算是本机一份、云端一份。云给我带来了什么呢?

云给我带来了安全:即使我的电脑遗失,我的文件也不会丢失。看看这个新闻:中国工程师在美国遭抢劫遇难 供职于IBM公司,你就知道在云端有备份的重要性了。即使我的电脑遭到抢劫,我也可以淡然地放弃这一身外之物。

另一方面是方便性,我可以在任何设备,甚至不属于自己的设备上,在线访问和下载我的文件。今年疫情期间,云的这一功能就起到了重要作用——不能返校的我,一样可以获取云上我的数据,在家里的电脑上进行工作。

云的缺点

云也当然也有缺点。最容易被想到的就是隐私问题了。这方面做得最差的,莫过于百度云了——随便清除用户数据,虚报存储空间,服务说关就关,等等。不管怎么说,被传到云端的数据,就是被放到了一个第三方的手中,第三方对数据有绝对的控制权。

第二个可能的缺点就是可靠性与稳定性。OneDrive 个人版的服务器不好,在国内的某些网络下访问比较慢(所幸我没有遇到过这个问题)。但是它应该不会突然倒闭或是突然被攻击。倒闭的云(网盘)也可以举出很多例子,国内只有百度网盘活下来了。一般来说,选择比较专业的云厂商会更可靠一些。

第三个缺点,就是文件冲突。要是要使用同步云,对于文件的处理就得小心一点。例如,Emacs 在运行时会产生一些临时文件,这些临时文件不仅不应该被同步,而且会使某些云服务报错。不过,这个问题很少遇到,就算遇到,通常也不是大问题。

但是,即使有这么多缺点,可以确定的一点是,把文件存在大厂的云上,比存在自己本机上更可靠。你把数据存在自己的电脑或移动硬盘上,它可能会被偷、被抢,可能会故障;你把数据存在自己的服务器或 NAS 上,它也会有被偷/抢,遭受故障,或者被不可抗力袭击的风险。而大厂的数据通常会多个服务器多份备份,即使一个服务器停机,也不会让你的文件彻底丢失。我们始终应该防患于未然

云的选取

OneDrive 绝对是和 Windows 配合最好的云,因为你可以选择每个文件的存储方式:存在本机,或者存在云端,但是在本机仍然可见。可是现在它的网页版打不开,我对它失望透了。

Nextcloud 是我曾经的最爱,因为它是靠自己手动搭建的,隐私性可以得到保证。我放弃它的原因有三:一,自己租用的服务器存储空间都过小,并且价格高昂;二,我曾经因为误操作,弄丢了自己放在 Nextcloud 上的大部分文件;三,Nextcloud 缺乏大厂云的可靠性。

坚果云应该是国内同步云的一哥了,但是曾经我因为它的 bugsome Linux client糟糕的同步算法而放弃了它。我的室友购买了它的会员,希望它现在变好了一些。

Dropbox 应该是世界范围内的同步云老大,但是被墙了。我只能保证我 99% 的时间和设备拥有顺畅网络访问,而不是 100%,所以 Dropbox 被我排除在外。如果不在乎网络问题,或者已肉身翻墙的话,强烈建议 Dropbox,我曾经使用它时用户体验非常好。

Google Drive 是谷歌家的同步云,我体验的时间很短,也被墙了,暂时没感受出什么优缺点。不过,安卓手机上的谷歌相册可以把照片备份到 Google Drive 上的免费空间里,就图这一点就值得给它一个赞。

其它同步云,我没有使用过,也没有资格评价。

全盘加密

以下内容涉及到许多 Linux 与文件系统的知识

Windows 使用的是 NTFS 系统,不能进行全盘加密,但是 Linux 可以使用 LUKS2 文件系统进行全盘加密,提供额外的安全性。全盘加密过的电脑,即使被盗,偷盗者也无法获取硬盘中的数据。我尝试过一小段时间全盘加密,但是很快放弃了。

全盘加密的好处,自然是安全性了,但是也有坏处。首先,开机会变得更麻烦,因为有一个输入密码来解密硬盘的额外步骤;其次,性能会收到略微影响;第三,如果电脑真的故障了,修电脑的人多半没法打开与解密一个 LUKS2 文件系统的硬盘,必须要自己准备 Linux Live USB 之类的工具。思索之后,我认为,我的数据固然重要,但被小偷获取也没什么大不了的,又没有什么商业机密,因此放弃了这种麻烦的方式。

随后,我选取了 systemd-homed。这是一个尚比较年轻的 systemd 服务,可以让用户创建便携的、加密的用户目录,也是我目前在使用的服务。它的优点是,可以顺畅地开机,正常地登录用户,而用户的登录密码,就是 LUKS2 加密的密码,这样,整个登录过程会就像没有加密一样;并且,用户目录的文件是以一个镜像文件的形式存储的,只有在用户登录时,这个镜像才会被挂载。如果需要重装或换机,把这个镜像文件移动到同样支持 systemd-homed 的新系统即可。

这样做仍然有一点点麻烦的地方。首先,我的电脑是支持指纹识别的,但是由于指纹文件存储在用户目录中,导致如果是刚刚开机,或者休眠过久,那么指纹登录就无法生效。其次,如果电脑故障,想读取这个 LUKS2 加密的镜像家目录,需要另一台支持 systemd-homed 的电脑,也是很麻烦的。

使用不能顺畅指纹开机的麻烦,以及电脑故障/重装时难以取出数据的麻烦,换取加密级的文件安全性,我认为还是有点儿过头了。即使不使用 systemd-homed,仍然可以拷贝整个用户目录而获得便携性(甚至还要更快一点)。因此,我打算放弃这种方式。我需要怎么做呢?我得重装系统。我可以把目前的用户文件全部拷贝到家目录之外的位置(除了 .identity 之外,删除当前用户,然后用 systemd-homedhomectl 命令新建一个不加密的用户。

Linux 与云

当然,与云的联接也必不可少。只不过,Linux 上无法使用 OneDrive 与 iCloud 等云服务(OneDrive 通过某些工具也能实现,但是很麻烦,效果也不好)。现在我打算再次试用(我曾经不喜欢的)坚果云。