Я перенес основные данные на новый SSD. (Samsung 840 EVO, 120 ГБ.) Мой ~
раздел зашифрован и смонтирован автоматически . То есть, для этого раздела pam_mount
есть запись ./etc/security/pam_mount.conf.xml
Я хочу, чтобы он поддерживал TRIM. Я знаю, что это немного ослабляет шифрование (т.е. создает какой-то побочный канал), но я надеюсь, что это приемлемо.
Я пытался включить его в pam_mount.conf.xml
. Одним из подходов было включение discard
параметров монтирования, которые, как говорили, автоматически разрешали отбрасывание на зашифрованном блочном устройстве:
<volume user="{USERNAME}" fstype="crypt" mountpoint="/home/{USERNAME}" path="/dev/sdb{NUMBER}" options="defaults,noatime,nosuid,nodev,discard" />
Другая попытка состояла в том, чтобы включить discard
(а также discards
) в mnoptions.
<mntoptions allow="discard,discards,nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other" />
Не повезло. Fstrim все еще не работает:
% sudo fstrim --verbose ~
fstrim: /home/{USERNAME}: FITRIM ioctl failed: Operation not supported
Я ничего не забыл? Решит ли проблему обновление до 14.04? man cryptsetup
Команда сообщает мне, что --allow-discards
поддерживается, поэтому я надеюсь, что это сработает. Версия ядра — 3.13.0-35-generic
, что, кажется, нормально, поскольку версия 3.1+
обязательна.
Базовая файловая система — ext4. fstrim
Команда отлично работает с незашифрованными файловыми системами (которые также являются ext4), но не работает с файловой системой, которая зашифрована dm-crypt (?).
Обратите внимание, что, discard
по-видимому, используется опция монтирования:
% mount | grep ~
/dev/sdb{NUMBER} on /home/{USERNAME} type crypt (rw,nosuid,nodev,noatime,discard)
решение1
Компиляция новой версии pam-mount
из исходников помогла. Мне пришлось установить .deb
из libhx28
и libhx-dev
из Trusty (что вообще-то рискованно), чтобы получить более новую версию этой библиотеки.
Вероятно, у вас будет более новая версия в новой Ubuntu из коробки, так что вы можете пропустить компиляцию. Если можете, вы можете обновиться до Trusty. Я хочу остаться с Precise некоторое время.
Теперь включение allow_discards
без этого discard
— это уродливый хак.пластырьпросто проверяет наличие флага "discard". Поэтому я решил поставить и "discard", и "nodiscard" (в этом порядке) и надеяться, что это сработает.
Теперь fstrim
на этом устройстве работает, но я надеюсь, что флаг discard mount неэффективен. Не уверен, смогу ли я это проверить.
В качестве альтернативы можно попробовать выполнить повторную установку, но у меня этот подход не удался.