TRIM nasıl etkinleştirilir?

184

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

TRIM varsayılan olarak etkin mi, yoksa bazı ayarları değiştirmeli mi yoksa çalışması için ek yazılım mı kurmalıyım? Eğer öyleyse, nasıl?

    
sordu Uli 26.12.2010 13:44

2 cevap

195

Ubuntu 14.10'dan sonra

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

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

Ubuntu 14.04

Ubuntu 14.04'ten itibaren, planlanan TRIM, Intel, SAMSUNG, OCZ, Patriot ve Sandisk SSD'leri 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 /etc/cron.weekly/fstrim dosyasını düzenleyin ve --no-model-check ekleyin)

Ubuntu 13.10 ve Önceki

TRIM, manuel, programlı ve otomatik olarak gerçekleştirmenin üç yolu vardır:

Manuel TRIM

Ubuntu'da bu, fstrim ile gerçekleştirilebilir:

sudo fstrim /

Ancak, planlanan veya otomatik TRIM etkinleştirildiğinde, aşağıdaki bölümlerde açıklandığı gibi gerekli değildir.

Not: Ubuntu 11.04 ve önceki sistemler için fstrim kullanılamaz, bu yüzden wiper.sh 'si ile hdparm /usr/share/doc/hdparm/contrib/wiper.sh.gz

Zamanlanmış TRIM (Önerilen)

Şu anda önerilen yöntemdir ve Ubuntu 14.04 için varsayılan olarak etkinleştirilmesi planlanan planlanan yöntemdir. . Ubuntu'nun eski sürümlerinde elle nasıl etkinleştirilir (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, ardından 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 yer aldığını varsaydığını unutmayın. Bir veya daha fazla SSD'de bulunan daha fazla bağlama noktanız varsa, bunları kodda açıklandığı gibi SSD_MOUNT_POINTS değerine ekleyin.

Komut dosyasını çalıştırılabilir yapın:

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

Ve sonunda test et:

sudo /etc/cron.weekly/fstrim

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

Otomatik TRIM (Onaylanmamış, Yavaş)

EXT4 dosya sistemi ile Ubuntu 10.10'dan (çekirdek 2.6.33) beri otomatik TRIM desteklenmiştir. Bununla birlikte, TRIM komutlarını SSD'ye gerçek zamanlı olarak gönderme - her silme işleminden sonra - bazı sürücülerde normalden daha yavaş silme yapmak için tanınmıştır. Bu nedenle, bir cron işi (yukarıda açıklanmıştır) ile haftalık planlı TRIM önerilir.

Bir sürücü veya bölümdeki otomatik TRIM'i etkinleştirmek için, discard dizininde fstab seçeneğine sahip olmaları gerekir. Önce fstab'ınızı yedekleyin ve ardından düzenlemek için açın:

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

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

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

Fstab'ı kapatın ve kaydedin, ardından yeniden başlatıp otomatik TRIM çalışmalıdır.

Otomatik TRIM'i test etme

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

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

Çıkış kopyasından begin_LBA altındaki numarayı girin ve SSD'nizin cihaz adını doğrulayın: System->Administration->Disk Utility ör. sda, sdb, sdc ...

Aşağıdakileri çalıştırın, ancak [ADDRESS] (begin_LBA) ve sdX (SSD cihaz adı) değerini yukarıda verilen bilgilerle değiştirin.

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

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

sudo rm tempfile
sync

Yukarıdaki hdparm komutunu tekrarlayın:

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

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

    
verilen cevap Uli 30.09.2015 23:58
26

Şifreleme kullanıyorsanız, şu ana kadar gönderilen çözümlerin size yardımcı olmayacağını unutmayın, çünkü şifreleme katmanında da TRIM desteğini etkinleştirmeniz gerekir. Bu, her ikisi de Ubuntu 12.04'te bulunan çekirdek sürümleri 3.1+ ve cryptsetup 1.4+ sürümleriyle yapılabilir.

LUKS şifrelenmiş bölümler için TRIM ayarını yapma kılavuzumu burada

Ubuntu & amp; LUKS Şifrelenmiş Bölmelerde TRIM Nasıl Etkinleştirilir? Debian

Bu adım adım, kriptset 1.4 veya daha yüksek ve çekirdek 3.1 veya üstü için şifrelenmiş SSD bölümleriniz için TRIM teknolojisinden faydalanmanızı sağlayacaktır. Bu, sorunsuz bir SSD deneyimine yol açar, çünkü

  

"TRIM, SSD'nin çöp toplama yükünü üstlenmesini sağlıyor.   aksi takdirde gelecekteki yazma işlemlerini önemli ölçüde yavaşlatabilir   önceden ilgili bloklar. "

Örnek Kurulum

Tek sürücü olarak SSD'ye sahip dizüstü bilgisayar, Linux, LVM takas bölümüyle tek ext4 LVM kök bölümünde yüklü, her ikisi de LUKS şifreli mantıksal bölüm.

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

NASIL

  1. Tüm verilerinizi yedekleyin. Dosya sisteminizle uğraşıyorsunuz bir yedeklemenin olması sadece iyi bir fikir.
  2. Gerekli çekirdek ve şifreleme sürümlerine sahip olduğunuzdan emin olun (3.1 & Sons; 1.4, ör. Ubuntu 12.04 de, 12.04 yazarken dikkat et hala beta).
  3. Şifrelenmiş dosya sistemi seçeneklerine iptal parametresi ekle / Etc / fstab dosyanızdaki LVM birimi. Bu dosya sistemi yapar LVM bölümünüz, TRIM'i kullanmak istediğinizin farkında.

    /dev/mapper/volumegroup-root    /   ext4 discard,noatime,nodiratime,errors=remount-ro    0    1
    
  4. Ancak son adım yeterli değil. LUKS bilmediği sürece TRIM kullanmak istediğiniz tüm TRIM'i etkin bir şekilde engelleyecektir güvenlik için LVM bölümünün dosya sisteminden gelen işlemler nedenler. İçindeki cryptdevice seçeneklerine discard parametresi ekle LUKS yapmak için / etc / crypttab LVM'nin iptal davranışını kabul eder bölüm.

    sda5_crypt UUID=e364d03f-[...]6cd7e none luks,discard
    
  5. initramf'lerinizi yeniden oluşturun. Crypttab seçenekleri orada saklanır ve önyüklemede kullanılır.

    sudo update-initramfs -c -k all
    
  6. Yeniden.

  7. TRIM'in etkin 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_discard), hepiniz belirlediniz.

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

Sonuca

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

    
verilen cevap nem75 14.04.2012 17:00

Etiketlerdeki diğer soruları oku