不知道为啥,系统把W君很多年前的一个帖子《》翻出来了,成了24小时内最火的一篇文章。
其实都2120年了,还在讨论是不是需要分区其实并没有太大的意义。在回复区答应了粉丝要着重写写这个内容的,那么咱们就来看看吧:
W君的主业其实并不是做自媒体,而是在做IT方面的系统咨询和一些系统架构设计的工作。有点时候也会看一些数码博主的自媒体内容,但大部分时间的感受就是“一群土炮瞎BB”(没有别的词汇来形容了),其实很多的计算机或者网络上的设计都遵循着严格的协议和规范,也就是靠这些协议和规范才能够让我们顺畅的使用各种数码产品。
严格意义上说,如果只有一块硬盘分不分区,性能如何都只是一个玄学问题。
很多人的潜意识认为,分区是将硬盘分为不同的“块”,但硬盘的结构并不是这样设计的。一块硬盘在新出厂的时候上面几乎不会记录任何信息,盘片就是一块能存储磁性的金属圆片。
在硬盘做“低级格式(Low Format)”化的时候会将硬盘划分出柱面、磁道和扇区,目前这个步骤在大多数硬盘出厂的时候会由厂家来做,在20多年之前则是得让电脑用户自己来操作的,这个过程叫做“低格”。为什么要做这个步骤呢?当初制造硬盘的时候很难将盘片做得绝对的圆也很难让盘片按照一个绝对的圆心旋转,每个不同的硬盘都有微小的差异。这时候就需要根据每个不同的硬盘差异让整个硬盘自适应一下。于是就有了前面说的低级格式化。就好比开始用硬盘之前,用笔(磁头)画好“这块硬盘”的存储区规划。在低级格式化的过程中会在硬盘的最外层的一个磁道写入磁盘的基础数据信息,同时划分出磁盘的不同扇区。这是一个初始化磁盘的过程。
然后就是格式化(Format)了。在磁盘初始化之后,会分出不同的扇区,这些扇区的地址信息会存储在磁盘的MBR(主引导记录,Master Boot Record)中。
然后主引导记录后面会记录一个分区表,分区表内来记录磁盘的不同分区也就是CDEFG……盘的具体起始和结束位置。Format格式化的工作就是对某一个具体的分区进行“簇”的划分,如果不选择快速格式化的话,还会得每个“簇”进行填充0的操作。
“簇”(Cluster)这个概念就不是硬盘上的物理概念了,而是操作系统为了存储文件所做的一个中间体。一个簇会涵盖一个或多个磁盘上的扇区。
这是一个操作系统驱动磁盘的驱动程序算法。只不过在当年由于磁盘空间不大,例如W君最早用的硬盘磁盘是40MB的,存储簇数据的空间在硬盘上也就是相当宝贵了,于是在FAT(文件分配表)最早的版本中存储的簇的数量是固定的。这就带来了一个问题,例如在一块40MB的硬盘上簇所代表的存储空间是1KB,但是到了一块1GB的硬盘上,一个簇的所代表的存储空间就是16KB了。
对于磁盘来说簇的大小是指磁盘上存储文件位置的门牌号。
但对于操作系统来说,簇是文件的最小存储空间。每个文件至少要占用一个簇
早期硬盘容量小价格贵啊!那么如果一个1K大小的文件存储在一个1K大小簇里面是理想的情况,但是世界上哪有这么多碰巧的事情呢,一个文件可能是1K+1个字节。那么在存储的时候也就占用了2个簇。这就浪费了一个1K宽的99.99%的空间也就是浪费了1024个字节。问题还没有结束,如果是16K大小呢?这就导致了一个1K的文件浪费了15K的存储空间。
从统计学上来说每个文件会浪费半个簇的空间。如果簇被设置得过大就会导致硬盘出现极大的空间浪费。
这也是为什么在当时的问答里面给大家发出的簇尺寸对照表。面临着巨大的浪费当然是得考虑解决办法了,簇和分区大小的尺寸直接关联啊,所以把分区做小就可以节省磁盘空间。于是磁盘就开始分区了。
把一块1G的硬盘分为基本够用的200MB硬盘四块,这样簇的大小就由32K降低到了4K,大幅度的降低了文件占用的实际磁盘空间。这才是磁盘分区的一个初心所在。
到了硬盘越来越大的时候,显然分更多的磁盘分区(也就是CDEFG盘)并不能有效地解决簇越来越大的问题,于是诞生了类似于FAT32的磁盘分配表格式或者干脆就是NTFS这样的磁盘分配格式,这些格式有一个共同点就是一个磁盘上的簇都被统一划分为固定大小。例如FAT32的簇就固定在了4K,也即是说平均每个文件浪费2K的存储空间,这样的浪费对于大硬盘用户来说已经是可以接受的了。同时也带来了不用那么多分区的便利性。
但历史是有惯性的,尤其是给硬盘分区这种普通用户自己做不来的操作,往往被电脑装机商当作秀技能的表演项目给保留下来了。于是硬盘的分区就深深地刻入了个人电脑用户的意识里。
从狭义上来讲,一块硬盘分布分区性能是一样的,但如果用久了性能还真的是不一样的。这是因为操作系统的倾向性问题。操作系统往往更倾向于往连续的簇里面写文件。
当磁盘有连续的簇,并且恰好可以存储下文件的情况下操作系统就会将文件直接存储在磁盘的一个连续区域。但是咱们用电脑不是还要删文件吗?删掉的文件所释放出来的簇就在磁盘上零零星星的存在了。这时候很多文件就不得不存储在不连续的簇里面。于是硬盘的磁头就会在不同的磁道来回运动,这个过程叫做“寻道”。
相比于每分钟几千转旋转的硬盘,磁头臂的移动就慢了很多,这就导致了系统性能的下降。也是很多系统越用越慢的一个主要原因。在Windows中有磁盘碎片整理程序,主要就是针对磁盘上的文件按照不连续的簇进行存储的一个整理程序,整理后大部分文件就是连续簇存储了。
文件碎片的问题,在很多小的硬盘分区上就更为突出了,小分区的空余空间很少,很难原生的为大文件提供足够的“连续簇”存储。久而久之分了很多区的硬盘性能下降也就更明显了。
说大家很注重的一个分区的“好处”,就是操作系统坏掉了可以不影响自己的私人文件存储。其实这也是一个误区。
W君的系统还真的没坏过!听起来有点不可思议吧?从1992年W君有自己的第一台电脑到现在已经30年时间了。算是重度电脑用户的W君只经历过一次系统崩溃的问题导致了个人数据的丢失。原因不在分区,而是当年在用两块硬盘做RAID 0,在阵列中一块硬盘坏掉了,让W君丢失了3年多的程序和照片,后来学乖了用Raid 5了,一台台式机至少装三块硬盘。
至于Windows的崩溃,这个事情和大家的用机习惯有相当大的关联性。装了很多盗版软件和某60某霸某讯的全家桶的机器很难不崩溃。但问题并不在于是不是分了很多硬盘分区,而是在于你为什么安装这些来路不明的软件呢?PC得X病的问题还真不应该怨床不干净吧?说C盘重装不影响系统的家伙们,你们如果没有对C盘做了什么不可告人的事情,那么C盘需要重装吗?这本身就是一个悖论。当然了,如果是硬盘的硬件坏了,你分几个区,就是弄出Z盘来,该丢的数据也还是会丢的,难道不是这样吗?
这样说,你会不会发现除了长期性能会降低之外,如果正常使用计算机的情况下,一个硬盘分多个分区和单一分区是并没有区别的呢?