#! /bin/sh
# By default we assume only / is on an SSD.
# You can add more SSD mount points, separated by spaces.
# Make sure all mount points are within the quotes. For example:
# SSD_MOUNT_POINTS='/ /boot /home /media/my_other_ssd'
SSD_MOUNT_POINTS='/'
for mount_point in $SSD_MOUNT_POINTS
do
fstrim $mount_point
done
Ubuntu 14.10 以上
在 Ubuntu 14.10 和 15.04 中,TRIMming 每周在
fstrim
.自 15.04 以来 Ubuntu 使用 systemd 及其计时器(
man systemd.timer
Arch wiki)Ubuntu 14.04
从 Ubuntu 14.04 开始,默认情况下会为 Intel、SAMSUNG、OCZ、Patriot 和 Sandisk SSD 启用预定的 TRIM 。如果您有其他品牌,则可以通过运行以下命令禁用供应商检查:
(或者只是编辑文件
/etc/cron.weekly/fstrim
并添加--no-model-check
)Ubuntu 13.10 及更早版本
有三种方法可以执行 TRIM,手动、计划和自动:
手动修剪
在 Ubuntu 中,这可以通过以下方式执行
fstrim
:但是,在启用计划或自动 TRIM 时不需要它,如下节所述。
注意:对于Ubuntu 11.04及更早的系统,fstrim 不可用,因此您必须使用
wiper.sh
提供的hdparm
in/usr/share/doc/hdparm/contrib/wiper.sh.gz
预定 TRIM(推荐)
这是当前推荐的方法,计划在默认情况下为 Ubuntu 14.04 激活。以下是在旧版本的 ubuntu(11.10 到 13.10)中手动激活它的方法:
创建每周 CRON 作业脚本文件:
将以下代码粘贴到文件中,然后保存并关闭文件:
请注意,以上假设只有您的根文件系统
/
位于 SSD 上。如果您有更多挂载点驻留在一个或多个 SSD 上,请SSD_MOUNT_POINTS
按照代码中的说明添加它们。使脚本可执行:
最后测试一下:
如果您没有看到任何错误,那么您的 cron 作业应该可以正常工作。
自动 TRIM(已弃用,缓慢)
自带有 EXT4 文件系统的 Ubuntu 10.10(内核 2.6.33)以来,已支持自动 TRIM。但是,在每次删除后实时向 SSD 发送 TRIM 命令会导致某些驱动器上的删除速度比平时慢得多。因此,建议通过 cron 作业(如上所述)每周安排一次 TRIM。
discard
要在驱动器或分区上启用自动 TRIM,需要使用fstab
. 首先备份你的 fstab 然后打开它进行编辑:添加
discard
到 SSD 驱动器或每个分区的 fstab 选项条目(逗号分隔)。关闭并保存 fstab,然后重新启动,自动 TRIM 现在应该可以工作了。
测试自动TRIM
要测试 TRIM 是否正常工作,请发出以下命令(source):
从输出中复制下面的数字
begin_LBA
并验证 SSD 的设备名称:System->Administration->Disk Utility
例如sda、sdb、sdc ...运行以下命令,但将
[ADDRESS]
(begin_LBA) 和sdX
(SSD device name) 替换为上面获得的详细信息。输出应该是这些扇区的一长串字符
重复
hdparm
上面的命令:如果你只得到零,那么自动 TRIM 正在工作。但是,如果删除文件后扇区仍然不为空,请稍等片刻,然后再次运行该命令。
请注意,如果您使用加密,到目前为止发布的解决方案对您没有帮助,因为您还需要在加密层中启用 TRIM 支持。这可以通过内核版本 3.1+ 和 cryptsetup 版本 1.4+ 来完成,这两个版本都包含在 Ubuntu 12.04 中。
在此处查找有关为 LUKS 加密分区设置 TRIM 的指南
如何在 Ubuntu 和 Debian 中激活 LUKS 加密分区上的 TRIM
本分步演练将让您利用 TRIM 技术为您的加密 SSD 分区提供 cryptsetup 1.4 或更高版本以及内核 3.1 或更高版本。这带来了无忧无虑的 SSD 体验,因为
示例设置
以 SSD 为单驱动的笔记本,Linux 安装在单个 ext4 LVM 根分区和 LVM 交换分区,均通过 LUKS 加密逻辑分区。
固态硬盘:/dev/sda
如何
将丢弃参数添加到 /etc/fstab 文件中加密 LVM 卷的文件系统选项。这使 LVM 分区的文件系统知道您要使用 TRIM。
最后一步还不够。只要 LUKS 不知道您想使用 TRIM,出于安全原因,它就会有效地阻止来自 LVM 分区文件系统的所有 TRIM 操作。在 /etc/crypttab 中的 cryptdevice 选项中添加丢弃参数,以使 LUKS 接受 LVM 分区的丢弃行为。
重建你的 initramfs。crypttab 选项存储在那里并在启动时使用。
重启。
检查 TRIM 现在是否处于活动状态。
如果最后一个命令显示这样的结果(最后有 1 个 allow_discards),那么您就大功告成了。
结果
TRIM 被激活。享受您的无忧 SSD!