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

linux系统

如果你是个Linux用户,你可能听说过不需要去对你的linux文件系统进行磁盘碎片整理。也许你注意到了,在Liunx安装发布包里没有磁盘碎片整理的工具。为什么会这样?

为了理解为什么Linux文件系统不需要磁盘碎片整——而Windows却需要——你需要理解磁盘碎片产生的原理,以及Linux和Windows文件系统它们之间工作原理的不同之处。

什么是磁盘碎片

很多Windows用户,甚至是没有经验的用户,都深信经常对文件系统进行碎片整理会提高计算机的速度。但并不是很多人知道这其中的原委。

简单的说,磁盘驱动器上有很多扇区,每个扇区都能存放一小段数据。文件,特别是大文件的存储需要占用很多不同的扇区。假设现在你有很多个文件存在的文件系统里,每个文件都会被存储在一系列连续的扇区里。后来你更新了其中的一个文件,它的体积变大了。文件系统会尝试把文件新增的部分存放到紧邻原始文件的扇区里。可不幸的是,它周边已经没连续的足够扇区空间了,文件需要被分割成数段——这些都在自动进行的。当从磁盘上读取这个文件时,磁盘磁头需要跨越数个不同的物理位置来读取各个扇区——这样会使速度降低。

磁盘碎片整理就是小心的移动这些小文件块来减少碎片,让每个文件都能连续的分布在磁盘上。

windows系统

当然,如果是固态硬盘,那情况又不同了,固态硬盘没有机械移动,不应该进行碎片整理——对一个U盘进行碎片整理通常会降低它的寿命。在最新版的Windows系统里,你实际上不需要关心系统上的碎片——Windows会自动替你整理。

Windows文件系统的工作原理

微软老的FAT文件系统——最后一次使用是在Windows 98 和 Window ME上,可如今的U盘上还在使用它——并不会智能的管理文件。当你把一个文件存入FAT文件系统里时,系统会尽量的把它存到靠近磁盘开始的地方。当你存入第二个文件时,它会紧接着第一个文件——一个接着一个。当原始文件体积变大后,它们一定会产生碎片。根本没有留给它们增长的空间。

微软新的NTFS文件系统——使用在装有Windows XP和2000的PC机上——稍微智能了一点。它会在磁盘上在文件周围分配一些“缓冲”的空闲空间,尽管如此,任何Windows用户都会告诉你,经过一段时间的使用后,NTFS文件系统还是会形成碎片。

由于这些文件系统的工作原理,它们注定需要进行碎片整理来保持高性能。微软在它最新的视窗系统里通过在后台运行一个磁盘碎片整理进程来解决这个问题。

windows磁盘碎片整理

Linux文件系统的工作原理

Linux的ext2, ext3, 和 ext4 文件系统 ——Ubuntu和大多数最新的Linux发布版中使用的是ext4——采用了一种更聪明的方法来存放文件。与把多个文件并排放在磁盘上不同,Linux文件系统把所有文件都分散到了整个磁盘上,每两个文件之间都留有相当巨大的空闲空间。当文件被修改、体积增加时,它们通常有足够的空间来扩展。一旦有碎片产生时,文件系统会尝试移动整个文件来消除碎片,所以你不需要一个碎片整理工具。

linux文件系统

因为这种工作方式,当磁盘快要装满时,你开始会发现有碎片开始产生。如果已用空间超过95%(甚至80%),你会发现碎片开始变多。但不管怎样,这个文件系统的设计会使正常情况下不产生碎片。

如果你在Linux系统上遇到了磁盘碎片问题,你很可能需要一个更大的硬盘了。如果你真想整理一个文件系统,这最简单的方式也许是最可靠的方式:把文件从这个分区里考出,删除这些文件,然后考回这些文件。当你把文件考回硬盘时,文件系统会智能为文件分配存储空间。

你可以使用 fsck 命令来查看Linux文件系统上的磁盘碎片情况——在输出结果里寻找“non-contiguous inodes”信息。

[英文原文:Why Linux Doesn’t Need Defragmenting ]
分享这篇文章:

19 Responses to 为什么Linux不需要磁盘碎片整理

  1. Null says:

    多少年了,还是老一套的说辞.玩Copy不走样呢.

    Linux不需要磁盘碎片整理的真正原因是因为Linux只是一个内核,它没有磁盘可以整理.

    BTW,ext4已经开始提供碎片整理工具了,e4defrag.

  2. lhyasia says:

    Linux啥都好,可惜在桌面操作系统里面始终是小角色。
    当人们需要一个UNIX系统时,就会发现MAC OS X不但用户界面极其牛逼而且还带一个全能的unix核。
    Linux桌面版的悲剧。

  3. hello!program says:

    Ubuntu 正在使用这个系统 感觉还挺不错

  4. Candice says:

    got sth about the linux/s Fragmentation。
    3q。。

  5. 九点 says:

    《为什么Linux也需要磁盘碎片整理》

  6. Andy says:

    all Linux need is enough Disk size
    both advantages and disadvantages

  7. says:

    碎片是这个么?
    我意为和内存一样是太小不能使用 的东西呢
    况且你文件是不移动么?

  8. Kenshin says:

    如果你真想整理一个文件系统,这最简单的方式也许是最可靠的方式:把文件从这个分区里考出,删除这些文件,然后考回这些文件。当你把文件考回硬盘时,文件系统会智能为文件分配存储空间。

    这不就是手动碎片整理么 晕死。。。。

  9. Null says:

    2012年08月29日6:59 上午

    东南亚某国人力部网站是只在工作日开放的.

    btw: 我听某人说过,当时为了赶时间和其他系统集成,部分web service接口是人手工做的.对方调用web service->记录日志->检查日志->手工添删改查.

  10. geralt says:

    为什么这里有那么多低素质的家伙?

  11. 众生 says:

    各位软件的业内人士好,新人来报到。好像这个网站不能注册!

  12. progressive says:

    的确是老说辞了,产生碎片多的是FAT,那都是过去的文件系统了,现在普遍NTFS极少产生,而linux的ext时间长了也会产生碎片,正在看鸟哥的linux私房菜,里面讲文件系统原理,说到碎片时,搜到了这篇文章

  13. progressi ve says:

    的确是老说辞了,产生碎片多的是FAT,那都是过去的文件系统了,现在普遍NTFS极少产生,而linux的ext时间长了也会产生碎片,正在看鸟哥的linux私房菜,里面讲文件系统原理,说到碎片时,搜到了这篇文章.

发表评论

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

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据