据说从上古时代传下来过一个「笑话」:
老师!我给这个文件备份了好几份呢,D 盘一份,E 盘一份,F 盘一份,我怕 C 盘东西太多电脑会卡就没放在 C 盘!
等等,你真的需要分区吗?就算分区了,这么备份有用吗?
从我有记忆以来,很多人的 Windows 电脑买来第一件事就是分区,80G 容量硬盘成为主流的时候,大家更是习惯了这样的设定:C 盘除了系统文件啥也不放,D 盘放软件,E 盘放文档。总之不分四五个区总觉得哪里不太对劲,久而久之,大家对以下场景也就不会感到陌生了。
传统的分区方式
虽然这些习惯究竟缘起何处已无从考证,但它们放在当下的确是没有太大意义的,甚至还会给我们的使用带来不便。这里我们不妨设想这样一个场景:
小亮和小刚都租赁了一个 1000 ㎡ 的厂房。小亮是一个强迫症,他把厂房分割成了 10 块,每块 100 ㎡。小刚没有对厂房进行分割。头一个月他们经营得很不错。第二个月突然出现了一批占地 200 ㎡ 的货物,小刚通过简单的调度将货物存储下来,小亮则开始发愁了:他的厂房并不是不够大,可是突然来了一个超出预期的货物,调度就比较困难了。
这个例子适用于所有时期的电脑。以上面的截图为例:如果我要下载总容量为 300G 的游戏,那我至少需要将一个盘里的文件全部移动到另外一个盘中才能愉快地点击「下载」按钮。另外大部分情况下分区间的数据移动也是需要进行重新写入,如果移动的数据里有很多小文件,整个过程就会变得十分漫长无形之间你的快乐就少了几分。
凭啥不让我分区?
在暂且只讨论 Windows 环境的前提下,我们不妨先回到「分区」这件事情的真正意义上来。一般情况下,对分区的热衷往往有以下几种动机:
No.1「我分区仅仅是因为有强迫症,想更好地整理文件。」
其实文件夹也能很好地完成这个工作,多分区反而会为数据备份、归档带来不必要的麻烦,使容错能力大幅下降。关于这点我们在下文会详细解释原因。
No.2「我分区是怕数据丢失,放在多个盘里我放心多了!」
这个就对应着开头的笑话:备份是指在不同物理介质上对文件进行多份复制、存档,通常情况下在一块磁盘的不同分区里做备份仅仅是自我安慰。但这种情况也不能太绝对,如果一个电脑小白在系统崩溃时无法通过技术手段获取重要文件,多分区可以帮助你降低电脑在店里或是售后重新安装系统前保留数据的成本。
No.3「我分区是因为软件装在 C 盘系统会变慢。」
这个想法目前来看完全错误。
一个物理磁盘由于文件系统、物理特性等原因在分区即将塞满的时候的确会出现速度下降的情况,在固态硬盘上这个现象由于 Trim 机制的存在会更加严重。所以如果以保证系统运行速度为由对磁盘进行分区,那很大概率 C 盘空间是会被压缩的,从逻辑上看发生上述情况的可能性也更大。
况且目前的笔记本电脑有很大一部分采用了固态+机械硬盘的配置,如果你将软件安装在机械硬盘分区上来「节省」C 盘空间,软件的加载速度和运行速度相对会更慢。
早年间软件装在 C 盘会导致电脑变慢的观点还有部分原因来自磁盘碎片。
当时机械硬盘占主流,它的数据读写原理导致了这个问题。机械硬盘实际上可以理解成一块容量更大的 CD 光盘,在读取时磁头移动到数据存储的位置才能读出内容。而磁盘碎片问题大概可以这样理解:你在数学课上用一个定页笔记本记笔记,几乎所有内容都是按章节紧密衔接的;但有时候老师讲知识的时候会漏讲或是跳讲,这对于定页笔记本就是一个考验了,到底记在哪里好呢?
这时候大体上有两种解决方法:改用活页笔记本,在每次有需要补充的知识的时候就补充一整张新的空白纸;或继续使用定页本,有新知识的时候记在其他的空白部分,然后在原来的地方标上新知识点的位置。
这两种方法各有优劣,第一种方法会浪费大量空间以解决文件修改、删除的问题;第二种方法则将一个文件打碎后存储。这个时候的机械硬盘就像极了笔记本,它的磁头需要在查看整个文件的时候需要四处移动才能读取完毕。
好在现在的电脑大部分是带有固态硬盘的,有别于机械硬盘需要移动磁头的原理,固态硬盘中使用了闪存 (NAND Flash) 技术,它使用主控芯片读写闪存,用精准施加电流的方式来读写数据。1 没有了磁头的移动,「磁盘碎片」也不再是一个问题,早年间在 C 盘安装软件导致过多磁盘碎片拖慢运行速度的说法自然也不复存在。2
我想给「Windows 娘」一片私人天地
我们自然可以照顾到这种强迫症需求,但且慢,这个想法也得您给的地方够大才行呀!
Windows 的机制(如:WinSxS 会存储各版本的运行支持库等)决定了 C 盘需要一些预留空间来应付日后的存储需求。全新安装的 Windows 大约占用 10 G 的磁盘空间,但是在使用中这个数字会逐渐增大,达到 20 G 或更多。3 在这个时候,软件装不上、系统更新不了,再腾空间就是一件很累的事情了。
而从操作系统设计的角度来看,Windows 上分多个区对于软件来说是不友好的。
如果我们使用 diskpart 工具来查看磁盘分区的话,可以看到以下输出:
Microsoft Diskpart
在系统里,每一个分区实际上按照顺序都有一个物理地址,这与 Linux/Unix 一致,但是它与盘符并没有必然联系。
分区 1, 3-5 是我为了安装 Linux 而建立的分区,它们在 Windows 下不可见。而分区 2 是我的 D 盘,它拥有一个独立的盘符。如果我们在 Linux/Unix 下执行类似命令 df -h 来查看分区情况,则会有如下输出:
df -h on Linux
可以看到,所有的分区并没有一个特定的盘符,反而是最右边有一个 Mounted on 标识出它们被挂载在哪个位置。在这种情况下,整个文件树就像宜家的 SKÅDIS 斯考迪斯洞洞板一样,我们可以随时更换图片或小物件,而不会像传统需要打洞的装饰方式一样对墙体造成不可逆的破坏。
图片来自宜家官网
例如,我在图上的第一排第一列的孔里可以放入一个小挂钩。过了几个月,这个小挂钩生锈了,这时我可以将其拿下更换一个新的挂钩,而不会改变整体板子的结构。Linux/Unix 的文件系统也是这样,如果 /home 目录占了 300 G 大小,但是原来的硬盘只有 512 G,这个时候就可以插入一个新硬盘,将文件转移到新硬盘上,再将新硬盘挂载在 /home,这样就可以完成无损的数据转移和扩容。
而软链接则和 Windows 上的快捷方式类似,不同的是 Windows 上的快捷方式本质还是一个 .lnk 文件。如果在 D 盘下面有个名为 ghost 的快捷方式指向 C:\Windows\Fonts,你并不能通过 D:\ghost 来读取字体文件。软链接本质是一个符号,在文件系统进行读取时实际是直接重定向到目标位置的,这也是一个在不对软件设置等进行修改的前提下转移数据的方式,在之前的转移 iTunes 文章(https://sspai.com/post/44012)里当中有提到。
也就是说,如果你建立的是软链接,你可以用 D:\ghost 代替C:\Windows\Fonts 来访问字体文件。
由于 Windows 最初在设计时没有挂载点、软链接等概念,早期也没有对应的 API,即使现在的版本即使中加入了这些功能,兼容性也不容乐观56。从长远来看,这可能会对于一些在设计时写死盘符的软件的内容库迁移带来麻烦。
道理我都懂,到底咋分好?
如果你的电脑是单硬盘固态硬盘大于 256 G 时可以考虑分为系统盘与数据盘,但不推荐系统盘小于 120 G。
固态硬盘介于 128 G 与 256 G 之间时分区会显得有些多余,建议不进行分区,日常注意数据备份;若需要分区,此时建议至少给系统盘预留出 100 G 的空间。固态硬盘小于 128 G 时不建议分区。机械硬盘一般没有总大小的顾虑,建议给 C 盘 256 G 以上的空间;如果是新购置的电脑且有预留第二硬盘位,建议购买一个固态硬盘作为系统盘使用。
如果你的电脑是多硬盘,那不建议对系统盘二次分区。
通常此类电脑附带的固态硬盘大小是 128 G 或 256 G,参考第一点,保留一个区即可。数据区可以依照个人喜好分 1-2 个区,但是最好的做法是不分区,原因在上文已经叙述过了。
需要注意的是,如果你的电脑带有固态硬盘,在空间许可的情况下应尽量将软件安装在固态硬盘上。在安装系统时,请不要自行建立分区之后安装系统,正确的做法是删除分区后选中空闲空间,让 Windows 安装程序自动建立分区。
至于分区/合并分区的方式,Windows 自带磁盘管理的「压缩卷」功能可以从后往前把硬盘上的空余空间分出一个新的分区来;如果你有更加复杂的需求如从前往后分区,则可以使用 DiskGenius 等专业软件进行操作。
但无论是什么目的何种软件,数据无价,谨慎操作。