为什么Linux用户不需要整理磁盘碎片

如果你是一个Linux用户,你也许可能听说过Linux上根本不需要对文件系统进行碎片整理。而且你可能也注意到了Linux根本就没有自带磁盘碎片整理,但是,这是为什么呢?

要理解为什么Linux的文件系统在正常使用下不需要整理而Windows需要,你需要理解文件碎片是如何产生的,以及Linux和Windows的文件系统的不同之处。

什么是文件碎片?

许多Windows的用户,包括一些老用户,都认为定期整理磁盘碎片将为电脑提速。但是许多人却不知道为什么要这么做。

简单来说,一块硬盘上有大量的扇区,每个扇区都存有一小段数据。文件,尤其是大文件,必须被跨越很多扇区存储。比如说,你在文件系统存了一堆很多不同的文件。现在每个文件都被保存在扇区上相邻的簇里。然后,你修改了其中的一个你原来保存的文件,使它的体积增大了,文件系统将会试图将文件新增加的部分直接存到原来的部分。很遗憾的是,如果没有足够的连续空间,文件将必须分成许多的片段,这些过程对你来说是看不见的。当你的硬盘读取这个文件的时候,磁头必须在磁盘的不同物理位置上来回跳转以读取每一块的所有扇区,这就把事情拖慢了。

磁盘碎片整理工具是一个集中式的程序,可以将文件的每一字节移动到一起来减少碎片,保证驱动器上的文件都是连续的。

Why-linux-do-not-defrag-1

当然,对于固态硬盘(SSD)来说也是不同的,固态硬盘不需要移动碎片而且也不应当被整理。对固态硬盘来说整理磁盘碎片无疑是在减少他的使用寿命。并且在最新的Windows版本中,你并不真的需要费心去整理你的文件系统,Windows将自动为你做好这一切。如果需要更多这方面的信息,请参阅:

//www.howtogeek.com/97723/htg-explains-do-you-really-need-to-defrag-your-pc/

Windows的文件系统是怎样工作的?

微软的旧文件系统FAT,最后被默认使用是在Windows 98和ME上面——虽然目前仍然在被USB闪存使用,但是它并不会智能的排列文件。当你在FAT文件系统上保存一个文件时,将会被保存到磁盘尽可能开始的地方。当你保存第二个文件的时候,便直接保存在第一个文件的后面,以此类推。当原始的文件体积变大时,他们就被变成碎片。因为没有足够的空间应对文件增长。

微软的新文件系统NTFS,通过Windows 2000 以及Windows XP开始进入用户的电脑,并且已经变得更聪明了。它会在磁盘的文件周围分配更多的缓冲空间,虽然这样,但是就像很多Windows用户说的那样,NTFS文件系统仍然会随着时间增加产生碎片。

因为文件系统是这样工作的,所以他们就需要被整理,以便达到一个最佳的工作状态。微软在最新版本的Windows中已经通过在后台运行碎片整理进程来部分解决这一问题。

Why-linux-do-not-defrag-2

Linux的文件系统是怎么工作的?

Linux的EXT2、EXT3还有EXT4文件系统——EXT4正在被运用于Ubuntu等现有的Linux发行版上——采用一种更智慧的方法来分配文件。与“把多个文件放在硬盘上临近地方”不同的是,Linux的文件系统在整个磁盘上把文件分散开,在他们之间间隔着大量的磁盘空间。当一个文件被编辑且需要增加体积的时候,总是有足够的可用空间满足文件的增长需求。当文件碎片产生的时候,文件系统将试图移动周围的文件并减少正常使用过程中的碎片,也就不需要碎片整理了。

Why-linux-do-not-defrag-3

正因为有了这种工作的方式,你就会在你的文件系统快要填满的时候发现文件碎片。如果磁盘使用率达到95%或者甚至80%,就已经可以见到文件碎片了。然而文件系统是被设计用来避免日常使用下的文件碎片的。

如果正在为Linux上的文件碎片而头疼,那么是时候买一个大点的硬盘了。如果你确实需要整理文件系统,那么最简单的也可能是最可靠的方法就是:把分区上的所有文件拷走,然后擦除分区上的所有文件,然后再把文件给拷回来。这时文件系统就会智能地排列你的文件了。

你可以通过fsck命令查看Linux文件系统上的碎片信息——在结果里找到“non-contiguous inodes”即可。

转载请保留该信息!

原文地址:http://www.howtogeek.com/115229/htg-explains-why-linux-doesnt-need-defragmenting/

原文作者:Chris Hoffman

hcl@techotaku原创翻译

发布者

hcl

TechOtaku 站长。

《为什么Linux用户不需要整理磁盘碎片》上有2条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注