[转]如何整理Linux磁盘碎片,竟与Windows的方式大不同 返回操作系统首页
Linux 系统永远不需要整理磁盘碎片的神话相信很多人都听说过。由于 Linux 采用了优秀的日志文件系统(ext2、ext3、ext4, btrfs等),在绝大多数情况下确实是不需要进行磁盘碎片整理的。

什么是磁盘碎片文件?
当文件系统在磁盘的扇区上读写文件时会形成不连续的整体,这样就会产生磁盘碎片文件。这种情况在 FAT 和 FAT 32 文件系统来说尤为突出,NTFS 文件系统对该现象进行了一些缓解。那为什么这种情况几乎不发生在 Linux 操作系统 (extX) 中呢?
在 FAT 和 FAT32 文件系统中,文件会在彼此相邻的磁盘右侧进行写入,并没有为文件增长或更新留出空间。

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

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

此外,如何磁盘碎片开始产生,大多数 Linux 文件系统将自动尝试将文件和块进行重组,以使得存储变得连续起来。
整理Linux磁盘碎片文件
除非你使用了一个空间较小的磁盘或频繁读写的空间,磁盘碎片文件在 Linux 系统中很少发生。一些可能会导致 Linux 磁盘碎片产生的情况如下:
- 在有限的磁盘空间下编辑大型视频文件或 RAW 图片
- 在较老旧的设备上使用空间很小的磁盘
- 磁盘空间使用率超过85%
- 存储过多体积很小的文件
当然,最好的解决办法就是换一块空间较大的硬盘,或者进行手动整理。
如何检查是否有磁盘碎片
我们可以使用 fsck 命令对磁盘进行检测。切记,在检测时一定要 unmount 被检测分区,不然有可能损坏数据。因此,建议大家从 Live CD 来执行 fsck 命令,并在之前对重要文件做好备份。
一切准备就绪之后,我们执行如下命令:
- fsck -fn [/path/to/your/partition]
其中[/path/to/your/partition]为我们要检测的路径,检测时会有大量的信息输出,最终将会报告给我们一个磁盘碎片的相关信息:

注意:如果磁盘碎片在 20% 以上,我们就需要进行整理。20% 以内的话,可以暂时不进行。
简单方式整理Linux文件系统
与其说是整理磁盘其实不如说是删了重来,Linux 的操作方式与 Windows 下的磁盘整理完全不同。由于 Linux 是基于文件的系统,我们只需将磁盘中的文件全部复制到另一个地方,将其格式化之后再将备份好的文件复制回来即可。复制回来的同时,Liunx 会自动将文件进行连续分布排列。
1. 使用如下命令备份源磁盘文件
- cp -afv [/path/to/源盘]/* [/path/to/备份文件夹]
注意:很多朋友会认为大批量复制文件用 dd 文件比较好,但 dd 的操作层面更低,会复制很多垃圾信息。而我们的目的是要整理磁盘,所以使用 cp 命令。
2. 现在我们使用如下命令删除源文件
- sudo rm -rf [/path/to/源盘]/*
可选项:当然,你也可以直接通过以下命令直接为源盘填充 0 以达到清空的目的。
- sudo dd if=/dev/zero of=[/path/to/源盘]/temp-zero.txt
3. 你可以使用 pv 命令来监控 dd 命令的执行过程:
- sudo apt-get install pvsudo pv -tpreb | of=of=[/path/to/源盘]/temp-zero.txt

4. 执行完成后,我们删除这个临时文件
- sudo rm [/path/to/源盘]/temp-zero.txt
5. 磁盘清零(可靠)后我们将备份好的文件复制回来即可
- cp -afv [/path/to/备份文件夹]/* [/path/to/源盘]
使用e4defrag
如果你觉得以上步骤太麻烦了,还可以使用 e2fsprogs 命令
1. 安装e2fsprogs
- sudo apt-get install e2fsprogs
2. 执行整理
- sudo e4defrag /
注意:以上命令虽然方便,但不是所有系统上都可以执行成功。
[转]如何整理Linux磁盘碎片,竟与Windows的方式大不同 返回操作系统首页的更多相关文章
- 转载:为什么Linux不需要磁盘碎片整理
转载自:www.aqee.net 如果你是个Linux用户,你可能听说过不需要去对你的linux文件系统进行磁盘碎片整理.也许你注意到了,在Liunx安装发布包里没有磁盘碎片整理的工具.为什么会这样? ...
- 关闭电脑SSD的磁盘碎片整理
小白往往会把机械硬盘时代的习惯带进固态硬盘时代,比如碎片整理.机械硬盘时代砖家最喜欢告诉小白:“系统慢了吧?赶紧碎片整理撒.”小白屁颠屁颠地整理去了.殊不知碎片整理对于SSD来说完全就是种折磨.这种“ ...
- Linux磁盘的分区操作
1.Linux磁盘分区介绍 Linux磁盘分区主要有两种方式,一种是MBR,另一种是GPT.根据Linux磁盘分的大小,来选择一种分区方式. --MBR分区格式:最大支持 2 TB 的磁盘.--GPT ...
- Linux 磁盘分区和挂载
目录 Linux 磁盘分区和挂载 windows 下的分区 磁盘管理 相关命令 分区及挂载实现步骤 添加硬盘 分区步骤 步骤 挂载步骤 卸载分区步骤 补充: Linux 磁盘分区和挂载 windows ...
- Linux磁盘和文件系统知识总结
硬盘操作 为什么要给硬盘分区? 如果你需要在一块硬盘上用到多个文件系统,那么你就需要对硬盘进行分区,以便用不同的分区支持不同的文件系统.(但一个硬盘只能有一个分区表!)反过来说,如果你整块硬盘都用同样 ...
- 如何在 Linux 中整理磁盘碎片
有一个神话是 linux 的磁盘从来不需要整理碎片.在大多数情况下这是真的,大多数因为是使用的是优秀的日志文件系统(ext3.4等等)来处理文件系统.然而,在一些特殊情况下,碎片仍旧会产生.如果正巧发 ...
- 小知识-为什么Linux不需要磁盘碎片整理
转载至:http://beikeit.com/post-495.html 简单译文: 这段linux官方资料主要介绍了外部碎片(external fragmentation).内部碎片(inter ...
- 【Linux不需要磁盘碎片整理的真正原因是因为Linux只是一个内核,它没有磁盘可以整理】
[Linux不需要磁盘碎片整理的真正原因是因为Linux只是一个内核,它没有磁盘可以整理]
- UltimateDefrag磁盘碎片整理软件 v3.0.100.19汉化版
软件名称:UltimateDefrag磁盘碎片整理软件 v3.0.100.19汉化版软件类别:汉化软件运行环境:Windows软件语言:简体中文授权方式:免费版软件大小:3.25 MB软件等级:整理时 ...
随机推荐
- Qt Qpushbutton美化问题
昨天在论坛看到一个网友的提问,如下 我想到的第一个就是可能需要重载Pushbutton,不过看到有网友回复可以使用stykesheet解决,今天尝试了一下,还是没有成功, 一下是我使用车重载的Push ...
- Git 使用 粗糙记录
版本控制应该是每一个开发人员应该会的东西,奈何,学校没有学习,随着写代码的时间的加长,越来月觉得版本控制的必要性了. 记得在实习的公司,同一痛的都是SVN. 至于GIt和SVN的区别,直接看连接 ht ...
- fidder工具学习抓取Firefox包
fidder抓取Firefox的https请求 抓包之前需要设置fidder,我下面的截图是fidder4,打开fidder—>Tools—>Options如图: 选择https,勾选所有 ...
- Spring实战第七章————SpringMVC配置的替代方案
SpringMVC配置的替代方案 自定义DispatherServlet配置 我们之前在SpittrWebAppInitializer所编写的三个方法仅仅是必须要重载的abstract方法.但还有更多 ...
- LSTM调参经验
0.开始训练之前先要做些什么? 在开始调参之前,需要确定方向,所谓方向就是确定了之后,在调参过程中不再更改 1.根据任务需求,结合数据,确定网络结构. 例如对于RNN而言,你的数据是变长还是非变长:输 ...
- winform 控件半透明设置
1.backcolor属性为color.FromArgb(100, 220, 220, 220); 2.全透明设置为transparent方法.
- linux 进程间通信之pipe
在实际开发过程中,程序员必须让拥有依赖关系的进程集协调,这样才能达到进程的共同目标. 每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内 ...
- 域名解析的DNS缓存如何清理
域名解析(DNS)缓存是什么? 域名解析缓存又名DNS缓存,常见表现名称是TTL:(TimeToLive)生存时间,就是域名解析记录在DNS服务器中的存留有效时间. 当各地的DNS服务器接受到解析请求 ...
- 当网卡收到的包的目的地址是主机上另一个网卡的地址.arp总结
2019/01/13 今天测试发现结果不符合预期呀,发现设置了arp_filter之后,仍然是能ping通主机上的另外一张网卡.但是现在的问题是 -------------------- 内核中是如何 ...
- C&C++——C函数与C++函数相互调用问题
C C++相互调用 在项目中融合C和C++有时是不可避免的,在调用对方的功能函数的时候,或许会出现这样那样的问题,但只要我的C代码和我的C++代码分别都能成功编译,那其他就不是问题.近来在主程序是C语 ...