如何在Linux系统中整理磁盘碎片

 如何在 Linux 中整理磁盘碎片  https://zhuanlan.zhihu.com/p/313088037

如何简单地在 Linux 中整理碎片

方法 1:拷贝法

与 WIndows 不同,Win OS是不允许将操作系统从一个磁盘拷贝到另外一个磁盘上来使用的;这涉及到收钱问题。而 Linux是免费的,因此,在这方面没有那么多的道道。

你要做的是备份你所有的文件和数据到另外一块硬盘中(手动复制他们),格式化分区,然后重新复制回去(不要使用备份软件)。日志型文件系统会把它们作为新的文件,并将它们整齐地放置到磁盘中而不产生碎片。

方法 2:工具法

如何检查碎片
fsck 命令会为你做这个,换句话说,如果你可以在 LiveCD 中运行它,那么就可以用于所有卸载的分区。
这一点很重要:在已经挂载的分区中运行 fsck 将会严重危害到你的数据和磁盘。
你已经被警告过了。开始之前,先做一个完整的备份。

说明 1:Linux 中的磁盘整理

除非你用的是一个很小的硬盘或者空间不够了,不然 Linux 很少会需要磁盘整理。

当然,服务器要具体情况,具体分析。桌面版可以不去考虑这个问题?除非?

-----------------------------------------------------------

判断是否需要进行磁盘碎片整理 ?

$ sudo e4defrag -c /dev/sdb3

e4defrag 1.46.5 (30-Dec-2021)
<Fragmented files>                             now/best       size/ext
1. /mnt/c789a7eb-6d65-47f3-809a-69f91/.cache/mesa_shader_cache/index
                                                35/1              4 KB

 Total/best extents                54111/53989
 Average size per extent            396 KB
 Fragmentation score                0
 [0-30 no problem: 31-55 a little bit fragmented: 56- needs defrag]

 This device (/dev/sdb3) does not need defragmentation.
 Done.

==================================

在 Linux 中对分区进行碎片整理:有什么用吗?  https://ubunlog.com/

教程:在GNU Linux下对硬盘驱动器进行碎片整理

https://www.linuxadictos.com/ 

La 文件系统(FS)的强大功能 GNU / Linux系统中使用的Windows XP已使用户陷入错误,认为不必像Windows中那样对硬盘进行碎片整理。 这不是完全正确的,尽管它没有Microsoft系统中的必要和重要,但这样做是很好的。

系统 ZFS,EXT,JFS,XFS,ReiserFS,Btrfs等他们具有用于文件的智能分配系统,可以避免Windows中发生的尖锐而可怕的碎片,但这并不意味着该问题不存在。 安装发行版后可能要花费数年的时间,即使您频繁使用它并安装和卸载库等,碎片也不会成为问题。

但是,有些 硬盘空间有限的用户 它们在碎片化问题上可能更为明显。 有限的空间使这些文件系统很难为新文件分配空间。 这就是为什么我建议安装工具对硬盘驱动器进行碎片整理的原因。 有很多东西,例如e4defrag(您可能甚至不必安装,因为它已默认安装在您的发行版中)。

它的使用非常简单,您只需要打开一个终端窗口并输入以下内容:

1

sudo e4defrag -c /ruta

用要整理碎片的分区或设备替换/ path。 例如:“ sudo e4defrag -c / dev / sda1”,也可以是单个文件夹“ sudo e4defrag -c / home”。 但是请注意,这只会告诉您碎片的文件数量。 如果数量少,则没有理由进行碎片整理,但是如果数量超过30,则应考虑进行碎片整理。 进行碎片整理 所有分区:

1

sudo e4defrag /dev/sda*

如果只想对特定目录进行碎片整理,则可以使用“ / home”代替“ / dev / sda *”,甚至指定分区“ / dev / sda5”。 如果您有SSD,则不必担心 因此,碎片整理仅在磁性硬盘驱动器上才有意义... SSD如此之快以至于不值得使用,此外,碎片整理只会增加读取/写入周期,因此会降低驱动器的使用寿命。

如何在Linux系统中整理磁盘碎片 节省空间

  https://blog.csdn.net/JackieDYH/article/details/100771545

    有一个神话是 linux 的磁盘从来不需要整理碎片。在大多数情况下这是真的,大多数因为是使用的是优秀的日志文件系统(ext3、4等等)来处理文件系统。然而,在一些特殊情况下,碎片仍旧会产生。如果正巧发生在你身上,解决方法很简单。

什么是磁盘碎片

文件系统会按块更新文件,如果这些块没有连成一整块而是分布在磁盘的各个角落中时,就会形成磁盘碎片。这对于 FAT 和 FAT32 文件系统而言是这样的。在 NTFS 中这种情况有所减轻,但在 Linux(extX)中却几乎不会发生。下面是原因:

在像 FAT 和 FAT32 这类文件系统中,文件紧挨着写入到磁盘中。文件之间没有空间来用于增长或者更新:

NTFS 中在文件之间保留了一些空间,因此有空间进行增长。但因块之间的空间是有限的,碎片也会随着时间出现。

Linux 的日志型文件系统采用了一个不同的方案。与文件相互挨着不同,每个文件分布在磁盘的各处,每个文件之间留下了大量的剩余空间。这就给文件更新和增长留下了很大的空间,碎片很少会发生。

此外,碎片一旦出现了,大多数 Linux 文件系统会尝试将文件和块重新连续起来。
Linux 中的磁盘整理

除非你用的是一个很小的硬盘或者空间不够了,不然 Linux 很少会需要磁盘整理。一些可能需要磁盘整理的情况包括:

    如果你编辑的是大型视频文件或者 RAW 照片,但磁盘空间有限
    如果你使用一个老式硬件,如旧笔记本,你的硬盘会很小
    如果你的磁盘开始满了(大约使用了85%)
    如果你的家目录中有许多小分区

最好的解决方案是购买一个大硬盘。如果不可能,磁盘碎片整理就很有用了。
如何检查碎片

fsck 命令会为你做这个,换句话说,如果你可以在 LiveCD 中运行它,那么就可以用于所有卸载的分区。

这一点很重要:在已经挂载的分区中运行 fsck 将会严重危害到你的数据和磁盘。

你已经被警告过了。开始之前,先做一个完整的备份。

免责声明: 本文的作者与本站将不会对您的文件、数据、系统或者其他损害负责。你需要自己承担风险。如果你继续,你需要接受并了解这点。

你应该启动到一个 live 会话中(如使用安装磁盘,系统救援CD等)并在你卸载的分区上运行 fsck 。要检查是否有任何问题,请在使用 root 权限运行下面的命令:

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

您可以运行以下命令找到分区的路径

sudo fdisk -l

有一个在已挂载的分区中运行 fsck(相对)安全的方法是使用-n开关。这会对分区进行只读文件系统检查,而不会写入任何东西。当然,这并不能保证十分安全,你应该在创建备份之后进行。在 ext3 中,运行

sudo fsck.ext3 -fn /path/to/your/partition

这会产生大量的输出,大多数错误信息的原因是分区已经挂载了。最后会给出一个碎片相关的信息。

如果碎片率大于 20% 了,那么你应该开始整理你的磁盘碎片了。
如何简单地在 Linux 中整理碎片

你要做的是备份你所有的文件和数据到另外一块硬盘中(手动复制他们),格式化分区,然后重新复制回去(不要使用备份软件)。日志型文件系统会把它们作为新的文件,并将它们整齐地放置到磁盘中而不产生碎片。

要备份你的文件,运行

cp -afv [/path/to/source/partition]/* [/path/to/destination/folder]

记住星号(*)是很重要的。

注意:通常认为复制大文件或者大量文件,使用 dd 或许是最好的。这是一个非常底层的操作,它会复制一切,包含空闲的空间甚至是留下的垃圾。这不是我们想要的,因此这里最好使用 cp。

现在你只需要删除源文件。

sudo rm -rf [/path/to/source/partition]/*

可选:你可以使用如下命令将空闲空间用零填充。也可以用格式化来达到这点,但是如果你并没有复制整个分区而仅仅是复制大文件(它通常会形成碎片)的话,就不应该使用格式化的方法了。

sudo dd if=/dev/zero of=[/path/to/source/partition]/temp-zero.txt

等待它结束。你可以用 pv 来监测进度。

    sudo apt-get install pv
    sudo pv -tpreb | of=[/path/to/source/partition]/temp-zero.txt

这就完成了,只要删除这个用于填充的临时文件就行。

sudo rm [/path/to/source/partition]/temp-zero.txt

待你清零了空闲空间(或者跳过了这步)。重新复制回文件,将第一个cp命令翻转一下:

cp -afv [/path/to/original/destination/folder]/* [/path/to/original/source/partition]

使用 e4defrag

如果你想要简单的方法,安装 e2fsprogs,

sudo apt-get install e2fsprogs

用 root 权限在分区中运行 e4defrag。如果你不想或不能卸载该分区,你可以使用它的挂载点而不是路径。要整理整个系统的碎片,运行:

sudo e4defrag /

在挂载的情况下不保证成功(你也应该在它运行时不要使用你的系统),但是它比复制全部文件再重新复制回来简单多了。
总结

linux 系统中由于它的日志型文件系统有效的数据处理很少会出现碎片。如果你因任何原因产生了碎片,简单的方法是重新分配你的磁盘,如复制出去所有文件并复制回来,或者使用e4defrag。然而重要的是保证你数据的安全,因此在进行任何可能影响你全部或者大多数文件的操作之前,确保你的文件已经被备份到了另外一个安全的地方去了。

原文链接:https://blog.csdn.net/JackieDYH/article/details/100771545

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值