С чего вдруг? Давно в душе тлело подозрение, что для дома проще  собрать NAS на бубунте, а по надежности и производительности будет не хуже, чем на FreeBSD. Дождался, в журнале BSD эту догадку высказал товарисч Билл Харрис. Статью я специально притырил на сайте, можете ознакомиться. Слово сказано, осталось лишь проверить на деле.

Установка сервера.

Установка немного отличается от процесса на FreBSD, в целом установка сервера Ubuntu проще, но судите сами. Качаем дистрибутив, и начинаем установку.

pic01 

Язык я выбрал русский, далее, установка сервера.

pic03 

Далее по порядку отвечаем на несколько вопросов установщика: регион,

pic03 

раскладку лучше не определять,

pic04 

а выбрать из списка,

pic05 

 pic06

 pic07

настройка часового пояса

pic08 

Разметку диска выполним вручную

pic09 

Выбираем свободный раздел,

pic10 

если такого нет, сначала удаляем все имеющиеся, затем создаем новые разделы,

pic11 

указываем размер,

pic12 

тип,

pic13 

местоположение,

pic14 

метка.

pic15 

Можно указать все необходимые разделы, причем на Ubuntuв отличие от FreeBSD Вас будут сопровождать подсказки в процессе разметки диска. Я выбрал один раздел по систему в 10 Гб,

pic16 

один раздел подкачки в 1 Гб,

pic17 

и два раздела под данные с точкой монитрования /sharedata

pic18 

и /privatedata.

pic19 

Сверьте с итоговой таблицей

pic20 

и поехали далее. Руту по умолчанию вход в систему воспрещен, поэтому требуется создать пользователя – судоера, который сможет использовать административные привилегии с помощью команды sudo.

pic21 

pic22

От шифрования домашнего каталога откажемся.

pic23 

Обновления безопасности будем устанавливать автоматически.

pic24 

Так как эта система единственная, ставим её загрузкчик в MBR.

pic25 

Во время установки мы можем выбрать дополнительные пакеты – очень удобная штука.

pic00 

Мы выбираем OpenSSHLAMP (Linux-Apache-Mysql-Php), Samba, во время установки не забываем указать администраторский пароль для MySQL. После установки перезагружаемся

pic26 

и входим в систему с указанием имени и пароля того пользователя, которого мы придумали во время установки.

После установки.

Парадокс в том, что несмотря на UTF-8 кодировку системы по умолчанию русские шрифты в консоли не работают, вместо букв – квадратики. Правда, в репозитории Ubuntuимеется средство для решения этой проблемы. Набираем в командной строке:

$sudoapt-getinstallconsole-cyrillic

После установки можно попробовать инициализировать эти шрифты командой

$setupcon

Но для корректной работы дополнения необходимо его сконфигурировать

$sudodpkg-reconfigureconsole-cyrillic

Проблема в том, что конфигуратор разговаривает по-русски, а русского языка в консоли еще правильного нет. Так или иначе, выбираем Unicode везде, чтоб «быть на переднем крае интернета». После перезагрузки и запуска команды

$setupcon

мы теперь имеем красивый Unicode в консоли. Установим mc

$sudo apt-get install mc

Теперь мы можем использовать удобный файловый менеджер для дальнейшей настройки. Сначала установим включение кириллицы при загрузке. Для этого в файл /etc/rc.localДО строки exit 0 добавим строку setupcon.

После перезагрузки кириллица будет включаться автоматически.

Настроим сеть. В файле /etc/network/interfacesукажем статические адреса для сетевого интерфейса (Вы, конечно, укажете свои):

auto eth0

iface eth0 inet static

address 10.0.0.100

netmask 255.255.255.0

gateway 10.0.0.1

Установка phpmyadmin

$sudoapt-getinstallphpmyadmin

Настраиваем для использования апача.

 pic30 

Настраиваем подключение к базе данных.

pic31 

Далее от Вас потребуется только правильно ввести пароль для подключения к MySQL.

По адресу http://<<span< a=""> style="font-size:12.0024px">ip-адрес>/phpmyadmin должна открыться админка, вводим имя пользователя root и пароль, который мы придумали.

pic32 

Настройка Samba.

Файл /etc/smb.conf:

#======================= Global Settings =====================================

[global]

   workgroup = WORKGROUP

public=YES

guest ok=YES

null passwords=YES

map to guest = Bad User

#   security = user

  hosts allow = 192.168.1.

#   load printers = yes

guest account = nobody

   log file = /var/log/samba/log.%m

   max log size = 50

# Charset settings

   display charset = utf-8

   unix charset = utf-8

   dos charset = cp866

#============================ Share Definitions ==============================

[printers]

   comment = All Printers

   path = /var/spool/samba

   browseable = no

   public = yes

   guest ok = yes

   writable = no

   printable = yes

[public]

   path = /sharedata

   guest ok = yes

   browsable = yes

   public = yes

   only guest = yes

   writable = yes

   create mask = 0777

   force create mode = 0777

   printable = no

[private]

   path = /privatedata

   guest ok = no

   browsable = yes

   public = yes

   validuser = ggg

   writable = yes

   create mask = 0777

   force create mode = 0777

   printable = no

И всего делов.

Установка mediatomb.

$sudo apt-get install mediatomb

После установки создаем базу

pic33 

Создаем пользователя

pic34 

Редактируем файл /etc/config.xml:

<?xml version="1.0" encoding="UTF-8"?>

<config version="2" xmlns="http://mediatomb.cc/config/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://mediatomb.cc/config/2 http://mediatomb.cc/config/2.xsd">

  <server>

    <ui enabled="yes" show-tooltips="yes">

      <accounts enabled="no" session-timeout="30">

        <account user="mediatomb" password="mediatomb"/>

      </accounts>

    </ui>

    <name>UbuMedia</name>

    <udn>uuid:3536604f-8189-49a7-b3ad-9c6d091bc5dc</udn>

    <home>/var/mediatomb</home>

    <webroot>/usr/local/share/mediatomb/web</webroot>

    <storage caching="yes">

      <sqlite3 enabled="no">

        <database-file>mediatomb.db</database-file>

      </sqlite3>

      <mysql enabled="yes">

        <host>localhost</host>

        <username>mediatomb</username>

        <database>meto</database>

      </mysql>

    </storage>

    <protocolInfo extend="yes"/>

    <!-- For PS3 support change to "yes" -->

    <!--

       Uncomment the lines below to get rid of jerky avi playback on the

       DSM320 or to enable subtitles support on the DSM units

    -->

   

       <custom-http-headers>

              <add header="transferMode.dlna.org: Streaming"/>

       <add header="contentFeatures.dlna.org: DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=0170000000000000000" />

</custom-http-headers>

    <manufacturerURL>redsonic.com</manufacturerURL>

    <modelNumber>105</modelNumber>

    <!-- Uncomment the line below if you have a Telegent TG100 -->

    <!--

       <upnp-string-limit>101</upnp-string-limit>

    -->

    <extended-runtime-options>

      <ffmpegthumbnailer enabled="yes">

        <thumbnail-size>128</thumbnail-size>

        <seek-percentage>5</seek-percentage>

        <filmstrip-overlay>yes</filmstrip-overlay>

        <workaround-bugs>no</workaround-bugs>

      </ffmpegthumbnailer>

      <mark-played-items enabled="no" suppress-cds-updates="yes">

        <string mode="prepend">*</string>

      </mark-played-items>

    </extended-runtime-options>

  </server>

  <import hidden-files="no">

    <filesystem-charset>UTF-8</filesystem-charset>

    <metadata-charset>UTF-8</metadata-charset>

    <scripting script-charset="UTF-8">

      <common-script>/usr/local/share/mediatomb/js/common.js</common-script>

      <playlist-script>/usr/local/share/mediatomb/js/playlists.js</playlist-script>

      <virtual-layout type="builtin">

        <import-script>/usr/local/share/mediatomb/js/import.js</import-script>

      </virtual-layout>

    </scripting>

    <mappings>

           <extension-mimetype ignore-unknown="no">

      <map from="mp3" to="audio/mpeg"/>

      <map from="ogg" to="application/ogg"/>

      <map from="asf" to="video/x-ms-asf"/>

      <map from="asx" to="video/x-ms-asf"/>  

      <map from="wma" to="audio/x-ms-wma"/>  

      <map from="wax" to="audio/x-ms-wax"/>

      <map from="wmv" to="video/x-ms-wmv"/>

      <map from="wvx" to="video/x-ms-wvx"/>

      <map from="wm" to="video/x-ms-wm"/>

      <map from="wmx" to="video/x-ms-wmx"/>

      <map from="m3u" to="audio/x-mpegurl"/>

      <map from="pls" to="audio/x-scpls"/>

      <map from="flv" to="video/x-flv"/>

<!--      <map from="vob" to="video/x-vob"/> -->

      <map from="mkv" to="video/x-mkv"/>

        <!-- Uncomment the line below for PS3 divx support -->

        <map from="avi" to="video/divx"/>

        <!-- Uncomment the line below for D-Link DSM / ZyXEL DMA-1000 -->

        <map from="avi" to="video/avi"/>

       <map from="avi" to="video/mpeg"/>

<!-- Uncomment the line below for PS3 divx support -->

<map from="mpg" to="video/mpeg"/>

<map from="vob" to="video/mpeg"/>

<map from="mp4" to="video/avc"/>

<!-- ORIGINAL <map from="mp4" to="video/mp4"/> -->

<map from="m4v" to="video/mp4"/>

<map from="m4a" to="audio/mp4"/>

      </extension-mimetype>

      <mimetype-upnpclass>

        <map from="audio/*" to="object.item.audioItem.musicTrack"/>

        <map from="video/*" to="object.item.videoItem"/>

        <map from="image/*" to="object.item.imageItem"/>

      </mimetype-upnpclass>

      <mimetype-contenttype>

        <treat mimetype="audio/mpeg" as="mp3"/>

       <treat mimetype="video/mpeg" as="avi" />

        <treat mimetype="video/x-divx" as="avi"/>

        <treat mimetype="application/ogg" as="ogg"/>

        <treat mimetype="audio/x-flac" as="flac"/>

        <treat mimetype="image/jpeg" as="jpg"/>

        <treat mimetype="audio/x-mpegurl" as="playlist"/>

        <treat mimetype="audio/x-scpls" as="playlist"/>

        <treat mimetype="audio/x-wav" as="pcm"/>

        <treat mimetype="audio/L16" as="pcm"/>

        <treat mimetype="video/x-msvideo" as="avi"/>

       <treat mimetype="video/mp4" as="mp4"/>

        <treat mimetype="audio/mp4" as="mp4"/>

<!--        <treat mimetype="application/x-iso9660" as="dvd"/>

        <treat mimetype="application/x-iso9660-image" as="dvd"/>-->

      </mimetype-contenttype>

    </mappings>

    <online-content>

      <!-- Make sure to setup a transcoding profile for flv -->

      <YouTube enabled="no" refresh="28800" update-at-start="no" purge-after="604800" racy-content="exclude" format="flv" hd="no">

        <favorites user="mediatomb"/>

        <standardfeed feed="most_viewed" time-range="today"/>

        <playlists user="mediatomb"/>

        <uploads user="mediatomb"/>

        <standardfeed feed="recently_featured" time-range="today"/>

      </YouTube>

      <Weborama enabled="no" refresh="28800" update-at-start="no">

        <playlist name="Active" type="playlist" mood="active"/>

        <playlist name="Metal" type="playlist">

          <filter>

            <genres>metal</genres>

          </filter>

        </playlist>

      </Weborama>

      <AppleTrailers enabled="no" refresh="43200" update-at-start="no" resolution="640"/>

    </online-content>

  </import>

  <transcoding enabled="no">

    <mimetype-profile-mappings>

      <transcode mimetype="video/x-flv" using="vlcmpeg"/>

      <transcode mimetype="application/ogg" using="vlcmpeg"/>

      <transcode mimetype="application/ogg" using="oggflac2raw"/>

      <transcode mimetype="audio/x-flac" using="oggflac2raw"/>

    </mimetype-profile-mappings>

    <profiles>

      <profile name="oggflac2raw" enabled="no" type="external">

        <mimetype>audio/L16</mimetype>

        <accept-url>no</accept-url>

        <first-resource>yes</first-resource>

        <accept-ogg-theora>no</accept-ogg-theora>

        <agent command="ogg123" arguments="-d raw -o byteorder:big -f %out %in"/>

        <buffer size="1048576" chunk-size="131072" fill-size="262144"/>

      </profile>

      <profile name="vlcmpeg" enabled="no" type="external">

        <mimetype>video/mpeg</mimetype>

        <accept-url>yes</accept-url>

        <first-resource>yes</first-resource>

        <accept-ogg-theora>yes</accept-ogg-theora>

        <agent command="vlc" arguments="-I dummy %in --sout #transcode{venc=ffmpeg,vcodec=mp1v,vb=4096,fps=25,aenc=ffmpeg,acodec=mpga,ab=192,samplerate=44100,channels=2}:standard{access=file,mux=ps,dst=%out} vlc:quit"/>

        <!-- ORIGINAL <buffer size="14400000" chunk-size="512000" fill-size="120000"/> -->

        <buffer size="2978728105" chunk-size="512000" fill-size="120000"/>

      </profile>

    </profiles>

  </transcoding>

</config>

Создание таблиц в базе:

$mysql --user=root --password=<вашпароль> mediatomb < /usr/local/share/mediatomb/mysql.sql.

Примечание: неожиданно наступил на грабли с порядком запуска сервисов. Mediatomb стартует раньше, чем mysqld. И падает. Во избежание такой коллизии редактируем файл /etc/init/mediatomb.conf. В строке starton (…) в скобочках первым условием добавим так:

start on (started mysql and …)

Перезапуск ($sudoreboot) и можем заходить через веб-интерфейс на порт 49152.

pic35 

Установка transmission.

$sudo apt-get install transmission-daemon

После установки сервис сразу запускается. Остановим

$sudo service transmission-daemon stop.

Файл /etc/transmission-daemon/settings.json приводим к надлежащему виду:

 {

    "alt-speed-down": 50, 

    "alt-speed-enabled": false, 

    "alt-speed-time-begin": 540, 

    "alt-speed-time-day": 127, 

    "alt-speed-time-enabled": false, 

    "alt-speed-time-end": 1020, 

    "alt-speed-up": 50, 

    "bind-address-ipv4": "0.0.0.0", 

    "bind-address-ipv6": "::", 

    "blocklist-enabled": false, 

    "blocklist-url": "http://www.example.com/blocklist", 

    "cache-size-mb": 2, 

    "dht-enabled": true, 

    "download-dir": "/datapoint/downloads", 

    "encryption": 1, 

    "idle-seeding-limit": 30, 

    "idle-seeding-limit-enabled": false, 

    "incomplete-dir": "//Downloads", 

    "incomplete-dir-enabled": false, 

    "lazy-bitfield-enabled": true, 

    "lpd-enabled": false, 

    "message-level": 2, 

    "open-file-limit": 32, 

    "peer-limit-global": 240, 

    "peer-limit-per-torrent": 60, 

    "peer-port": 51413, 

    "peer-port-random-high": 65535, 

    "peer-port-random-low": 49152, 

    "peer-port-random-on-start": false, 

    "peer-socket-tos": 0, 

    "pex-enabled": true, 

    "port-forwarding-enabled": true, 

    "preallocation": 1, 

    "ratio-limit": 2, 

    "ratio-limit-enabled": false, 

    "rename-partial-files": true, 

    "rpc-authentication-required": false, 

    "rpc-bind-address": "0.0.0.0", 

    "rpc-enabled": true, 

    "rpc-password": "{f68a77e053fea43ec04d233424524b941ff67d8eyOz0gZyV", 

    "rpc-port": 9091, 

    "rpc-username": "", 

    "rpc-whitelist": "192.168.1.0", 

    "rpc-whitelist-enabled": false, 

    "script-torrent-done-enabled": false, 

    "script-torrent-done-filename": "", 

    "speed-limit-down": 50, 

    "speed-limit-down-enabled": false, 

    "speed-limit-up": 40, 

    "speed-limit-up-enabled": true, 

    "start-added-torrents": true, 

    "trash-original-torrent-files": false, 

    "umask": 18, 

    "upload-slots-per-torrent": 14, 

    "watch-dir": "/datapoint/torrents", 

    "watch-dir-enabled": true

}

Запускаем сервис.

$sudo service transmission-daemon start.

Вот и всё!!! Как мы видим, все гораздо проще, чем на FreeBSD. Здесь мы использовали не компиляцию из исходников, а установку пакетов, это еще сэкономило нам порядочно времени. На FreeBSD тоже можно было использовать пакеты, но тут дело в философии. FreeBSD – компиляция из исходников, Ubuntu – установка пакетов из репозитория. FreeBSD – «серьезная система для красноглазых админов», Ubuntu– дружественный интерфейс для чайников. Я немного преувеличиваю для наглядности. На наших двух примерах ясно видно, какая из систем более дружественная. А какая более надежная? А какая быстрее загружается? На последние два вопроса однозначного ответа нет. Так что при выборе системы именно для домашнего использования и именно для не очень опытного админа (а очень опытному наши рекомендации не очень-то и нужны) однозначно выбираем ubuntu.

You have no rights to post comments