如何整理Linux磁盘碎片,竟与Windows的方式大不同

系统 Linux 系统运维
与其说是整理磁盘其实不如说是删了重来,Linux的操作方式与Windows下的磁盘整理完全不同。由于Linux是基于文件的系统,我们只需将磁盘中的文件全部复制到另一个地方,将其格式化之后再将备份好的文件复制回来即可。复制回来的同时,Liunx会自动将文件进行连续分布排列。

  Linux 系统永远不需要整理磁盘碎片的神话相信很多人都听说过。由于 Linux 采用了优秀的日志文件系统(ext2、ext3、ext4, btrfs等),在绝大多数情况下确实是不需要进行磁盘碎片整理的。

  什么是磁盘碎片文件?

  当文件系统在磁盘的扇区上读写文件时会形成不连续的整体,这样就会产生磁盘碎片文件。这种情况在 FAT 和 FAT 32 文件系统来说尤为突出,NTFS 文件系统对该现象进行了一些缓解。那为什么这种情况几乎不发生在 Linux 操作系统 (extX) 中呢?

  在 FAT 和 FAT32 文件系统中,文件会在彼此相邻的磁盘右侧进行写入,并没有为文件增长或更新留出空间。  

FAT 和 FAT32

  NTFS 为相邻文件留出了部分间隔,让文件有一定的增长和更新空间。但这个间隔是有限的,随时使用时间增长一样会产生磁盘碎片。  

NTFS

  Linux 的日志文件系统采用完全不同的存储方式,直接将每个文件分散在磁盘上进行存储,为每个文件之间留下了自由的空间,因此很少产生磁盘碎片文件。  

Linux disk

  此外,如何磁盘碎片开始产生,大多数 Linux 文件系统将自动尝试将文件和块进行重组,以使得存储变得连续起来。

  整理Linux磁盘碎片文件

  除非你使用了一个空间较小的磁盘或频繁读写的空间,磁盘碎片文件在 Linux 系统中很少发生。一些可能会导致 Linux 磁盘碎片产生的情况如下:

  •   在有限的磁盘空间下编辑大型视频文件或 RAW 图片
  •   在较老旧的设备上使用空间很小的磁盘
  •   磁盘空间使用率超过85%
  •   存储过多体积很小的文件

  当然,***的解决办法就是换一块空间较大的硬盘,或者进行手动整理。

  如何检查是否有磁盘碎片

  我们可以使用 fsck 命令对磁盘进行检测。切记,在检测时一定要 unmount 被检测分区,不然有可能损坏数据。因此,建议大家从 Live CD 来执行 fsck 命令,并在之前对重要文件做好备份。

  一切准备就绪之后,我们执行如下命令:  

  1. fsck -fn [/path/to/your/partition] 

  其中[/path/to/your/partition]为我们要检测的路径,检测时会有大量的信息输出,最终将会报告给我们一个磁盘碎片的相关信息:  

fsck

  注意:如果磁盘碎片在 20% 以上,我们就需要进行整理。20% 以内的话,可以暂时不进行。

  简单方式整理Linux文件系统

  与其说是整理磁盘其实不如说是删了重来,Linux 的操作方式与 Windows 下的磁盘整理完全不同。由于 Linux 是基于文件的系统,我们只需将磁盘中的文件全部复制到另一个地方,将其格式化之后再将备份好的文件复制回来即可。复制回来的同时,Liunx 会自动将文件进行连续分布排列。

  1. 使用如下命令备份源磁盘文件  

  1. cp -afv [/path/to/源盘]/* [/path/to/备份文件夹] 

  注意:很多朋友会认为大批量复制文件用 dd 文件比较好,但 dd 的操作层面更低,会复制很多垃圾信息。而我们的目的是要整理磁盘,所以使用 cp 命令。

  2. 现在我们使用如下命令删除源文件  

  1. sudo rm -rf [/path/to/源盘]/* 

  可选项:当然,你也可以直接通过以下命令直接为源盘填充 0 以达到清空的目的。  

  1. sudo dd if=/dev/zero of=[/path/to/源盘]/temp-zero.txt 

  3. 你可以使用 pv 命令来监控 dd 命令的执行过程:  

  1. sudo apt-get install pvsudo pv -tpreb | of=of=[/path/to/源盘]/temp-zero.txt   
pv

  4. 执行完成后,我们删除这个临时文件  

  1. sudo rm [/path/to/源盘]/temp-zero.txt 

  5. 磁盘清零(可靠)后我们将备份好的文件复制回来即可  

  1. cp -afv [/path/to/备份文件夹]/* [/path/to/源盘] 

  使用e4defrag

  如果你觉得以上步骤太麻烦了,还可以使用 e2fsprogs 命令

  1. 安装e2fsprogs  

  1. sudo apt-get install e2fsprogs 

  2. 执行整理  

  1. sudo e4defrag / 

  注意:以上命令虽然方便,但不是所有系统上都可以执行成功。

责任编辑:火凤凰 来源: Winclient博客
相关推荐

2015-09-28 10:12:21

Linux磁盘碎片

2015-09-25 15:57:09

磁盘碎片整理Linux

2009-07-22 09:02:35

Windows 7磁盘碎片整理

2017-04-06 09:00:39

Windows 7Windows磁盘碎片

2009-08-18 09:03:19

Windows 7磁盘碎片整理

2017-03-07 17:45:42

Windows磁盘碎片整理

2020-08-16 10:41:47

Windows 10Windows微软

2013-11-29 14:28:54

2013-07-16 13:54:20

2011-06-06 13:58:57

台式机推荐

2012-05-09 13:20:00

Win7

2014-02-24 10:02:52

2009-02-05 09:38:36

企业无线网家庭无线

2014-02-20 10:21:37

轻盈IT青岛中集戴尔

2012-02-28 10:12:15

桌面虚拟化VDIIDV

2018-03-29 17:18:25

华为云

2021-04-27 08:52:55

Linux MacOS碎片

2009-04-10 01:03:55

2009-05-26 12:20:34

Linux系统硬盘优化
点赞
收藏

51CTO技术栈公众号