March 12th, 2016

hand100

fstab в клетках и chroot nas4free

Файл fstab (сокр. от англ. file systems table) используется для настройки параметров монтирования различных блочных устройств, разделов на диске и удаленных файловых систем. Официальную русскоязывчную информацию по теме см. здесь.

Такой файл есть почти в любой *nix системе, в том числе в хосте nas4free. Но в хосте нам его редактировать смысла немного. Тем более, что fstab в embedded версии пересоздаётся при каждом ребуте. А вот при расширения функционала nas4free через chroot и jails (клетки) возможности fstab нам очень пригодятся.

Зачем? По определению и клетки и chroot не видят файлов на хост системе, они от них изолированы. Но часто такой доступ нужен. Например, ставим медиасервер - ему нужно выдать доступ к медиатеке (или её части). Причём не обязательно полный доступ - медиасерверу достаточно только на чтение - файлы целее будут. Или ставим owncloud - ему по его сути нужен доступ к файлам хоста, которые мы хотим видеть из Интернет. В *nix такая задача может решаться путём монтирования. Грубо, на пальцах - создаём пустую папку там, куда из клетки есть доступ. И указываем, что эту папку надо совместить с другой, куда доступа из клетки нет. Возможно - с различными ограничениями (напр. - только на чтение) и способами. Способов монтирования немало, но мы здесь ограничимся nullfs

Так вот fstab содержит указания что и куда при старте chroot/jail монтировать и при останове - демонтировать.

На практикеЧто значат все эти буквы?

Пусть мы настраиваем fstab для сопоставления папок с медиа на хосте и заблаговременно созданных (!) папок-пустышек в chroot (Строка в клетке будет аналогичной)
Добавляем строки в файл fstab finch (используйте свой путь к chroot вместо /mnt/Pool/Ext/Finch/ )
в файл fstab
добавляем

/mnt/Pool/Music /mnt/Pool/Ext/Finch/media_library/audio nullfs ro 0 0
/mnt/Pool/Media /mnt/Pool/Ext/Finch/media_library/video nullfs ro 0 0


Первый параметр - имя папки в NAS, в хосте. У меня в папке /mnt/Pool/Music лежит музыка
Второй - имя папки в chroot, куда первую папку отображать, причём путь с точки зрения хост системы, а не chroot
nullfs - метод монтирования
ro - только на чтение (можно rw - чтение и запись)

Смысл двух нулей в конце строки опустим для ясности. Желающие нагуглят.

Таких строчек может быть одна или 5 - зависит от ваших потребностей
Про

Редактируем fstab в chroot

Вводную информацию см fstab в клетках и chroot nas4free

Здесь - практический пример - редактируем fstab в chroot для медиасервера
Именно так было сделано при установке Plex в chroot

Если смотреть изнутри chroot, то fstab находится в /etc/fstab
Если смотреть из хост системы - то у меня в /mnt/Pool/Ext/Finch/etc/fstab (используйте свой путь к chroot вместо /mnt/Pool/Ext/Finch/ )

Соответственно сначала создаём папки-пустышки, куда будем монтировать, даём к ним полный доступ

nas4free ~/ root~$ mkdir /mnt/Pool/Ext/Finch/media_library/audio
nas4free ~/ root~$ chmod -R 777 /mnt/Pool/Ext/Finch/media_library/audio


Открываем редактором fstab
nano /mnt/Pool/Ext/Finch/etc/fstab

и добавляем в него нужные строки
/mnt/Pool/Music /mnt/Pool/Ext/Finch/media_library/audio nullfs ro 0 0
/mnt/Pool/Media /mnt/Pool/Ext/Finch/media_library/video nullfs ro 0 0

Напомним, первый параметр - имя папки в NAS, в хосте. У меня в папке /mnt/Pool/Music лежит музыка
Второй - имя папки в chroot, куда первую папку отображать, причём путь с точки зрения хост системы, а не chroot
nullfs - метод монтирования
ro - только на чтение (можно rw - чтение и запись)

Смысл двух нулей в конце строки опустим для ясности. Желающие нагуглят.

Таких строчек может быть одна или 5 - зависит от ваших потребностей
Прим. Я бы советовал для начала не на большую библиотеку натравливать, а потренироваться на кошках - положить один фильм в видео и один трек в аудио/имя исполнителя/название альбома. Позволит экономить время при настройке, пока вы разберётесь в вебгуе.