Tôi biết rằng nhân Linux hỗ trợ TRIM kể từ phiên bản 2.6.33, vì vậy cần có hỗ trợ TRIM trong ubfox.
TRIM được bật theo mặc định hay tôi cần thay đổi một số cài đặt hoặc cài đặt phần mềm bổ sung để nó hoạt động? Nếu vậy thì thế nào?
Tôi biết rằng nhân Linux hỗ trợ TRIM kể từ phiên bản 2.6.33, vì vậy cần có hỗ trợ TRIM trong ubfox.
TRIM được bật theo mặc định hay tôi cần thay đổi một số cài đặt hoặc cài đặt phần mềm bổ sung để nó hoạt động? Nếu vậy thì thế nào?
Câu trả lời:
Trong Ubuntu 14.10 và 15.04, TRIMming tự động xảy ra mỗi tuần trên tất cả các ổ SSD được hỗ trợ bởi fstrim
.
$ tail -n1 /etc/cron.weekly/fstrim
/sbin/fstrim --all || true
Kể từ 15.04 Ubuntu sử dụng systemd và bộ đếm thời gian của nó ( man systemd.timer
, Arch wiki )
systemctl list-timers
systemctl status fstrim.timer
Kể từ Ubuntu 14.04, TRIM theo lịch trình được bật theo mặc định cho các ổ SSD Intel, SAMSUNG, OCZ, Patriot và Sandisk. Nếu bạn có một thương hiệu khác, bạn có thể vô hiệu hóa kiểm tra nhà cung cấp bằng cách chạy lệnh sau:
sed -i 's/exec fstrim-all/exec fstrim-all --no-model-check/g' /etc/cron.weekly/fstrim
(hoặc chỉ chỉnh sửa tệp /etc/cron.weekly/fstrim
và thêm --no-model-check
)
Có ba cách để thực hiện TRIM, thủ công, lên lịch và tự động:
Trong Ubuntu, điều này có thể được thực hiện với fstrim
:
sudo fstrim /
tuy nhiên không cần thiết khi bật TRIM tự động hoặc theo lịch trình, như chi tiết trong các phần bên dưới.
Lưu ý: Đối với Ubuntu 11.04 và các hệ thống cũ hơn, fstrim không khả dụng nên bạn phải sử dụng wiper.sh
được cung cấp hdparm
trong/usr/share/doc/hdparm/contrib/wiper.sh.gz
Đây là phương pháp được đề xuất hiện tại và được lên kế hoạch kích hoạt theo mặc định cho Ubuntu 14.04 . Dưới đây là cách kích hoạt thủ công trong các phiên bản cũ hơn của ubfox (11.10 đến 13.10):
Tạo tệp tập lệnh CRON hàng tuần:
gksudo gedit /etc/cron.weekly/fstrim
Dán đoạn mã sau vào tệp, sau đó lưu và đóng tệp:
#! /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
Lưu ý rằng ở trên giả định rằng chỉ có hệ thống tập tin gốc của bạn /
được đặt trên ổ SSD. Nếu bạn có nhiều điểm gắn kết nằm trên một hoặc nhiều ổ SSD, hãy thêm chúng vào SSD_MOUNT_POINTS
như được giải thích trong mã.
Làm cho tập lệnh thực thi:
sudo chmod +x /etc/cron.weekly/fstrim
Và cuối cùng kiểm tra nó:
sudo /etc/cron.weekly/fstrim
Nếu bạn thấy không có lỗi, công việc định kỳ của bạn sẽ hoạt động tốt.
TRIM tự động đã được hỗ trợ kể từ Ubuntu 10.10 (kernel 2.6.33) với hệ thống tệp EXT4. Tuy nhiên, việc gửi các lệnh TRIM tới SSD trong thời gian thực - sau mỗi lần xóa - đã được công nhận để xóa chậm hơn bình thường trên một số ổ đĩa. Do đó, một TRIM được lên lịch hàng tuần thông qua một công việc định kỳ (được mô tả ở trên) được đề xuất.
Để bật TRIM tự động trên ổ đĩa hoặc phân vùng, chúng cần được gắn với discard
tùy chọn trong fstab
. Đầu tiên hãy sao lưu fstab của bạn sau đó mở nó để chỉnh sửa:
sudo cp /etc/fstab ~/fstab-backup
gksudo gedit /etc/fstab
Thêm vào discard
mục tùy chọn fstab (được phân tách bằng dấu phẩy) cho ổ SSD hoặc từng phân vùng.
UUID=00000000-0000-0000-0000-000000000000 / ext4 discard,errors=remount-ro 0 1
Đóng và lưu fstab, sau đó khởi động lại và TRIM tự động sẽ hoạt động.
Để kiểm tra xem TRIM có hoạt động hay không, các lệnh sau ( nguồn ):
cd / # Replace with SSD file system
sudo dd if=/dev/urandom of=tempfile count=100 bs=512k oflag=direct
sudo hdparm --fibmap tempfile
Từ đầu ra, sao chép số bên dưới begin_LBA
và xác minh tên thiết bị của SSD của bạn: System->Administration->Disk Utility
ví dụ: sda, sdb, sdc ...
Chạy các bước sau nhưng thay thế [ADDRESS]
(started_LBA) và sdX
(tên thiết bị SSD) bằng các chi tiết thu được ở trên.
sudo hdparm --read-sector [ADDRESS] /dev/sdX
đầu ra phải là một chuỗi ký tự dài cho các sector đó
sudo rm tempfile
sync
Lặp lại hdparm
lệnh từ phía trên:
sudo hdparm --read-sector [ADDRESS] /dev/sdX
Nếu bạn chỉ nhận được số không thì TRIM tự động đang hoạt động. Tuy nhiên, nếu sau khi xóa tệp, các sector vẫn không trống thì hãy đợi một lúc và chạy lại lệnh.
/
/boot
/usr
và /opt
và tôi đã sử dụng hdd khác cho tôi /home
. Tôi đi đến cd / #sdc
và tôi tiếp tục với các hướng dẫn nhưng tôi không bao giờ có được số không. Cảm ơn trước!
sync
sau dd
, vì ít nhất trên hệ thống của tôi, tempfile không được tạo ngay lập tức, vì vậy hdparm báo cáo không có gì.
Lưu ý rằng nếu bạn đang sử dụng mã hóa, các giải pháp được đăng ở đây sẽ không giúp ích gì cho bạn, vì bạn cũng cần bật hỗ trợ TRIM trong lớp mã hóa. Điều này có thể được thực hiện với các phiên bản kernel 3.1+ và phiên bản cryptsetup 1.4+, cả hai đều được bao gồm trong Ubuntu 12.04.
Tìm hướng dẫn của tôi về cách thiết lập TRIM cho các phân vùng được mã hóa LUKS tại đây
Cách kích hoạt TRIM trên các phân vùng được mã hóa LUKS trong Ubuntu & Debian
Hướng dẫn từng bước này sẽ cho phép bạn tận dụng công nghệ TRIM cho các phân vùng SSD được mã hóa của bạn cho cryptsetup 1.4 trở lên và kernel 3.1 trở lên. Điều này dẫn đến trải nghiệm SSD không rắc rối vì
"TRIM cho phép SSD xử lý chi phí thu gom rác, điều đó sẽ làm chậm đáng kể các hoạt động ghi trong tương lai tới các khối liên quan, trước."
Thiết lập ví dụ
Máy tính xách tay với SSD là ổ đĩa đơn, Linux được cài đặt trong phân vùng gốc LV4 ext4 với phân vùng trao đổi LVM, cả trên phân vùng logic được mã hóa LUKS.
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
Làm thế nào để
Thêm tham số loại bỏ vào các tùy chọn hệ thống tệp của (các) khối lượng LVM được mã hóa trong tệp / etc / fstab của bạn. Điều này làm cho hệ thống tệp của phân vùng LVM của bạn biết rằng bạn muốn sử dụng TRIM.
/dev/mapper/volumegroup-root / ext4 discard,noatime,nodiratime,errors=remount-ro 0 1
Bước cuối cùng là không đủ mặc dù. Miễn là LUKS không biết rằng bạn muốn sử dụng TRIM, nó sẽ chặn hiệu quả tất cả các hoạt động TRIM đến từ hệ thống tệp của phân vùng LVM, vì lý do bảo mật. Thêm tham số loại bỏ vào các tùy chọn cryptdevice trong / etc / crypttab để khiến LUKS chấp nhận hành vi loại bỏ phân vùng LVM.
sda5_crypt UUID=e364d03f-[...]6cd7e none luks,discard
Xây dựng lại initramfs của bạn. Các tùy chọn crypttab được lưu trữ ở đó và được sử dụng khi khởi động.
sudo update-initramfs -c -k all
Khởi động lại.
Kiểm tra xem TRIM hiện đang hoạt động.
sudo dmsetup table /dev/mapper/sda5_crypt --showkeys
Nếu lệnh cuối cùng hiển thị kết quả như thế này (1 allow_discards ở cuối) thì bạn đã thiết lập xong.
0 77656056 crypt aes-cbc-essiv:sha256 abc[...]c7a0c 0 8:5 2056 1 allow_discards
Kết quả
TRIM được kích hoạt. Tận hưởng SSD không rắc rối của bạn!