воскресенье, 12 октября 2014 г.

OpenWrt + внешний HDD + Samba = NAS Server (часть четвертая)

Устанавливаем DLNA Server

И так, прежде чем начать процедуру установки DLNA сервера, хочу сказать, что ресурсы tp-link 3040 не безграничны. И могут быть некоторые не приятные моменты с уходом на ребут или зависанием рутера. Но работать будет. Что бы это избежать есть два варианта. Первый, это не устанавливать DLNA сервер на рутр 3040, второй это постоянно какой то из серверов отключать для разгрузки процессора.
Лично мое мнение, это если у вас нет дома яблочных устройств, то DLNA сервер вам не нужен, т.к. все это с tp-link 3040 задумывалось как переносной мультимедийный центр...для поездок скажем. Плеер на андройд (MXPlayer) вполне хорошо будет работать и с SAMBA сервером.
Для тех кто же все таки решился, милости просим.

И так привычным нам уже putti, подключаемся к нашему рутеру и в водим следующее:

  • opkg update
  • opkg install minidlna
  • reboot
Далее открываем WINSCP и идем по адресу /etc/config/minidlna

Видим это:

config minidlna config
        option 'enabled' '1'
        option port '8200' 
        #Порт оставляем без изменений
        option interface 'br-lan'
        option friendly_name 'miniDLNA' #тут имя сервера
        option db_dir '/mnt/nas/minidlna/db' #Путь к базе данных
        option log_dir '/mnt/nas/minidlna/log'   #Путь к лог файлу
        option inotify '1'
        option enable_tivo '0'
        option strict_dlna '0'
        option presentation_url 'http://192.168.1.100:8200/' #IP адрес рутера указываем
        option notify_interval '900'
        option serial '12345678'
        option model_number '1'
        option root_container '.'
        list media_dir 'V,/mnt/nas/share/Cinema' 
        #Это пути к папкам на основном диске с вашими файлами. Вам нужно изменить только сами пути. Т.е. только то что после запятой. 
Пример: list media_dir 'V,/xxx/xxx/xxxx/Кино'
Где V это видел файлы, А - аудио файлы, Р - пикчерс, т.е. картинки
        list media_dir 'V,/mnt/nas/share/YouTube'
        list media_dir 'V,/mnt/nas/share/Doc Cinema'
        list media_dir 'A,/mnt/nas/share/Music'
        list media_dir 'V,/mnt/nas/share/Music'
        list media_dir 'V,/mnt/nas/share/TvShows'
        list media_dir 'P,/mnt/nas/share/Photo'
        option album_art_names 'Cover.jpg/cover.jpg/AlbumArtSmall.jpg/albumartsmall.jpg/AlbumArt.jpg/albumart.jpg/Album.jpg/album.jpg/Foder.jpg/folder.jpg/Thumb.jpg/thumb.jpg'

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

Конфиг без комментариев:

config minidlna config
        option 'enabled' '1'
        option port '8200'
        option interface 'br-lan'
        option friendly_name 'miniDLNA'
        option db_dir '/mnt/nas/minidlna/db'
        option log_dir '/mnt/nas/minidlna/log'
        option inotify '1'
        option enable_tivo '0'
        option strict_dlna '0'
        option presentation_url 'http://192.168.1.xxx:8200/'
        option notify_interval '900'
        option serial '12345678'
        option model_number '1'
        option root_container '.'
        list media_dir 'V,/mnt/nas/share/Cinema'
        list media_dir 'V,/mnt/nas/share/YouTube'
        list media_dir 'V,/mnt/nas/share/Doc Cinema'
        list media_dir 'A,/mnt/nas/share/Music'
        list media_dir 'V,/mnt/nas/share/Music'
        list media_dir 'V,/mnt/nas/share/TvShows'
        list media_dir 'P,/mnt/nas/share/Photo'
        option album_art_names 'Cover.jpg/cover.jpg/AlbumArtSmall.jpg/albumartsmall.jpg/AlbumArt.jpg/albumart.jpg/Album.jpg/album.jpg/Foder.jpg/folder.jpg/Thumb.jpg/thumb.jpg'

Вот и все! дальше перезагружаемся. Даем рутеру время на создании базы данных. И пользуемся.



OpenWrt + внешний HDD + Samba = NAS Server (часть третья)

Устанавливаем SAMBA Server

     Ну что ж... Осталось только установить и настроить Самба сервер, что бы был удаленный доступ к вашим файлам. 

Приступим, подключаемся к рутеру с помощью putty, вводим следущее:

  • opkg update
  • opkg install samba36-server
  • #если нужно ставим web интерфейс самба
  • opkg install luci-app-samba
  • reboot
Заходим в веб интерфейс роутра, System-Network Shares и заполняем.
Монтируем ваши разделы.

Вкладка General Settings:


Hostname: Openwrt (тут можно писать все что угодно)

Description: Openwrt (тут можно писать все что угодно)
Workgroup: WORKGROUP (Укажите вашу рабочую группу)
Share home-directories: 0

Shared Directories

Нажимаем add
Name - Любое
Path - /mnt/share, где /mnt - точка монтирования, /share - папка на диске (это пример)
Allow guests - ставим галочку
Create mask - 0777
Directory mask - 0777

Открывем вкладку Edit template редактируем конфиг так:


[global]

netbios name = |NAME| 
display charset = |CHARSET|
interfaces = |INTERFACES|
server string = |DESCRIPTION|
unix charset = |CHARSET|
workgroup = |WORKGROUP|
smb passwd file = /etc/samba/smbpasswd
max protocol = SMB2
unix charset = UTF-8
dos charset = cp866
display charset = UTF-8
security = SHARE
guest account = root
log file = /mnt/share/.samba/samba_log.%m
max log size = 50
log level = 0
load printers = No
preferred master = Yes
domain master = Yes
remote announce = 192.168.1.255
hosts allow = 192.168.1.0/24
passdb backend = smbpasswd
deadtime = 30
browseable = yes


[share]
path = /mnt/share
force user = root
read only = No
guest ok = Yes
hide dot files=yes
hide files=/.*/lost+found/
create mask = 0777

directory mask = 0777


     Так же и с остальными дисками, если имеются. Все готово, все должно работать. 


     Если вы не хотите использовать web интерфейс, то тогда так:

  • opkg update
  • opkg install samba36-server
  • reboot
    Идем по адресу /etc/samba/ находим файл smb.conf.template и редактируем его:



[global]
netbios name = |NAME| 
display charset = |CHARSET|
interfaces = |INTERFACES|
server string = |DESCRIPTION|
unix charset = |CHARSET|
workgroup = |WORKGROUP|
smb passwd file = /etc/samba/smbpasswd
max protocol = SMB2
unix charset = UTF-8
dos charset = cp866
display charset = UTF-8
security = SHARE
guest account = root
log file = /mnt/share/.samba/samba_log.%m
max log size = 50
log level = 0
load printers = No
preferred master = Yes
domain master = Yes
remote announce = 192.168.1.255
hosts allow = 192.168.1.0/24
passdb backend = smbpasswd
deadtime = 30
browseable = yes
[share]
path = /mnt/share
force user = root
read only = No
guest ok = Yes
hide dot files=yes
hide files=/.*/lost+found/
create mask = 0777
directory mask = 0777




      Ну и последний конфиг который нам надо отредактировать, находится по адресу: /etc/config находим файл samba и редактируем приблизительно так:

пример 1:


config samba

option 'name'               'Openwrt'
option 'workgroup' 'WORKGROUP'
option 'description' 'Openwrt'
  option 'charset'              'UTF-8'
option 'homes' '1'

пример 2:


config samba

option 'name'               'Ваша папка'
option 'workgroup' 'WORKGROUP'
option 'description' 'Ваше описание'
  option 'charset'              'UTF-8'
option 'homes' '1'

После того как все конфиги отредактированы. Заходим в веб интерфейс рутера. Идем во кладку System - Startup находим самба нажимаем Disable затем Start



Или же можно сделать по другому. Запускаем путти, подключаемся к рутерe и вводим следующие команды:



  • /etc/init.d/samba enable
  • /etc/init.d/samba start
  • reboot


     Ну что же вот все и закончилось! Заходим в сетевое окружение и видим свою расшаренную папку! 
     И еще. Роутр без винта загрузится тоже. но все что вы настраивали ничего не будет. Потому что он загрузится со своей flash памяти. Что бы вернуть все обратно. Нужно отключить питание роутера, подключить винт и включить обратно.
     Если у Вас при вводе команды reboot машрутизатор перезагружается, но винт не монтируется и рутр грузится со своей внутренней flash памяти. Не беда. Это лечится в два счета. Заходим в WinSCP топаем по адресу : /etc/init.d/ редактируем файл fstabВам нужно отредактировать всего лишь один параметр, находится он в самом начале конфига:

START=30

вам же нужно выставить:
START=10 (или 15 или 20)

После этого служба монтирование дисков будет запускаться быстрее.




воскресенье, 9 марта 2014 г.

OpenWrt + внешний HDD + Samba = NAS Server (часть вторая)

Настраиваем интернет на маршрутизатор и переносим систему на внешний накопитель.


     Заходим на маршрутизатор по адресу 192.168.1.1  Вводим логин пароль который установили. Открываем вкладку Network - Interfaces
Видим:
Interface Overview
LAN 
интерфейс - нажимает на копку Edit 




     Настраиваем соединение. Правим LAN порт, создаем wan порт. Останавливаться на этом не буду. Скажу что у меня LAN порт был настроен статикой. Потому что я был подключен к домашней сети. К wan порту был прикручен модем, но об этом в следующей части. Поэтому Вы настраиваете так, как вам будет нужно.

Подготовка накопителя


     Теперь нам надо подготовить usb винт. Потому что маршрутизатор имеет всего 4 метра флеша. Нам этого не хватит. В качестве внешнего накопителя можно использовать usb - флешку или внешний HDD
     Накопитель разбиваем на три раздела:

USB HDD:

1-й файл подкачки (100-200 Мбайт хватит с головой даже останется)
2-й для системных файлов т.е. /overlay (100-150 Мбайт этого тоже хватит с головой)
3-й для данных (все остальное свободное место)

USB Flash:
1-й для системных файлов т.е. /overlay (100-150 Мбайт этого тоже хватит с головой)
2-й для данных (все остальное свободное место)
3-й 
файл подкачки (100-200 Мбайт хватит с головой даже останется)

    Бытует мнение что использование файла подкачки на флешке, быстро ее портит, поэтому логично ипользовать этот раздел в конце флешки. И если что можно его просто вырезать. Если вы используете USB винт, то есть смысл использовать этот раздел в начале, т.к. общеизвестно, что скорость чтения вначале самая высокая.
     Для разбития дисков на разделы я использовать Linux программу GParted 
 И так топаем в интернет и скачиваем программку putty она нам пригодится. Так же ищем программку WinSCP

     Теперь! У нас есть прошитый рутр. Готовый винт разбитый на три раздела.


Настройка прошивки для загрузки с внешнего накопителя:

Открываем программу putti:
В host Name (or IP address) пишем -  192.168.1.1
Port - 22
     В открывшемся окне пишем логин, затем пароль. Для тех кто не знает, в Linux  пароль ни как не отображается. даже звездочками. Поэтому просто с первого раза вводите все символы правильно.

     Устанавливаем:

  • opkg update
  • opkg install kmod-usb-storage kmod-usb-ohci kmod-fs-ext4 kmod-usb2 block-mount
     USB винт уже разбит на три раздела, поэтому после всех этих манипуляций, просто вставляем usb винт в маршрутизатор. (рутр при этом не выключением и не перезагружаем)
     Что бы проверить вводим команду:


  • dmesg | grep sda

     Должно вывести примерно следующее:

  • [ 5069.890000] sd 0:0:0:0: [sda] Write Protect is off
  • [ 5069.900000] sd 0:0:0:0: [sda] Mode Sense: 43 00 00 00
  • [ 5069.900000] sd 0:0:0:0: [sda] No Caching mode page present
  • [ 5069.900000] sd 0:0:0:0: [sda] Assuming drive cache: write through
  • [ 5069.910000] sd 0:0:0:0: [sda] No Caching mode page present
  • [ 5069.920000] sd 0:0:0:0: [sda] Assuming drive cache: write through
  • [ 5069.920000]  sda: sda1 sda2 sda3
     строка sda: sda1 sda2 sda3 говорит что все наши три раздела определились системой. 
Оставляем putti как есть, не закрываем. Идем в WinSCP.

     Правим файл конфигурации fstab. Что бы в дальнейшем система загружалась с usb винта

Те кто не умеет пользоваться редактором vi пропустите, для вас описание ниже.

Вводим это:
  • vi /etc/config/fstab
Видим это:

config global automount
        option from_fstab 1
        option anon_mount 1

config global autoswap
        option from_fstab 1
        option anon_swap 0

config mount
        option target   /home
        option device   /dev/sda1
        option fstype   ext4
        option options  rw,sync
        option enabled  0
        option enabled_fsck 0

config swap
        option device   /dev/sda2
        option enabled  0


Вписываем это:



конфиг для ext4

config global 'automount'
option from_fstab '1'
option anon_mount '1'

config global 'autoswap'
option from_fstab '1'
option anon_swap '0'

config swap
option enabled '1'
option device '/dev/sda1'

config mount
option fstype 'ext4'
option enabled '1'
option device '/dev/sda2'
option target '/overlay'
option options 'rw,sync,noatime'
option enabled_fsck '0'

config mount
option enabled '1'
option device '/dev/sda3'
option target '/mnt/nas'
option fstype 'ext4'
 option options 'rw,sync,noatime'



 Если вы планируете раздел ntfs как раздел под файлы,  тогда вам понадобится установить еще два пакета:
  • opkg update
  • opkg install kmod-fs-ntfs ntfs-3g


Конфиг для ext4 + NTFS


config global 'automount'
option from_fstab '1'
option anon_mount '1'

config global 'autoswap'
option from_fstab '1'
option anon_swap '0'

config swap
option enabled '1'
option device '/dev/sda1'

config mount
option fstype 'ext4'
option enabled '1'
option device '/dev/sda2'
option target '/overlay'
option options 'rw,sync,noatime'
option enabled_fsck '0'

config mount
option enabled '1'
option device '/dev/sda3'
option target '/mnt/nas'
option fstype 'ntfs-3g'
 option options 'rw,sync,noatime'


     Но сразу хочу добавить что чтение и запись на раздел ntfs в разы ниже, чем ext4 Так что думайте. Лично я через два часа отформатировал основной раздел под ext4.


     Теперь о том как редактировать: Вы можете использовать редактор vi  

Так же можно воспользоваться программой WinSCP

Запускаем программу:

Host name - вписываем ip адрес вашего рутера. В данном случае 192.168.1.1
Port number - вписываем порт 22, хотя он должен быть установлен там по умолчанию
File protocol - SCP
User name - root
Password - пароль который вы установили





     Ну а дальше все как в тоталкомандере. Идем по адресу /etc/config/fstab находин файл fstab кликаем два раза и редактируем его. Можно просто скопировать и вставить. А потом подредактировать то, что отличается от моего конфига.

После того как вы отредактировали fstab, можете закрыть winscp. Переходим в оставленный нами putti. 


Переносим систему на накопитель.

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

     Перенос системы на USB HDD 
  • mkdir /mnt/sda2
  • mount /dev/sda2 /mnt/sda2
  • mkdir /tmp/cproot
  • tar -C /overlay -cvf - . | tar -C /mnt/sda2 -xf -
  • umount /mnt/sda2
  • reboot
     После перезагрузки убеждаемся что разделы подмонтировались и рутр загрузился не с внутреннего флеша, а с usb винта.
  • df -h
    Должны увидеть это:




      Проверяем подключился ли файл подкачки

  • free



Обратите внимание на последовательность разделов. У меня первый раздел это swap, второй overlay, третий share, систему я переносил на overlay, а это значит sda2 не перепутайте разделы.


     Все, теперь наша система openwrt запускается с HDD !!!!!