Развёртывание дерева портов на NAS4Free

Freebsd logoНе так давно появился у меня в хозяйстве замечательный прибор интеллигентной наружности — HP Microserver n54L. Который тут же был принужден к выполнению функций backup-хранилища, media-сервера и прочих подобных полезностей в рамках домашней сети.

Запустить в работу указанный выше функционал получилось без особых трудностей, поэтому мысли написать заметку о проделанной работе не возникло. Но появилась задача, которую сходу решить не получилось, что и сподвигло на написание статьи из разряда «противосклеротических воздействий на мозг» — чисто узелки для памяти, на резинке от трусов.

Синеглазый ящик от HP был оживлён с помощью операционной системы NAS4free (x64-full 9.1.0.1 — Sandstorm сборка 775), построенной на базе FreeBSD, к которой я с давних пор питаю нежные чувства и неразделённую любовь. Всё бы здорово — система работает, шуршит. Но, как известно, «покой нам только сниться» и поэтому резко возникла потребность в развёртывании дерева портов, чтоб оттуда уже понаставить тонну всяких полезностей.

Итак, поехали. Прежде всего пару слов про дисковую систему. При установке системы я разбил системный винт на несколько партишенов следующим образом:

  • рут-раздел ~ 400Мб (как того просил установщик NAS4free)
  • swap-раздел — 4000Мб (Это исходя из старой формулы ОЗУ*2)
  • data-раздел — более 200Гб это оставшееся место под файлы

Был слегка удивлён, когда в /etc/fstab обнаружил только системные разделы. Непорядок. Дерево портов надо же где-то разворачивать?

# cat /etc/fstab

# Device                    Mountpoint  FStype  Options         Dump    Pass#
/dev/ufsid/51d986c0859bdc65     /       ufs     rw              1       1
proc /proc procfs rw 0 0

Поискал на каком винчестере это всё располагается, залез в папку /dev, увидел там диск ad1 с кучей партиций. Тут же посмотрел fdisk’ом чего к чему:

# fdisk /dev/ad1

******* Working on device /dev/ad1 *******
parameters extracted from in-core disklabel are:
cylinders=484521 heads=16 sectors/track=63 (1008 blks/cyl)

Figures below won't work with BIOS for partitions not in cyl 1
parameters to be used for BIOS calculations are:
cylinders=484521 heads=16 sectors/track=63 (1008 blks/cyl)

Media sector size is 512
Warning: BIOS sector numbering starts with sector 1
Information from DOS bootblock is:
The data for partition 1 is:
sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
    start 63, size 803187 (392 Meg), flag 80 (active)
        beg: cyl 0/ head 1/ sector 1;
        end: cyl 49/ head 254/ sector 63
The data for partition 2 is:
sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
    start 803250, size 479411730 (234087 Meg), flag 0
        beg: cyl 50/ head 0/ sector 1;
        end: cyl 195/ head 254/ sector 63
The data for partition 3 is:
sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
    start 480214980, size 8177085 (3992 Meg), flag 0
        beg: cyl 196/ head 0/ sector 1;
        end: cyl 704/ head 254/ sector 63
The data for partition 4 is:
<UNUSED>

Ага, вот они и не смонтированные партции. Надо попробовать смонтировать вручную (предварительно создав директорию для монтирования):

# mkdir /mnt/data
# mount /dev/ad1s2a /mnt/data

Сообщения нет, значит команда выполнена успешно. Теперь можно посмотреть что получилось

# mount
/dev/ufsid/51d986c0859bdc65 on / (ufs, local, soft-updates)
devfs on /dev (devfs, local, multilabel)
procfs on /proc (procfs, local)
/dev/ad1s2a on /mnt/data (ufs, local, soft-updates)

Есть контакт. Теперь надо со свопом разобраться. Спросим систему про своп:

# swapinfo

Тихо, как в кустах у нудисткого пляжа. Вспоминаем, что нам говорил fdisk — третий партишен как раз под своп. Активируем и снова проверяем:

# swapon /dev/ad1s3
# swapinfo
Device          1K-blocks     Used    Avail Capacity
/dev/ada2s3       4088540        0  4088540     0%

Вот и своп активировался. Так, теперь это всё надо запихнуть в /etc/fstab, чтоб при перезагрузке NAS’а всё само «подцепилось».

# nano /etc/fstab

# Device                    Mountpoint  FStype  Options         Dump    Pass#
/dev/ufsid/51d986c0859bdc65     /       ufs     rw              1       1
proc /proc procfs rw 0 0

/dev/ad1s2a                     /mnt/data ufs   rw              2       2
/dev/ad1s3                      none    swap    sw              0       0

Добавил две последние строчки, сохранил изменённый файл. Всё, теперь можно не боятся, что этих разделов не будет в системе.

Теперь собственно дерево портов. Тут интересный момент. На поверку оказалось, что ни portsnap, ни csup, ни cvsup в системе не присутствуют. Грустно, но не страшно, для начала пробуем вот так:

# pkg_add -r portsnap

Ругается, говорит что файл не доступен. Хм. Заходим с другой стороны

# pkg_add -r cvsup-without-gui

А вот этот пакет поставился. Уже легче. Дальше создаём директорию под порты и хранилище для дерева портов, на вновь смонтированном разделе, чтоб не упереться в 400Мб системного раздела. И быстренько накидываем конфиг:

# mkdir /mnt/data/ports
# ln -s /mnt/data/ports /usr/ports
# mkdir /mnt/data/var
# mkdir /mnt/data/var/db

# nano /mnt/data/ports-supfile
*default host=cvsup5.ru.freebsd.org
*default base=/mnt/data/var/db
*default prefix=/usr
*default release=cvs tag=.
*default delete use-rel-suffix

*default compress

ports-all

К доменам cvsup1.ru.freebsd.org и cvsup2.ru.freebsd.org у меня почему-то коннекта не было, поэтому я указал пятый, к которому коннект есть.
Ну а дальше загружаем дерево портов

# csup -L 2 -g /mnt/data/ports-supfile

И весело наблюдаем за бегущими строчками разворачивающегося на локальной машине дерева — цель достигнута.

UPD: оказалось, что в NAS4free нет gcc и система не знает как делать make, поэтому установка портов — операция бессмысленная. У меня в этом разделе всего 400Мб места, из которых осталось свободными всего 5,6Мб. Поэтому я отказался от работы с портами, буду ставить через пакеты.

Развёртывание дерева портов на NAS4Free
Оцените этот документ

Share on VKShare on Facebook0Share on Google+0Tweet about this on TwitterPin on Pinterest0

Читайте также:

Добавить комментарий