Алексей Федорчук
Действия, описанные в этом эссе, более чем опциональны и, возможно, многим покажутся лишними. Однако если их выполнять (а я, как правило, выполняю, хотя не все и не всегда) — делать это надо в числе прочих первоочередных настроек, причины чего будут ясны из описания.
Тюнинг файловых систем
Избавление от кириллических имён
Не знаю, кого как, а меня так страшно раздражают имена подкаталогов в моём домашнем каталоге, самопроизвольно появляющиеся в любой локализованной системе для удовлетворения представлений Freedesktop.org о том, «как правильно». Вы меня поняли — речь идёт о подкаталогах с именами типа Видео
, Документы
и так далее, в ряду которых особенно блистает Рабочий стол
.
И дело не в только неприятии кириллицы в именах элементов файловой иерархии как класса. Хотя и это есть: как сказал бы в наши дни академик Крылов, юзер, дающий своим файлам кириллические имена, заслуживает четвертования на Дворцовой площади. Однако имена «по стандарту» доставляют и практические неудобства: при работе в командной строке мало того что требуется лишний раз нажимать Shift (этого как раз можно избежать настройками, например, Zsh), так ещё и не забыть переключиться перед этим на кириллицу.
Не один раз я писал на эту тему, и каждый раз не обходилось без комментариев типа
консолью пользуюсь ОЧЕНЬ редко
Да, бывает и такое. Но я-то так называемой «консолью» (а на самом деле интерфейсом командной строки) пользуюсь довольно часто. И подозреваю, что в этом я не одинок. А тем, кто «консолью» не пользуется, лучше пропустить этот раздел.
Ну так вот, избавиться от кириллических имён в домашнем каталоге на самом деле очень просто — командой
$ LANG=C xdg-user-dirs-gtk-update --force
где в качестве значения LANG
вместо C
можно задать значение POSIX
или C.UTF-8
(но не en_US
— как ни странно, такой локали в русифицированной установке LMDE нет). В любом случае ответом будет появление такой панели:
С предложением на ней следует согласиться, не забыв отметить боксик, чтобы эта панель не маячила более при каждом старте системы. В результате все пустые каталоги с кириллическими именами будут переименованы в свои латинские аналоги:
$ ls -1 Desktop/ Documents/ Downloads/ lost+found/ Music/ Pictures/ Public/ Templates/ Videos/
Для каталогов же с каким-либо содержимым будут созданы копии — почему эту команду и следует выполнить как можно скорее после установки, пока в Закачки не было что-либо закачано, а в Изображения не попали какие-нибудь скриншоты.
Отключение резерва
При создании файловых систем любым методом (как специальными утилитами, так и средствами инсталлятора) некоторый объём дискового пространства (по умолчанию 5 %) резервируется — он доступен только администратору. И предназначен для того, чтобы избежать переполнения файловых систем — для корня файловой иерархии это может иметь неприятные последствия.
Всё это было актуально во времена, когда диски были маленькие и дорогие. Да и то только для корневой файловой системы. И уж во всяком случае такой резерве не нужен нужен для файловых систем, лежащих на SSD. Так что резервирование дискового пространства можно безболезненно отключить такой командой:
$ sudo tune2fs -r 0 /dev/sd?#
где sd?#
— имя файла дискового устройства и его раздела (например, /dev/sda3
). Ответ на неё, в виде
tune2fs 1.42.12 (29-Aug-2014) Setting reserved blocks count to 0
покажет, что число зарезервированных блоков равно нулю. После чего процедуру можно повторить для всех задействованных в системе разделов, кроме, разве что, того, что несёт корень файловой иерархии. Впрочем, я отключаю резервирование и на нём.
Отключение резервирования не требует перезагрузки, и его можно проделать на смонтированных файловых системах.
Кстати, резервирование можно отключить и при создании файловой системы:
$ sudo mkfs.ext4 -m 0 /dev/sd?#
И очевидно, что всё сказанное имеет силу только для файловых систем семейства ext2/3/4.
Отключение журналирования для ext4
Для файловой системы ext4 доступна ещё и возможность отключения журналирования, что, теоретически, способствует как быстродействию при файловых операциях, так и уменьшению износа SSD. Насколько то и другое имеет место быть на практике — вопрос спорный. Но, поскольку необходимости в журналировании в настольных условиях я не вижу (особенно при использовании бесперебойника), а процедура его отключения не сложна — почему бы и не избавиться от лишней сущности?
Отключение журнала в некоторых системах (например, в LM) можно выполнить на смонтированной файловой системе. Однако в LMDE такая попытка вызовет сообщение об ошибке. Так что проще всего проделать эту операцию в однопользовательском режиме, перейти в который можно двумя способами. Первый — при старте системы следует выбрать в меню GBUB пункт recovery mode:
А затем ввести пользовательский пароль, после чего система будет загружен административный аккаунт, символом чего будет приглашение командной строки в виде «решётки».
Второй способ — в текущем сеансе дать команду
$ sudo init 1
Она вызовет закрытие сеанса Иксов (внимание — со всеми их приложениями!) и то же самое предложение ввести пароль, что и в первом случае. Хотя в Jessie (и, соответственно, в Betsy) и используется Systemd, но команда /sbin/init
(пока?) работает.
Теперь остаётся только размонтировать файловые системы, для которых будет отключаться журналирование:
# umount /dev/sda2 # umount /dev/sda3
И прибегнуть к той же команде tune2fs в следующей форме:
# tune2fs -O ^has_journal /dev/sda2 # tune2fs -O ^has_journal /dev/sda3
Чтобы убедиться в успехе операции, можно выполнить такую команду:
# sudo tune2fs -l /dev/sda2 | grep journal
Что должно вернуть пустую командную строку.
Запретить использование журнала можно и при создании файловой системы ext4:
$ sudo mkfs.ext4 -O ^has_journal /dev/sd?#
Теоретически ничто не препятствует отключить журнал и на корневой файловой системе. Однако я этого не делаю: хотя при использовании UPS (да и просто хорошего современного блока питания, переносящего кратковременное пропадание электричества без вреда для здоровья системы) вероятность повреждения файловой системы мала, она всё же есть. И тогда перед загрузкой системы потребуется довольно долгая и нудная процедура проверки её целостности утилитой fsck
.
Редактирование /etc/fstab
Не выходя из однопользовательского режима, можно проделать и ещё одну операцию — настроить автоматическое монтирование файловой системы в оперативной памяти, tmpfs, в точку /tmp
. Это опять может способствовать повышению быстродействия, сохранности SSD, а также гарантирует очистку указанного каталога при перезагрузке системы. И делается это так. Сначала удаляются имеющиеся временные файлы:
# rm -rf /tmp/*
Для чего, собственно, и нужен однопользовательский режим — в системе с запущенными Иксами очистить каталог /tmp
не получится.
Затем нужно с помощью привычного текстового редактора отредактировать файл /etc/fstab
, внеся в него такую строку:
tmpfs /tmp tmpfs defaults,noatime 0 0
Опцию noatime
(или, по желанию, relatime
) можно добавить и в параметры монтирования всех остальных файловых систем. А для систем, расположенных на SSD, не лишней будет и опция discard
, которая задействует для них команду TRIM.
На этом необходимость в однопользовательском режиме заканчивается — собственно, и для редактирования /etc/fstab
он нужен только на этапе включения tmpfs. Так что можно возвращаться к нормальной работе с помощью команды
$ sudo init 2
Или просто перезагрузив систему.
Заключение
В заключение ещё раз подчеркну, что всё сказанное в этих набросках, не только не обязательно — я даже не стал бы рекомендовать это. И описано здесь только для того, чтобы читатель знал, что это можно сделать. А уж делать или не делать — каждый должен решать для себя сам.
Пожалуй, в командах отключения журналирования при помощи tune2fs пропущен символ каретки перед has_journal:
# tune2fs -O ^has_journal /dev/sda2
# tune2fs -O ^has_journal /dev/sda3
Судя по ‘man tune2fs’ указание фичи (feature) с кареткой (^) очищает ее в суперблоке ФС, использование с плюсом (+) или само по себе — включает.
А ещё в этом месте потерялось форматирование как кода (возможно, вместе с символом каретки).
Да, действительно, куда-то делись и pre, и ^.
Спасибо, поправил.