Новости
Руководства и FAQ
База знаний
Ссылки
Как здесь писать
[HowTo] Установка дополнительных программных пакетов на embedded FreeNAS с использованием метода Unionfs
Перевод с английского. Источник © FreeNAS Documentation and Support Team written by Christian Degen bubulein@freenas.org
Настоящий документ описывает простой путь установки дополнительный программных пакетов (приложений) на ваш embedded FreeNAS. В качестве примера, я буду использовать «Midnight Commander Light» (MC) клон известного файлового менеджера «Norton Commander».
Источник: Wikipedia.org http://ru.wikipedia.org/wiki/UnionFS
«UnionFS — вспомогательная файловая система для Linux и FreeBSD, производящая каскадно-объединённое монтирование других файловых систем. Это позволяет файлам и каталогам изолированных файловых систем, известных как ветви, прозрачно перекрываться, формируя единую связанную файловую систему. Каталоги, которые имеют тот же путь в объединённых ветвях, будет совместно отображать содержимое в объединённом каталоге новой виртуальной файловой системы.»
У вас должен быть доступ к FreeNAS по SSH, а также привилегии суперпользователя (root) для совершения этих действий.
Прежде всего нам потребуется создать три каталога в которых будут хранится устанавливаемые файлы. В этом примере я буду использовать
/mnt/data/opt /mnt/data/opt/usr_local /mnt/data/opt/var
Где /mnt/data мое устройство хранения данных.
# mkdir -p /mnt/data/opt/usr_local # mkdir -p /mnt/data/opt/var
Теперь смонтируем вновь созданные каталоги с помощью unionfs в /var и /usr/local
# mount_unionfs /mnt/data/opt/usr_local /usr/local # mount_unionfs /mnt/data/opt/var /var
Чтобы проверить все ли работает как надо, выполните
# mount -t unionfs <above>:/mnt/data/opt/usr_local on /usr/local (unionfs, local) <above>:/mnt/data/opt/var on /var (unionfs, local)
Теперь ваша система готова к установке MC. Тоже можно сказать и про любые другие пакеты. Некоторые ограничения описаны ниже.
# pkg_add -r mc-light
В случае возникновения ошибок используйте команду pkg_add -rv mc-light для подробного вывода сообщений.
После установки MC вам нужно выполнить
# rehash
чтобы опубликовать только что установленные файлы. Это команда может отличатся в разных командных оболочках.
Если вы перезапустите FreeNAS, то unionfs размонтируется и не смонтируется автоматически после перезагрузки. Во избежание этого, нам потребуется добавить команду «mount_unionfs» через web-интерфейс.
Перейдите на страницу Система|Дополнительно|Командные скрипты и создайте два скрипта:
| 1 | Команда: mount_unionfs /mnt/data/opt/usr_local /usr/local |
| Тип: PostInit | |
| 2 | Команда: mount_unionfs /mnt/data/opt/var /var |
| Тип: PostInit |
Теперь unionfs будет монтироваться после перезагрузки автоматически.
1. Если к вашему серверу FreeNAS подключен монитор и клавиатура, то войдите в shell нажав клавишу 6 в консольном меню и переименуйте /mnt/data/opt например в /mnt/data/opt_ что отключит монтирование unionfs
# mv /mnt/data/opt /mnt/data/opt_
Эффект от этого переименования наступит после перезагрузки FreeNAS.
2. Как запасной вариант, на случай если монитор к вашему серверу не подключен, можно изменить скрипт выполняемый при загрузке. Измените в Система|Дополнительно|Командные скрипты команду
mount_unionfs /mnt/data/opt/var /var
на команду
sleep 180 ; mount_unionfs /mnt/data/opt/var /var
И тоже самое для usr_local. Это даст вам 180 секунд на внесение изменений после перезапуска.
Теперь MC или другое установленное приложение готово к использованию.
Для «визуальных людей» имеется краткий скринкаст: Screencast - [HowTo] Install Additional Packages On FreeNAS Embedded Using The Unionfs-Method
Обсуждение
Для FreeNAS 8.0 release нужно смонтировать через unionfs еще и /root, иначе mc падает с segmentation fault
Каким образом можно монтировать каталоги автоматом после перезагрузки во FreeNAS 8.0? Аналога «Командные скрипты» в вебморде найти не смог (
Посмотри тут http://forums.freenas.org/archive/index.php/t-1064.html
Полезная инструкция, спасибо!
Есть один непонятный глюк: после монтирования /usr/local и /var в system log перестали фиксироваться события. Т.е. при запуске системы логирование происходит, после монтирования - прекращается. Кто-нибудь знает как лечится?
0.7.2 Sabanda (6694), i386-embedded
Разобрался, решается перезапуском syslogd.
в (6694), 64-embedded, не получается :(
test:/mnt/mega# mkdir -p /mnt/mega/opt/usr_local test:/mnt/mega# mkdir -p /mnt/mega/opt/var test:/mnt/mega# mount_unionfs /mnt/mega/opt/usr_local /usr/local mount_unionfs: /usr/local: : Operation not supported test:/mnt/mega# mount_unionfs /mnt/mega/opt/var /var mount_unionfs: /var: : Operation not supported
разобрался, всё дело в ZFS…
и как это победили? или отказались от ZFS
Тут должен быть ответ http://sourceforge.net/apps/phpbb/freenas/viewtopic.php?f=15&t=9008&sid=fec255f0b99a4648d8b7d4d130687c26#p44152
на freenas 7.5.- надо тоже монтировать /root иначе вылетает ошибка и зависает сервак полностью
Подскажите пожалуйста, такая проблема, поставил mc он работает, запускается, но когда начинаю в нем копировать файлы объемом больше 200 метров он виснит и при этом зависает вся система, приходится перезагружать ручками системник. При копировании файлов малого объема, до 200 метров проблемы такой нет. Установлена Freenas 0.7.5.9898
Такая же ситуация, после использования unionfs, перестали фиксироваться события, перезапуск syslogd не помогает. Последняя запись в логах после перезагрузки: «syslogd: exiting on signal 15». Есть ли решения? (0.7.5 revision 9496).