图文讲解 为什么 Linux不需要碎片整理

系统 Linux
如果你是一个Linux用户,你可能听说过,不需要对你的Linux文件系统进行碎片整理。你可能还会注意到,Linux发行版并没有附带磁盘碎片整理工具。这是为什么呢?想要知道为什么在正常使用中,Linux文件系统不需要进行碎片整理,而Windows要。你需要了解为什么会生成碎片,而Linux和Windows这两个文件系统,它们分别是如何工作的。

如果你是一个Linux用户,你可能听说过,不需要对你的Linux文件系统进行碎片整理。你可能还会注意到,Linux发行版并没有附带磁盘碎片整理工具。这是为什么呢?想要知道为什么在正常使用中,Linux文件系统不需要进行碎片整理,而Windows要。你需要了解为什么会生成碎片,而Linux和Windows这两个文件系统,它们分别是如何工作的。

 

图文讲解 为什么 Linux不需要碎片整理

图片来自网络

什么是碎片

许多Windows用户,即使没有太多经验,我相信他们也会定期进行碎片整理,来加速其电脑。为什么要这么做,许多人也不知道。

简单的说,每个硬盘驱动器有许多的扇区,每一个扇区都可以包含一些小的数据片段。对于特别大的文件,就必须存储在许多不同的扇区里。再比方说文件系统中保存的一些不同的文件,其中每个文件都将存储在连续空间的扇区里。后来,你更新你原先保存的文件,增加文件的大小。文件系统将会尝试存储文件的新增部分到原先扇区空间的旁边。不幸的是,如果没有足够的连续空间,该文件必须被分割成多个片段 — 这就碎片生成的原因。当你的硬盘读取文件的时候,磁头必须跳过硬盘上不同的物理位置之间来读取每个扇区的数据 — 这就是变慢的原因。

碎片整理是一个集中的过程,移动比特文件,以减少碎片,确保每个文件在驱动器上是连续的。

 

图文讲解 为什么 Linux不需要碎片整理

图片来自网络

当然,固态硬盘不同,它没有移动部件,不应该进行碎片整理 - 对SSD进行磁盘整理实际上会减少其使用寿命。此外,***版本的Windows上,你不需要担心整理你的文件系统碎片 - Windows会自动帮你做。

Windows文件系统是如何工作的

微软旧的FAT文件系统,***一次看到默认在Windows 98和ME,现在也使用在USB闪存盘上,它不能智能安排文件。当你保存文件到FAT文件系统上,它会尽可能将其保存在接近磁盘开始的空间上。当你保存第二个文件,它会保存紧接在***个文件的后面, 以此类推。当原始文件大小增长,附近没有空闲空间为他们增长,他们总是会生成碎片。

微软新的NTFS文件系统,使用在Windows XP和2000上,似乎变得更智能一点儿,它给硬盘上的文件周围分配了更多的“缓冲”自由空间。虽然,任何Windows用户可以告诉你,随着时间的推移,NTFS文件系统仍然会生成碎片。

由于使用这些文件系统进行工作,他们需要进行碎片整理,以确保其性能不下降。微软***版本的Windows可以在后台定时运行碎片整理来缓解了这个问题。

 

图文讲解 为什么 Linux不需要碎片整理

图片来自网络

Linux文件系统是如何工作的

Linux有ext2、ext3和ext4文件系统,ext4文件系统使用在Ubuntu和其他当前的Linux发行版本中,它有着更智能的文件分配方式,而不是将多个文件相互靠近放在硬盘上。Linux文件系统分散在不同的文件磁盘,并留下了大量的自由空间。当一个文件需要编辑增长,通常是会有足够的空闲空间。如果碎片确实发生,文件系统将会试图移动文件,来减少碎片。在正常使用情况下,不需要碎片整理工具。

 

图文讲解 为什么 Linux不需要碎片整理

图片来自网络

如果你的文件系统已满或是95%(甚至80%),你才可能开始看到一些碎片。总之,文件系统的设计,在正常使用过程中可以避免碎片的生成。

如果你的Linux上有碎片问题,你可能需要一个更大的硬盘。如果你确实需要整理文件系统,最简单的、最可靠的方法可能是:从分区中复制备份所有的文件,再从分区中清除所有文件,然后在将文件复制回到分区。这样文件系统将会智能地分配文件复制到磁盘上。

你也可以使用 fsck 命令衡量Linux文件系统的碎片 - 寻找输出“非相邻节点”。

【编辑推荐】

  1. 微软Azure平台上的Linux服务
  2. Linux就是一个大锅炉
  3. 再议Linux灭亡论!从用户留言看开源发展
责任编辑:Yeva 来源: oschina
相关推荐

2014-01-17 13:09:48

Linux碎片整理

2021-07-06 11:10:22

LinuxmacOSWindows

2021-04-27 08:52:55

Linux MacOS碎片

2021-05-07 15:18:26

比特币禁令监管

2019-07-15 08:00:00

AI人工智能

2020-05-07 10:09:30

MAC地址网络协议网络

2014-09-24 09:31:31

Dockersshd

2021-07-02 09:00:00

自动驾驶特斯拉技术

2022-06-02 16:04:02

DeFi金融比特币

2024-09-19 13:00:26

悲观锁SQL乐观锁

2017-03-13 13:54:40

戴尔

2017-09-19 15:40:23

Linuxsudo命令密码

2015-07-29 09:42:09

工程师全栈工程师

2022-03-22 13:39:10

框架react面试

2012-08-23 09:50:07

测试测试人员软件测试

2009-11-23 12:45:22

2019-02-25 08:57:22

5G6G网络

2010-05-07 10:28:52

Linux系统

2015-09-30 09:57:53

天分热情工程师

2013-12-02 09:43:29

字符串编程
点赞
收藏

51CTO技术栈公众号