我使用这个webupd8指南来帮助我在 Ubuntu 13.10 上修剪我的 SSD。该指南说“您必须确保分区是 EXT4 或 BTRFS”。不幸的是,我愚蠢地认为 HD 已格式化为 ext4;它实际上是fat32。
这var/log/trim表明它正在工作:
*** Sun, 15 Dec 2013 11:30:42 +0000 ***
/: 50567962624 bytes were trimmed
Run Code Online (Sandbox Code Playgroud)
但它真的在做什么吗?还是我必须重新格式化驱动器并重新开始?
对不起,如果这听起来有点偏执。任何保证非常感谢。
我发现这是一个老问题......但它在该主题的搜索中很早就出现了,因此似乎值得从内核源中给出答案。
Linux 文件系统实现可以通过两种不同的方式“支持”TRIM:
它可以支持-o discard安装选项,因此空闲的块会立即被修剪。
它可以支持FITRIMioctl,这是 userlandfstrim命令用来在请求时批量修剪所有当前空闲块的方法
给定的文件系统实现可以支持其中之一,或支持另一个,或两者都支持(或都不支持)。
事实证明,discard 从内核 2.6.28 开始, FAT 实现就可以实现了。这甚至早于 mount 选项,直到 2.6.33 才出现。从2.6.28到2.6.32,FAT只是无条件写入discard。从 2.6.33 开始,您可以控制是否启用。
至于FITRIMioctl,嗯,这在 2.6.37 中成为了一个东西,但我没有看到任何迹象表明 FAT 文件系统代码支持它,即使在最新、最好的(截至今天)4.13rc5中也是如此。其他几个文件系统已经实现了它,但似乎没有人关心 FAT。
这有点太糟糕了,因为至少有一个非常常见的场景,您需要一种方法来一次修剪所有现有的空闲块:您已经通过dd从旧的旋转驱动器到闪亮的新SSD,所以现在,就SSD而言,所有这些块都已被写入,无论它们对文件系统是否重要。因此,您当然希望修剪那些被文件系统视为空闲的文件。
但也许还有希望。虽然我还没有机会尝试,但我认为这可能有效:
-o discard)。fallocate -n使用(分配块而不写入任何内容,因此不会对 SSD 造成太多额外磨损)将它们增加到最大可能的大小。由于FAT32文件的大小限制为不到 4 GiB,因此您可能需要一堆临时文件来用完所有可用空间。(要使此步骤起作用,您需要内核 4.5 或更高版本,其中FATfallocate支持。)discard编辑。fstrim当然,这应该可以作为任何能够执行discard但不能执行的文件系统实现的强力替代方案FITRIM。
ps 我确实喜欢下面 Tom Yan 评论中提供的备用链接。我或多或少是在官方 git 存储库中工作的,但我喜欢 Tom 链接到的服务的一点是,您可以更轻松地在文件的不同版本之间切换以进行比较。
根据Linux Kernel Newbies的 2.6.33 更新日志:
FAT:放弃挂载选项
和维基百科:
自动修剪请求为 Ext4、Btrfs、FAT、GFS2 和 XFS。
所以是的,它是支持的。但要确保应用这个问题答案中的测试。
更新:
Smecki 已完成测试并确认(请参阅评论)TRIM 可以在 FAT32 卷上运行。
以下文件系统支持 TRIM:NTFS、HFS+、EXT4、Btrfs。
\n\n现在许多操作系统都提供 TRIM 支持,旨在提高写入性能。TRIM 允许 NAND 闪存设备的控制器在从单元中删除数据之后以及对该单元进行下一次写入之前管理擦除过程。
\n\nLinux 早在 2008 年底就开始支持 TRIM,但并非 Linux 支持的所有文件系统都支持 TRIM。Microsoft Windows 于 2009 年底随 Windows Server 2008 开始支持 TRIM。OpenSolaris 于 2010 年中期开始支持 TRIM。移动设备的 Android 于 2013 年才开始支持 TRIM。
\n\n因此,目前许多(但并非所有)主要操作系统都支持 TRIM,目前该功能仅适用于 SATA 接口。
\n\nTRIM(也拼写为“修剪”)是串行 ATA (SATA) 接口中的一个特定命令,它告诉底层 NAND 闪存固态存储设备可以擦除哪些数据。TRIM 在概念上可以与旋转硬盘驱动器上的碎片整理实用程序进行比较,它通过主动释放空间来提高性能。
\n\nNAND 闪存将数据组织成页,页又以块的形式分组在一起。数据可以在页级读写,但只能在块级擦除。当从闪存介质中删除数据时,固态驱动器上的相关页面将被标记为删除,但不会被擦除——因为只能擦除块。当写入新文件时,标记为删除的各个页面将被分组到一个块中,以便可以首先擦除它们,为下一次写入腾出空间。
\n\nTRIM 命令允许操作系统通知固态硬盘 (SSD) 特定页面集中的哪些数据可以被覆盖,从而允许固态硬盘\xe2\x80\x99s 控制器在主机发起删除和下一次写入。通过将擦除移出写入过程,写入速度可以更快。
\n\n为了使 TRIM 发挥作用,主机\xe2\x80\x99s 操作系统 (OS) 和存储驱动程序必须支持 TRIM 命令。以下是 TRIM SSD 关系的工作原理。例如,在 Windows 7 环境中,当固态硬盘报告其支持 TRIM 时,操作系统将禁用磁盘碎片整理并启用 TRIM。然后,当删除主机\xe2\x80\x99s SSD上的文件时,操作系统会向闪存控制器发送TRIM命令,告诉它可以删除哪些块。TRIM 也可以由用户手动启动或每天安排。
\n\nTRIM 是一个命令,而不是缩写词,目前仅适用于 SATA 接口。SAS委员会已将与TRIM类似的UNMAP添加到SAS/SCSI规范中。利亚·肖布
\n\n编辑
\n\nTrim 命令允许操作系统通知固态硬盘 (SSD) 哪些数据块不再被视为正在使用并且可以在内部擦除。
\n\nTRIM 命令使您的操作系统能够在您需要标记的页面之前找到它们并将其清除。当您需要再次在数据页上写入时,提前清理这些数据页可以节省您的时间。就好像你的办公桌旁边有自己的回收人员,在收到纸片时对其进行回收。
\n\n为了正常工作,TRIM 必须得到您所使用的固态硬盘和操作系统的支持。当操作系统和 SSD 都支持 TRIM 时,可以清理各个页面,并且您的固态硬盘将收到通知,这些页面现在是空白的,可以写入。
\n\n并非所有文件系统都使用 Trim。可以自动发出 Trim 请求的文件系统包括 Ext4、Btrfs、FAT、GFS2 和 XFS。但是,由于性能问题,默认情况下禁用此功能,
\n\n微软声称,TRIM仅在Windows 7上的NTFS上实现。
\n| 归档时间: |
|
| 查看次数: |
6011 次 |
| 最近记录: |