Книга: Погружение в Salix

Поддержка f2fs и nilfs2

Поддержка f2fs и nilfs2

На этой странице речь пойдёт о поддержке в Salix'е двух файловых систем, специально предназначенных для твердотельных накопителей – nilfs2 и f2fs. Хотя обе они официально включены в ядро Linux достаточно давно (первая – с 2009 года, вторая – с 2012), ни та, ни другая пока не получили широкого распространения. И, насколько мне известно, штатно не поддерживаются инсталлятором ни одного из современных дистрибутивов, в том числе и инсталлятором Salix. И скоро станет понятно, почему. Однако, как будет видно из дальнейшего, включить их поддержку в нём можно.

Для начала легко убедиться в том, что ядро текущей версии Salix'а собрано с модульной поддержкой обеих интересующих нас файловых систем:

$ ls /lib/modules/3.10.17/kernel/fs/{nilfs2,f2fs} /lib/modules/3.10.17/kernel/fs/f2fs: f2fs.ko

/lib/modules/3.10.17/kernel/fs/nilfs2: nilfs2.ko

После этого соответствующие модули следует загрузить:

$ sudo modprobe nilfs2 $ sudo modprobe f2fs

И удостовериться в успехе этой операции:

$ lsmod | grep nilfs2 nilfs2 147232 0 $ lsmod | grep f2fs f2fs 141479 0

Для работы с любой файловой системой (создания, монтирования etc.) необходим соответствующий инструментарий, и героини моего сегодняшнего рассказа – не исключение. Для f2fs он в виде пакета легко находится в штатном репозитории:

$ slapt-get --search f2fs f2fs_tools-1.2.0-x86_64-1_SBo [inst=нет]: f2fs_tools (Userland tools for the f2fs filesystem)

И столь же непринуждённо устанавливается:

$ slapt-get --install f2fs_tools

А вот за инструментами для nilfs2 придётся лезть в слакбилды:

$ slapt-src --search nilfs nilfs-utils:2.1.5 - nilfs-utils (Utilities for NILFS)

Впрочем, и этот пакет собирается без всяких проблем:

$ sudo slapt-src -i nilfs-utils

Теперь с обеими файловыми системами можно работать – например, я отвёл под каждую из них по флешке объёмом 4 ГБ (больше свободных не было) на предмет последующего сравнения их быстродействия:

$ sudo /mkfs.nilfs2 -f -K /dev/sdf1 $ sudo /mkfs.f2fs -t 0 /dev/sdg1

В первой команде опция -f означает принудительное форматирование – иначе на флешке с существующей файловой системой оно не пойдёт. А опция -K отключает поддержку TRIM, каковая на флешках бесполезна. Аналогичный смысл опции -t 0 во второй команде. У обоих команд есть ещё несколько опций, с которыми можно ознакомиться на соответствующих man-страницах, но мне они показались (пока) не актуальными.

К слову – после включения поддержки наших героинь и установки надлежащего инструментария они появляются и в списке доступных для создания через Gparted:


Рисунок 12-28.Файловые системы f2fs и nilfs2 в меню GParted

Всё это прекрасно, но работает до первой перезагрузки – при старте машины модули поддержки обеих файловых систем сами собой не подгружаются. И обычно практиковавшийся мной в таком случае метод – создание в каталоге /etc/modprobe.d/ соответствующих конфигов, nilfs2.conf и f2fs.conf – не прокатил.

Однако задача, тем не менее, решилась. Ибо в Slackwate для обеспечения загрузки модулей существует специальный файл, /etc/rc.d/rc.modules – симлинк на соответствующий конфиг для текущей версии ядра, в данном случае – /etc/rc.d/rc.modules-3.10.17. В его секцию

### Filesystem support ###

достаточно вписать такие строки:

/sbin/modprobe f2fs /sbin/modprobe nilfs2

чтобы всё стало замечательно.

Теперь, после рестарта машины, при подключении флешки с nilfs2 соответствующее ей устройство появляется в списке устройств файлового менеджера Thunar. То есть, казалось бы, может быть смонтировано обычным пользователем, верно?

А не тут-то было. При выборе из контекстного меню пункта Подключить том устройство действительно делает вид, что подключается. Но для записи обычным пользователем оно недоступно, пока не переопределишь (от root'а) атрибуты принадлежности и доступа к точке монтирования.

Впрочем, такое поведение nilfs2 можно считать прогрессом. Когда я с этой файловой системой, она вообще не поддерживала монтирование обычным пользователем.

А с f2fs получается другая история: она вообще не желает монтироваться от лица обычного пользователя, если не вписать в файл /etc/fstab строку воде такой:

/dev/sdf1 /mount_point f2fs noauto,users,rw 0 0

Где /dev/sdf1 – первое устройство после подключённых постоянно. А точке монтирования нужно задать атрибуты принадлежности нужного пользователя. Причём сделать это обязательно после первого подключения устройства – в этот момент оно самопроизвольно становится принадлежащим root'у. Хотя установленная потом принадлежность пользователю в дальнейшем сохраняется. Об этом глюке я некогда писал. Судя по тому, что с тех пор прошёл год, бага приобрела статус фичи.

Тем не менее, после всего проделанного с устройством, несущим f2fs, можно работать почти нормально. Почти – потому что нет никакой гарантии, что оно будет найдено системой после отключения и повторного включения в том же сеансе. Это относится, кстати, и к nilfs2.

И ещё: при совместном использовании устройств с f2fs и nilfs нужно следить, чтобы первое было включено раньше второго, иначе, ясное дело, «буковки» не совпадут.

Резюмирую базар: в настоящее время и nilfs2, и f2fs представляют чисто академический интерес. Использование каждой из них по отдельности достаточно неудобно, а обе-две вместе вообще уживаются с напрягом. В чём, надо полагать, и заключается причина слабой, мягко говоря, их распространённости.

Поэтому всё сказанное выше – ни в малейшей степени не руководство к действию, а просто узелок на память: кто знает, может, триумфальное шествие SSD-накопителей по пользовательским десктопам побудит довести до ума не одну, так другую. И они будут поддерживаться дистрибутивами уже не для «галочки», а для реальной работы.

Оглавление книги


Генерация: 1.330. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз