Ubuntu 14.10 em diante
No Ubuntu 14.10 e 15.04, o TRIMming acontece automaticamente toda semana em todos os SSDs suportados pelo fstrim
.
$ tail -n1 /etc/cron.weekly/fstrim
/sbin/fstrim --all || true
Desde 15.04, o Ubuntu usa systemd e seu cronômetro ( man systemd.timer
, Arch wiki )
systemctl list-timers
systemctl status fstrim.timer
Ubuntu 14.04
A partir do Ubuntu 14.04, o TRIM agendado é ativado por padrão para os SSDs Intel, SAMSUNG, OCZ, Patriot e Sandisk. Se você tiver outra marca, poderá desativar a verificação do fornecedor executando o seguinte comando:
sed -i 's/exec fstrim-all/exec fstrim-all --no-model-check/g' /etc/cron.weekly/fstrim
(ou apenas edite o arquivo /etc/cron.weekly/fstrim
e adicione --no-model-check
)
Ubuntu 13.10 e versões anteriores
Existem três maneiras de executar o TRIM, manual, programado e automático:
TRIM manual
No Ubuntu, isso pode ser realizado com fstrim
:
sudo fstrim /
no entanto, não é necessário quando o TRIM agendado ou automático está ativado, conforme detalhado nas seções abaixo.
Nota: Para Ubuntu 11.04 e sistemas anteriores, fstrim não está disponível para que você tem que usar wiper.sh
fornecido com hdparm
no/usr/share/doc/hdparm/contrib/wiper.sh.gz
TRIM agendado (recomendado)
Este é o método atualmente recomendado, e está planejado para ser ativado por padrão no Ubuntu 14.04 . Veja como ativá-lo manualmente em versões mais antigas do ubuntu (11.10 a 13.10):
Crie um arquivo de script de tarefa CRON semanal:
gksudo gedit /etc/cron.weekly/fstrim
Cole o seguinte código no arquivo, salve e feche o arquivo:
#! /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
Observe que o acima pressupõe que apenas o seu sistema de arquivos raiz /
está localizado em um SSD. Se você tiver mais pontos de montagem que residem em um ou mais SSDs, adicione-os SSD_MOUNT_POINTS
conforme explicado no código.
Torne o script executável:
sudo chmod +x /etc/cron.weekly/fstrim
E finalmente teste:
sudo /etc/cron.weekly/fstrim
Se você não encontrar erros, seu trabalho cron deve estar funcionando bem.
TRIM automático (obsoleto, lento)
O TRIM automático é suportado desde o Ubuntu 10.10 (kernel 2.6.33) com o sistema de arquivos EXT4. No entanto, o envio de comandos TRIM para o SSD em tempo real - após cada exclusão - foi reconhecido para tornar a exclusão muito mais lenta do que o normal em algumas unidades. Portanto, um TRIM agendado semanalmente por meio de um trabalho cron (descrito acima) é recomendado.
Para habilitar TRIM automática em uma unidade ou partição, eles precisam ser montado com a discard
opção fstab
. Primeiro faça backup do seu fstab e abra-o para edição:
sudo cp /etc/fstab ~/fstab-backup
gksudo gedit /etc/fstab
Adicione discard
à entrada de opções fstab (separada por vírgula) a unidade SSD ou cada partição.
UUID=00000000-0000-0000-0000-000000000000 / ext4 discard,errors=remount-ro 0 1
Feche e salve o fstab, depois reinicie e o TRIM automático deve estar funcionando agora.
Testando o TRIM automático
Para testar se o TRIM está funcionando, execute os seguintes comandos ( fonte ):
cd / # Replace with SSD file system
sudo dd if=/dev/urandom of=tempfile count=100 bs=512k oflag=direct
sudo hdparm --fibmap tempfile
Na saída, copie o número abaixo begin_LBA
e verifique o nome do dispositivo do seu SSD: System->Administration->Disk Utility
por exemplo , sda, sdb, sdc ...
Execute o seguinte, mas substitua [ADDRESS]
(begin_LBA) e sdX
(nome do dispositivo SSD) pelos detalhes obtidos acima.
sudo hdparm --read-sector [ADDRESS] /dev/sdX
a saída deve ser uma longa sequência de caracteres para esses setores
sudo rm tempfile
sync
Repita o hdparm
comando acima:
sudo hdparm --read-sector [ADDRESS] /dev/sdX
Se você obtiver apenas zeros, o TRIM automático estará funcionando. No entanto, se após a remoção do arquivo os setores ainda não estiverem vazios, aguarde um pouco e execute o comando novamente.