TRIM nasıl etkinleştirilir?


189

Linux çekirdeğinin 2.6.33 sürümünden itibaren TRIM'i desteklediğini biliyorum, bu yüzden ubuntu'da TRIM desteği olmalı.

TRIM varsayılan olarak etkin mi yoksa bazı ayarları değiştirmem veya çalışması için ek yazılım yüklemem gerekir mi? Öyleyse nasıl?


Bu yönergeleri daha önce bazı gerçekten iyi seçenekler sunan webupd8'de takip ettim :-) webupd8.org/2013/01/enable-trim-on-ssd-solid-state-drives.html Yukarıda belirtilen şekilde otomatik döşeme seçeneğini denedim. "Automatic TRIM", ancak günlük bir cron ayarlamanın kurulumumla daha iyi çalıştığını buldu.
bmbaker

Yanıtlar:


197

Ubuntu 14.10 sonrası

Ubuntu 14.10 ve 15.04'te, TRIMming tarafından desteklenen tüm SSD'lerde her hafta otomatik olarak gerçekleşir fstrim.

$ tail -n1 /etc/cron.weekly/fstrim 
/sbin/fstrim --all || true

15.04'ten beri Ubuntu systemd ve zamanlayıcısını kullanmaktadır ( man systemd.timer, Arch wiki )

systemctl list-timers
systemctl status fstrim.timer

Ubuntu 14.04

Ubuntu 14.04'ten itibaren, zamanlanmış TRIM, Intel, SAMSUNG, OCZ, Patriot ve Sandisk SSD'ler için varsayılan olarak etkindir. Başka bir markanız varsa, aşağıdaki komutu çalıştırarak satıcı kontrolünü devre dışı bırakabilirsiniz:

sed -i 's/exec fstrim-all/exec fstrim-all --no-model-check/g' /etc/cron.weekly/fstrim

(veya sadece dosyayı düzenleyip /etc/cron.weekly/fstrimekleyin --no-model-check)

Ubuntu 13.10 ve Daha Önce

TRIM, manuel, zamanlanmış ve otomatik işlem yapmanın üç yolu vardır:

Manuel TRIM

Ubuntu'da bu şu şekilde yapılabilir fstrim:

sudo fstrim /

ancak, aşağıdaki bölümlerde ayrıntılandırıldığı gibi, programlanmış veya otomatik TRIM etkinleştirildiğinde gerekli değildir.

Not: For Ubuntu 11.04 ve daha önceki sistemlerde, fstrim kullanılamaz yüzden kullanmak zorunda wiper.shbirlikte verilen hdparmiçinde/usr/share/doc/hdparm/contrib/wiper.sh.gz

Zamanlanmış TRIM (Önerilen)

Bu şu anda önerilen yöntemdir ve Ubuntu 14.04 için varsayılan başına etkinleştirilmesi planlanmaktadır . Aşağıda, ubuntu'nun eski sürümlerinde manuel olarak nasıl etkinleştirileceği (11.10 - 13.10):

Haftalık bir CRON iş komut dosyası oluşturun:

gksudo gedit /etc/cron.weekly/fstrim

Aşağıdaki kodu dosyaya yapıştırın, sonra dosyayı kaydedin ve kapatın:

#! /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

Yukarıdakilerin yalnızca kök dosya sisteminizin /bir SSD'de bulunduğunu varsaydığını unutmayın . Bir veya daha fazla SSD'de bulunan daha fazla bağlama noktanız varsa, bunları SSD_MOUNT_POINTSkodda açıklandığı şekilde ekleyin .

Komut dosyasını yürütülebilir duruma getirin:

sudo chmod +x /etc/cron.weekly/fstrim

Sonunda test et:

sudo /etc/cron.weekly/fstrim

Hata görmüyorsanız, cron işiniz iyi çalışıyor olmalıdır.

Otomatik TRIM (Kaldırıldı, Yavaş)

EXT4 dosya sistemiyle Ubuntu 10.10 (çekirdek 2.6.33) tarihinden beri otomatik TRIM desteklenmektedir. Ancak, gerçek zamanlı olarak TRIM komutlarının SSD'ye gönderilmesi - her silme işleminden sonra - silme işleminin bazı sürücülerdeki normalden daha yavaş gerçekleştirildiği kabul edildi. Bu nedenle (yukarıda açıklanmıştır) bir cron işi aracılığıyla haftalık zamanlanmış bir TRIM önerilir.

Bir sürücüdeki veya bölümdeki otomatik TRIM'i etkinleştirmek için, içindeki discardseçeneklerle birlikte monte edilmeleri gerekir fstab. Öncelikle fstab'ınızı yedekleyin ve ardından düzenleme için açın:

sudo cp /etc/fstab ~/fstab-backup
gksudo gedit /etc/fstab

discardSSD sürücüsü veya her bölüm için fstab options girişine (virgülle ayrılmış) ekleyin .

UUID=00000000-0000-0000-0000-000000000000  /  ext4  discard,errors=remount-ro  0  1

Fstab'ı kapatın ve saklayın, ardından yeniden başlatın ve otomatik TRIM şimdi çalışıyor olmalı.

Otomatik TRIM testi

TRIM'in çalışıp çalışmadığını test etmek için aşağıdaki komutları verin ( kaynak ):

cd  / # Replace with SSD file system
sudo dd if=/dev/urandom of=tempfile count=100 bs=512k oflag=direct
sudo hdparm --fibmap tempfile

Çıktıdan aşağıdaki numarayı kopyalayın begin_LBAve SSD'nizin cihaz adını doğrulayın: System->Administration->Disk Utilityörneğin sda, sdb, sdc ...

Aşağıdakini çalıştırın, ancak değiştirin [ADDRESS](begin_LBA) ve sdX(SSD cihaz adı) yukarıda verilen ayrıntılarla birlikte.

sudo hdparm --read-sector [ADDRESS] /dev/sdX 

çıktı, bu sektörler için uzun bir karakter dizisi olmalıdır

sudo rm tempfile
sync

hdparmYukarıdaki komutu tekrarlayın :

sudo hdparm --read-sector [ADDRESS] /dev/sdX 

Yalnızca sıfır alırsanız otomatik TRIM çalışıyor demektir. Ancak dosyayı çıkardıktan sonra sektörler hala boş değilse, bir süre bekleyin ve komutu tekrar çalıştırın.



1
@Uli Lütfen biri bana yardım etsin. Benim için işe görünmüyor. Benim ssd 4 bölüm varsa / /boot /usrve /optben sıramı başka hdd kullandık /home. Ben gidiyorum cd / #sdcve talimatlara devam ediyorum ama asla sıfır alamıyorum. Şimdiden teşekkürler!
BugShotGG

1
@lightrush: Harika düzenleme! Cevabı güncel tuttuğunuz için teşekkür ederiz.
Uli

1
Komuttan syncsonra bir ddkomut eklemek isteyebilirsiniz , çünkü en azından sistemimde tempfile hemen yaratılmadığından hdparm hiçbir şey rapor etmiyor.
Andreas J.

2
systemd bunu şimdi halleder. sudo systemctl status fstrim.timer
balloons,

28

Şifreleme kullanıyorsanız, buraya kadar yayınlanan çözümlerin size yardımcı olmayacağını unutmayın, çünkü şifreleme katmanında TRIM desteğini de etkinleştirmeniz gerekir. Bu, her ikisi de Ubuntu 12.04'e dahil olan çekirdek sürüm 3.1+ ve şifreli sürüm 1.4+ sürümleriyle yapılabilir.

LUKS şifreli bölümleri için TRIM kurma konusunda rehberimi burada bul


Ubuntu ve Debian’da LUKS Şifreli Bölümlerinde TRIM’i Etkinleştirme


Bu adım adım adım, şifreleme 1.4 veya daha üstü için ve şifreli SSD bölümleriniz için TRIM teknolojisinden ve çekirdek 3.1 veya daha üstü için faydalanmanıza izin verecektir. Bu, sorunsuz bir SSD deneyimine yol açar, çünkü

"TRIM, SSD'nin çöp toplama işlemini baştan sona üstlenmesini sağlıyor, aksi takdirde gelecekteki yazma işlemlerini ilgili bloklara önceden yavaşlatıyor."

Örnek kurulum

Tek sürücü olarak SSD'li dizüstü bilgisayar, Linux, her ikisi de LUKS şifreli mantıksal bölme üzerinde LVM takas bölmeli tek ext4 LVM kök bölümüne kurulur.

SSD: / dev / sda

sudo fdisk -l /dev/sda
/dev/sda1               # boot partition (83) (unencrypted, ext4)
/dev/sda2               # extended partition
/dev/sda5               # logical partition (83) with LUKS encryption

ls /dev/mapper
/dev/mapper/sda5_crypt         # encrypted LUKS device in physical /dev/sda5 partition
/dev/mapper/volumegroup-root   # rootpartition sda5_crypt
/dev/mapper/volumegroup-swap   # swap partition sda5_crypt

Nasıl

  1. Tüm verilerinizin bir yedeğini alın. Dosya sisteminizi karıştırıyorsunuz, bu nedenle yedekleme yapmak iyi bir fikirdir.
  2. Gerekli çekirdek ve kripto kurulum sürümlerine sahip olduğunuzdan emin olun (3.1 ve 1.4, örneğin Ubuntu 12.04'te, 12.04 yazarken hala dikkatli olun).
  3. / Etc / fstab dosyanızdaki şifreli LVM birimlerinin dosya sistemi seçeneklerine atma parametresi ekleyin. Bu, LVM bölümünüzün dosya sistemini TRIM kullanmak istediğinizi farkında yapar.

    /dev/mapper/volumegroup-root    /   ext4 discard,noatime,nodiratime,errors=remount-ro    0    1
    
  4. Son adım da yeterli değil. LUKS, TRIM'i kullanmak istediğinizi bilmediği sürece, güvenlik nedeniyle LVM bölümünün dosya sisteminden gelen tüm TRIM işlemlerini etkili bir şekilde engelleyecektir. LUKS'un LVM bölümünün atma davranışını kabul etmesi için / etc / crypttab içindeki cryptdevice seçeneklerine discard parametresini ekleyin.

    sda5_crypt UUID=e364d03f-[...]6cd7e none luks,discard
    
  5. İnitramfs'inizi yeniden oluşturun. Crypttab seçenekleri orada saklanır ve açılışta kullanılır.

    sudo update-initramfs -c -k all
    
  6. Yeniden Başlatma.

  7. TRIM'in şimdi aktif olup olmadığını kontrol edin.

    sudo dmsetup table /dev/mapper/sda5_crypt --showkeys
    
  8. Son komut bunun gibi bir sonuç gösteriyorsa (sonunda 1 allow_discards) ayarladınız.

    0  77656056  crypt  aes-cbc-essiv:sha256  abc[...]c7a0c  0  8:5  2056  1  allow_discards
    

Sonuç

TRIM etkinleştirildi. Sorunsuz SSD'nizin tadını çıkarın!


@Marco Ceppi düzenleme için herhangi bir neden var, ihmal ettiğim bir şey?
nem75

Sadece indirgeme işleminin başlatılması ve "imza" satırının kaldırılması (yorumlarla ve sitede oylama yoluyla geri bildirim alacağınız varsayılır.
Marco Ceppi

7
Site / sayfanın mevcut olmaması durumunda rehber buraya eklenmelidir.
Cas

Bunun yanında etkili bir bağlantı sadece cevap, işe yaramadı. Birçoğunuz 12.04'te TRIM'i ilerletmeyen LUKS ile LVM kullanacaksınız. Daha fazla bilgi için bu cevaba bakınız .
gertvdijk

1
Bu talimatları izledikten sonra, 14.04'te diski kırpmak için bir cron işi ayarlamak gerekli mi?
ajn
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.