воскресенье, 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 !!!!!




10 комментариев:

  1. Лучший и самый доходчивый мануал. Я уже 4 дня их все перечитываю, так что есть с чем сравнить. Осталось узнать что делать если всё сделано по инструкции, но внешний оверлей монтироваться не хочет нивкакую...

    ОтветитьУдалить
  2. странно. Делал всё по инструкции но после перезагрузки всё возвращается как было. Память не увеличивается!

    ОтветитьУдалить
  3. Для чего нужен kmod-fs-ntfs если и без него ntfs-3g нормально монтирует и читает-пишет файлы на NTFS-разделах?

    ОтветитьУдалить
    Ответы
    1. kmod-fs-ntfs - модуль ядра
      ntfs-3g - утилита (драйвер)

      Удалить
    2. > kmod-fs-ntfs - модуль ядра
      > ntfs-3g - утилита (драйвер)

      Спс, кэп. Я и сам знаю что модуль а что драйвер.
      Вопрос был о другом, перечитайте:
      Для чего нужен kmod-fs-ntfs ЕСЛИ И БЕЗ НЕГО ntfs-3g нормально монтирует и читает-пишет файлы на NTFS-разделах?

      Удалить
    3. потому что ты юн и глуп, устанавливая ntfs-3g, kmod-fs-ntfs ставится автоматически как зависимость....

      Удалить
  4. А зачем нужен запуск с USB-диска? А вдруг я захочу его отключить?

    ОтветитьУдалить
    Ответы
    1. Запуск с USB носителя делается потому что памяти у роутера мало, установить туда все нужны пакеты не получится. Для этого делает extroot.
      Если отключить его, то роутер загрузится с теми конфигурациями, которые были на момент создания extroot, т.е. почти дефолтный.

      Удалить