Многие онлайн-инструкции по SSD в настоящее время говорят, что вы должны добавить allow-discards и root_trim = yes к вашему GRUB_CMDLINE_LINUX. Мне еще предстоит найти тот, который говорит , почему вы должны это делать, то есть, что именно (если что-нибудь!) Делают эти параметры. Где находится документация по этому вопросу и что говорится о назначении этих двух параметров?
Согласно Примечания к выпуску Cryptsetup 1.4.0 ,
Начиная с ядра 3.1, устройства dm-crypt опционально (не по умолчанию) поддерживают команды сброса блоков (TRIM). Если вы хотите включить эту операцию, вы должны включить ее вручную при каждой активации, используя --allow-discards
blockquote>cryptsetup luksOpen --allow-discards /dev/sdb test_disk
, но то же самое при передаче ядру (через GRUB_CMDLINE_LINUX) ?
Редактировать: В списке параметров ядра Kernel.org нет (в настоящее время, по крайней мере, января 2013 г.) ни одной из этих опций.
Насколько я понимаю, параметр загрузки root_trim=yes
специфичен для Gentoo. В genkernel
есть скрипт, который ищет параметр и устанавливает опцию --allow-discards
с помощью cryptsetup (см. Их git-репозиторий ). Кроме того, я нашел много сообщений о пользователях Ubuntu или Debian, в которых говорилось, что он работает без параметра root_trim
. Я также не нашел строк в скрипте Ubuntus update-initramfs
.
Таким образом, в целом это не загрузочный параметр, а скорее параметр cryptsetup
. Документацию --allow-discards
можно найти на странице руководства cryptsetup (8) :
- allow-discards
Разрешить использование запросов на сброс (TRIM) для устройства. Эта опция актуальна только для create , luksOpen или loopaesOpen .ПРЕДУПРЕЖДЕНИЕ : Тщательно оцените конкретные риски безопасности перед включением этой опции. Например, разрешение сброса на зашифрованных устройствах может привести к утечке информации об устройстве зашифрованного текста (тип файловой системы, используемое пространство и т. Д.), Если сброшенные блоки можно будет легко разместить на устройстве позже.
Требуется ядро версии 3.1 или более поздней. Для более старых версий этот параметр игнорируется.
blockquote>На основе этого блога на TRIM & amp; dm-crypt , TRIM - это операция, при которой верхний уровень (например, файловая система) информирует устройство о том, какие сектора больше не используются (больше не содержат достоверных данных) и что устройству не нужно сохранять этот контент.
В терминологии Linux эта операция называется сбросом. В мире SCSI это упоминается как команда UNMAP.
Операция сброса может использоваться для двух целей: тонкая инициализация (сообщает, что область данных может быть возвращена в пул распределения) и для оптимизации работы SSD.
Сбросы наиболее полезны для оптимизации SSD, поскольку во внутренней архитектуре используются блоки большего размера, чем секторы, и что блоки должны быть удалены перед выполнением операции записи. Информация о секторах, в которых нет необходимости хранить данные, очень полезна, поскольку файловая система сможет более эффективно организовывать блоки таким образом, чтобы фрагментация данных была минимизирована, а время жизни диска увеличилось бы.