Openwrt монтирование сетевого диска

Обновлено: 06.07.2024

А используя данные наработки, нетрудно пересобрать davfs2 также и для запуска на роутерах со стандартной прошивкой OpenWrt.

Изменения

Для того, чтобы собрать в OpenWrt Buildroot представленный в репозитории EntWare пакет davfs2, требуется внести в его файлы несколько незначительных изменений. В частности это касается используемых путей в основном Makefile, а также требуется добавление нового патча, исключающего зависимость от sys/xattr.h, который отсутствует в OpenWrt.

Сборка

Сборка производится в обычном автоматическом режиме.

Настройка

Для настройки пакета davfs2 используются следующие конфигурационные файлы: Первый содержит основные настройки davfs2, во втором содержится аутентификационная информация для возможности автоматически смонтировать сетевое хранилище.

Перед монтированием хранилища необходимо изменить следующие настройки в davfs2.conf: Данные настройки определяют имя пользователя и группу, от имени которых будет работать davfs2. Данная настройка задает абсолютный путь к каталогу кэша, который будет использоваться при работе davfs2. Использование кэша является обязательным, его нельзя отключить. Важно! Путь должен указывать либо на каталог на подключенном к роутеру USB-носителе, либо на каталог в разделе /tmp. Это связано с особенностью логики работы davfs2. Указанный путь должен существовать.

Строки в файле /etc/davfs2/secrets имеют два возможных варианта структуры: Если при монтировании файловой системы вы укажете точку монтирования или адрес сервера, совпадающий с имеющимся в /etc/davfs2/secrets, то автоматически будут использоваться указанные там имя пользователя и пароль.

Монтирование

Для монтирования облачного хранилища используется утилита mount.davfs: Например, монтирование сетевого диска Яндекса может выглядеть так: К сожалению, по умолчанию сертификаты не принимаются и требуют ручной установки. При желании вы можете самостоятельно разобраться, как научить davfs2 без ругани принимать предлагаемый сертификат. :)

После выполнения данной команды в точке /mnt будет примонтировано облачное хранилище Яндекс.Диск. Проверить это и посмотреть доступный объем свободного пространства можно командой df -h: Определение квоты доступного дискового пространства выполняется экспериментальным запросом USERINFO и, в случае сетевого диска Яндекса, работает корректно. (Да, здесь именно 260 ГБ.)

Для автоматизации процесса монтирования без ручного ввода логина и пароля необходимо заполнить файл /etc/davfs2/secrets, а для борьбы с ручным подтверждением сертификата можно использовать стандартную утилиту yes. Тогда монтирование диска может выглядеть следующим образом:

Особенности работы с кэшем

При взгляде со стороны смонтированная облачная файловая система ничем не отличается от локальных разделов. Но на самом деле все операции с файлами проводятся над кэшем.

Например, при запросе на редактирование файла из облачного хранилища, сначала он скачивается в cache_dir, а лишь затем происходит его открытие из данного каталога. При завершении редактирования, файл сначала сохраняется в кэше и лишь затем оказывается загружен обратно в облачное хранилище. Другой пример: при копировании с подключенного к роутеру USB-диска файла в облачное хранилище, данный файл сначала копируется в каталог кэша (который часто находится на том же USB-диске!), и лишь затем загружается на удаленный сервер.

Если планируется передавать лишь небольшие файлы, то для кэша разумно использовать раздел /tmp, который представляет собой RAM-диск. В этом случае есть смысл ограничить размер кэша переменной cache_size в davfs2.conf, но следует иметь в виду, что данная переменная определяет лишь суммарный объем кэша, а при попытке записи или чтения одного крупного файла она будет игнорироваться.

В случае передачи крупных файлов остается либо размещать кэш на смонтированном на роутере USB-носителе и мириться с его постоянной перезаписью, либо для работы именно с большими файлами можно использовать отдельные WebDav-клиенты типа cadaver.

У нас было 2 пакета коннекторов rj-45, четыре роутера, три адаптера USB-ATA, восемь флешек, два SSD диска, полсотни BIN файлов прошивок, десяток ESPшек, три одноплатных микрокомпьютера, китайские хабы и километры витой пары категории 5E. Не то, чтобы это был необходимый запас для настройки SSD диска. Но если начал настраивать, становится трудно остановиться. Единственное что вызывало у меня опасение — это роутер TP-Link TL-MR3020. Нет ничего более беспомощного, безответственного и испорченного, чем упоротые MR3020. Я знал, что рано или поздно мы перейдем и на эту дрянь.

Я стараюсь все очень подробно объяснить, показать и рассказать для того что бы каждая домохозяйка смогла управлять государством установить и пользоваться OpenWrt и программными продуктами.

Linux в каждый дом!

Напомню в статье используются:

Это продолжение, начало см. ссылки в конце странички

fdisk

Закончили мы на fdisk, а именно на fdisk -l

Теперь мы работаем с Disk /dev/ sda именно с каталогом sda

Тем самым говорим роутеру что работаем сейчас с нашим диском sda

Роутер выдает вот такое предупреждение

Welcome to fdisk (util-linux 2.34). Changes will remain in memory only, until you decide to write them. Be careful before using the write command.

Ок. Мы прочитали, осознали и готовы работать!

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

Создаем первый раздел

1. Вводим " n " (сейчас и далее буква или цифра без кавычек и нажимаем Enter) - тем самым создаем раздел

2. Вводим " 1 " - это номер раздела, первый

3. Затем начальный сектор (First sector) - оставляем по умолчанию, просто жмем "Enter"

4. Конечный сектор (Last sector) - +1G, Это значит что всего раздел будет 1Гб

Роутер и программа fdisk отчиталась:

Создан новый раздел 1 типа «Файловая система Linux» размером 1 ГБ.

Это хорошо, но мы не доверяем и посмотрим еще раз

Вводим " P" - и посмотрим, что получилось (1)

/dev/sda1 2048 2099199 2097152 1G Linux filesystem

Все отлично, но строчка " Linux filesystem " нам не нравится(!) мы же создаем Swap раздел поэтому.

Набираем " t" - вводим 82, "Enter" Тем самым, цифрой 82 говорим роутеру что создаем " Swap"

Так было раньше, но сейчас fdisk версии 2.34 по "L" после "T" выдает что: "Linux Swap" это 19, а 82 стало "VMware Virtual SAN"

В интернете я не нашел упоминание о изменения кодирования файловых систем в Linux, что это вообще такое, или я что то не понимаю? Ладно продолжим.

Поэтому набираем " t" - вводим 19, "Enter" Тем самым, цифрой 19 говорим роутеру что создаем " Linux swap"

И опять "P" - и смотрим что получилось

Создаем второй раздел

Все то же самое только без Swap раздела

Вводим " n" создать раздел

Затем номер - номер раздела это 2, или можно ничего не нажимать, по умолчанию и так будет 2 т. е. просто жмем "Enter"

Затем начальный сектор (First sector) - оставляем по умолчанию, просто жмем "Enter"

Конечный сектор - +1G

"P" - смотрим что получилось

/dev/sda2 2099200 4196351 2097152 1G Linux filesystem

Создаем третий раздел

Все то же самое.

Вводим " n" создать раздел

Затем номер - номер раздела это 3 , или можно ничего не нажимать, по умолчанию и так будет 3 т. е. просто жмем "Enter"

Затем начальный сектор (First sector) - оставляем по умолчанию, просто жмем "Enter"

Конечный сектор - просто жмем "Enter" и распределяем все оставшееся место

P - смотрим что получилось

/dev/sda2 2099200 4196351 2097152 1G Linux filesystem
/dev/sda3 4196352 250069646 245873295 117.2G Linux filesystem

Обязательно жмем W!

W - тем самым закрепляем данные, записывая их в файловую таблицу

Это говорит нам, что изменена таблица разделов. И это есть хорошо

Для проверки опять набираем

Отлично все записалось в файловую таблицу

Мы разбили диск на разделы, но теперь их нужно отформатировать

Форматируем

На нашем роутере нет пакета (программы) для форматирования диска, называется он "e2fsprogs" , его нужно установить

Можно установить как мы раньше устанавливали через терминал

А можно через LuCI, ничего сложного в этом нет

Идем в WEB интерфейс роутера System>Software,

1) затем жмем на "Update lists. " выскочит такое окно, это значит все хорошо.

2) Вбиваем пакет который хотим установить, "e2fsprogs", ентер.

4) Жмем "Install. " и все

Вот по пунктам что надо делать

Еще возникнет окно

С вопросом: "Overwrite files from other package(s)". Перезаписать файлы из других пакетов? Вы можете не ставить галочку. а просто жать "Install" Через некоторое время пакет установится.

о вернемся в командую строку, вбиваем или копируем

Создали раздел подкачки

mkfs - создаёт новую файловую систему Linux

через точку тип файловой системы, у нас ext4

-L - указывает какую метку диска присвоить

Последний диск будет форматироваться подольше там больший объем.

Редактируем файл fstab.

Что это за файл и зачем он нам нужен?

Файл fstab - это текстовый файл в котором хранится информация о устройствах хранения информации в вашем компьютере, другими словами так хранится информация о нашем диске (флешке). А еще подробнее, мы должны указать, примонтировать наши диски (их три) таким образом при загрузке роутер будет знать что они есть и считывать и записывать туда информацию.

Для того чтоб отредактировать текстовый файл мы должны это сделать через текстовый редактор, по умолчанию установлен текстовый редактор vi , но многим он не нравится и вы можете установить не менее известный текстовый редактор nano, по умолчанию он не установлен. Мы же будем редактировать через vi так как у нас мало памяти (хотя для nano хватит)

файл fstab находится по адресу /etc/config/fstab

Загружаем его в vi вот так

Работа с редактором VI

  • :q! Выход без сохранения (так и набираете сначала двоеточие, потом q, затем ! знак и Enter и вываливаетесь в корневой каталог)
  • Клавиша "I" режим редактирования
  • ESC - выход из режима редактирования.
  • :wq - выход с сохранением

Формируем fstab

По умолчанию fstab пустой, но мы туда запишем информацию

Как видите файл состоит из отдельных частей, в данном случае их три

Некоторые настройки понятны и так:

Но некоторые совсем непонятны, давайте их разберем

О uuid (индивидуальный номер диска)

Если вы еще раз посмотрите на код fstab, тот который был выше ( вот еще раз, ссылка ) то увидите, что примонтирован может быть любой диск который определился как dev/sda, но что делать если у вас паранойя! И вы думаете, что так каждый может взять и принести свой диск и его примонтировать, а вдруг там вирусы или еще чего похуже, мемасики например из интернета. На этот случай есть uuid это индивидуальный номер диска.

Узнать UID диска можно с помощью программы blkid, установив ее:

Теперь если вы впишите индивидуальный номер ваших дисков то уже ни один шпион не принесет поддельный, свой жесткий диск к вашему роутеру.

Номер для примера

Но вернёмся к нашим обычным настройкам, итак копируем мои настройки в fstab или изменяем под свои параметры.

Порядок действий

  • 2. Жмем клавишу "I"
  • 3. Вставляем код ( вот еще раз, ссылка )
  • 4. Жмем ESC
  • 5. Пишем :wq тем самым все записываем и выходим

Не забудьте переключится на английский алфавит на русском ничего не получится.

Эти настройки у нас активизируются при загрузке роутера, пока мы не перезагрузились ничего не поменялось.

Утилиты для получение информации о памяти и дисках

Прогоним еще несколько утилит, а именно две, для того что бы было потом с чем сравнивать.

1. df - информация о диска

df - утилита предоставляет нам информацию о дисках в системе

-h - выводит размеры в читаемом виде, в мегабайтах или гигабайтах

На скриншоте ниже мы видим что все в мегабайтах, а не в гигабайтах как у нас забито, но еще не применилось.

2. free - информация о памяти

О использовании памяти в LInux, нам она интересна так как мы сможем посмотреть Своп (SWAP)

Snow Dimon

Pages

2 мар. 2013 г.

Подключаем внешний диск | OpenWRT


Всем привет!
Ну вот я и стал счастливым обладателем роутера TP-Link MR3420 v2.

О его характеристиках распыляться не буду, вы их без труда нагуглите. Скажу только то, что он имеет USB разъем для подключения внешних устройств. что и подтолкнуло меня к действию. точнее действие я планировал давно и подбирал железку не случайно.

Первое, что я сделал- это сразу сменил прошивку на OpenWRT. Прошивочку для данной модели брал ЗДЕСЬ (добавил ЗЕРКАЛО).

Как установить все это, я думаю вы знаете или найдете.

Переходим к главному! У нас есть внешний жесткий диск, разобъем его:

1 раздел- под систему(ext4). Хватит 1 Гб. (я выделил больше для своих нужд)

*3 раздел- подкачка(swap). тут по желанию, 512Мб достаточно.

Итак, диск готов! Подключаем его к роутеру. Заходим в веб интерфейс 192.168.1.1 и сразу идем создавать пароль для root и откроем доступ к SSH из локальной сети. После чего идем в раздел Mount Points.

Открываем наш любимый shh клиент или вводим в терминал:

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

Примонтируем(если это не произошло автоматически) наш первый раздел:

И скопируем папку overlay на наш диск. Так мы получим систему со всеми настройками и ранее внесенными изменениями после перезагрузки:

Снова идем в веб интерфейс и кликаем EDIT напротив строчки /mnt/sda1


Жмем Save & Apply, переходим в терминал и пишем reboot.
Устройство перезагрузится. Снова идем в вебинтерфейс и подобным образом монтируем наш диск с данными.
Точкой монтирования я выбрал ранее созданную папку /ftp

Прикрепленное изображение

Изображение

Последняя версия: OpenWrt 21.02.0
В данной теме необходимо размещать изображения и логи под спойлером

OpenWrt — встраиваемая операционная система, основанная на ядре Linux, и предназначенная, в первую очередь, для домашних маршрутизаторов. Основные компоненты включают в себя ядро Linux, util-linux, uClibc или musl и BusyBox. Исходный код открытый. Распространяется под лицензией GNU GPL

Проект LEDE разработан на основе линукса, встраиваемый мета-дистрибутив базирующийся на OpenWRT, ориентирован на широкий спектр беспроводных маршрутизаторов SOHO и не-сетевых устройств. “Linux Embedded Development Environment” (Встраиваемая среда разработки линукс).
LEDE отвернулся от материнского проекта в мае 2016 года, с целью продолжить разрабатывать лучшее программное обеспечение в открытой модели управления и поощрение новых разработчиков внести свой вклад и усилия в области развития.

  • Данная тема предназначена для обсуждения настроек, процесса установки на ваш маршрутизатор и всего что связано с прошивкой OpenWrt/LEDE.
  • В данной теме не обсуждают компиляцию из исходных кодов и пересборку, для этого есть тема Сборка OpenWrt/LEDE из исходных кодов
Настройки для подключения к роутеру с LEDE (dropbear должен быть включен)

Прикрепленное изображение

Настройка TFTP-сервера tftpd-hpa

Установим пакет tftpd-hpa:

содержащий настройки сервера. Приведём его к следующему виду:

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--ipv4 --secure --create --umask 027 --permissive"

В настройках указаны дополнительные опции:
create разрешает серверу создавать новые файлы,
ipv4 предписывает ему ожидать подключений только на адресах IPv4,
umask предписывает сбрасывать бит записи для группы и все биты доступа для остальных пользователей,
permissive предписывает не проводить никаких проверок прав доступа к файлу сверх производимых операционной системой.
Создадим каталог для tftp-сервера, дадим серверу доступ к каталогу:

sudo mkdir /var/tftp

sudo chown tftp:tftp /var/tftp

Можно также поменять домашний каталог пользователя tftp в файле /etc/passwd на /var/tftp.

Теперь просто прописываем нужные нам ip адреса через gnome network manager и все.

Осталось перезапустить демона, чтобы он начал работу с новым каталогом:

При переходе с LEDE на OpenWrt 18.06 с сохранением настроек ,они будут сохранены или нужно будет перенастраивать? У меня с 12.09 на 17.01.4 настройки подхватило, но на всякий случай можно и сохранить, в luci есть возможность, или по ssh перекопировать /etc/кое-что как минимум.

Где найти прошивку для TP-Link TL-WR941N/ND v3.1

На данный момент

Прикрепленное изображение

Мощность датчика на максимум. Перебрал все каналы. На телефон выдает почему то максимум 65.0 Mbit/s хотя он поддерживает 72 Mbit/s. Родная прошивка выдает ему всегда скорость 130. У DD-WRT тоже с этим проблемы!
Тем устройствам которым положено в режиме N на 40hz работать на всю катушку - присваивается ограниченная скорость. Пока что не могу понять в чем дело.

Почему-то при переходе с СС 15.05 на Lede 17.04 с сохранением настроек роутера перестает идти мультикаст на приставку iptv. Прошиваю обратно, все работает. Что может быть не так? Igmpproxy, естественно, устанавливаю после прошивки вручную.

Убедитесь что в /etc/config/igmpproxy

config phyint
option network wan
option zone wan
option direction upstream
list altnet 192.168.0.0/16
list altnet 172.16.0.0/12
list altnet 10.0.0.0/8

config phyint
option network lan
option zone lan
option direction downstream

А в /etc/config/firewall

config rule
option name 'Allow-IPTV-IGMPPROXY'
option src 'wan'
option proto 'udp'
option dest_ip '224.0.0.0/4'
option target 'ACCEPT'
option family 'ipv4'
option dest 'lan'

config rule
option name 'Allow-IGMP'
option src 'wan'
option proto 'igmp'
option family 'ipv4'
option target 'ACCEPT'

Еще проблема может быть из-из появившейся поддержки IGMP snooping.

/etc/config/network

В разных темах замечал что люди интересовались как выключать wifi в OpenWrt в заданное время, собственно вот небольшая инструкция.
Есть два варианта.

Вариант 1 - через cron.

Для этого нужно перейти в Cистема -> Запланированные задания
И вписать нужную команду в это окно

Прикрепленное изображение

Вариант 2 - через веб интерфейс.
Это вот такая штука

Прикрепленное изображение


Но ее нужно установить. Интернет должен быть настроен, чтобы роутеру было откуда качать и устанавливать :)
Понадобятся пакеты: wifischedule, luci-app-wifischedule и luci-i18n-wifischedule-ru
Для установки из веб интерфейса идем в Cистема -> Программное обеспечение

Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение

Или через консоль, подключаемся по ssh и даем команды opkg update (обновляем список пакетов) и ставим opkg install luci-app-wifischedule (все остальные пакеты должны сами подтянуться, если не подтянутся, доустановите вручную opkg install wifischedule и opkg install luci luci-i18n-wifischedule-ru)
Вот и все :) Теперь можно переходить в Сервисы -> Wi-Fi планировщик и настраивать расписание работы WIFI

Перенос /overlay на внешний накопитель (если не хватает места во встроенной флеш-памяти или флеш-память очень "хлипкая" и подвержена умиранию

1) Подготовить USB-флешку. На флешке два раздела. Первый на 1 ГБ с файловой системой ext4. Второй — на всё оставшееся пространство тоже с файловой системой ext4.

2) Воткнуть флешку в роутер. Обновить список пакетов и установить необходимые:

opkg update
opkg install kmod-usb-storage block-mount kmod-fs-ext4

4) Нажать Edit возле sda1, включить Enable this mount, в качестве Mount point выбрать /overlay. Точно так же включить автомонтирование sda2 в качестве /data
В /data можно закачивать торренты и т. п. Это просто раздел под ваши нужды. У меня туда статистика использования трафика собирается, например.

5) Скопировать содержимое /overlay на флешку. В терминале:

mkdir -p /tmp/extoverlay
mount /dev/sda1 /tmp/extoverlay
tar -C /overlay -cvf - . | tar -C /tmp/extoverlay -xf -
umount /tmp/extoverlay

6) Перезагрузить роутер (если всё получилось, то на странице Software должно прибавиться количество свободного места)

Для любителей микрооптимизации: во-первых, читать это
Если желание оптимизировать ещё не пропало, можно заменить ext4 на F2FS (соответственно вместо kmod-fs-ext4 ставить kmod-fs-f2fs)
Если к использованию F2FS вы не готовы, а желание сэкономить ресурс флешки сильнее страха приключений на пятую точку, то:
— в п.1 после создания на флешке разделов выполнить в терминале:

sudo umount /dev/sdb1
sudo tune2fs -o journal_data_writeback /dev/sdb1
sudo tune2fs -O ^has_journal /dev/sdb1
sudo e2fsck -f /dev/sdb1
sudo umount /dev/sdb2
sudo tune2fs -o journal_data_writeback /dev/sdb2
sudo tune2fs -O ^has_journal /dev/sdb2
sudo e2fsck -f /dev/sdb2
— в п.4 на вкладке Advanced Settings для обоих разделов вписать в строчку Mount options:

Лично мне такие манипуляции с тюнингом грошовой флешки делать лень.
Настройка обхода блокировок в России и Украине Обход блокировок в России, направляем трафик до заблокированных сайтов через VPN

Предварительные требования:
— прошита OpenWrt 18.06
— установлен веб-интерфейс LuCi
— роутер имеет доступ в Интернет

Впрочем, будет работать и openvpn-openssl. Если вы используете что-то более ранее, чем OpenWrt 18.06, то жизненно необходимо установить openvpn-openssl вместо openvpn-mbedtls.

Отредактировать этот файл, дописав куда-нибудь в его середину строку:

config openvpn antizapret

option enabled 1
option config /etc/openvpn/antizapret-tcp.ovpn

(опять же, способ редактирования конфига оставлен на усмотрение читателя: одному удобно через vi, другому через тот же WinSCP). antizapret-tcp.ovpn — это файл, который вы на прошлом шаге копировали. Если его название изменилось, то, соответственно, исправьте его и тут в конфиге.

то необходимо открыть antizapret-tcp.ovpn текстовым редактором и добавить строку

изменить с 1 на 0

Плюсы:
— через VPN идёт лишь трафик до заблокированных доменов, остальной трафик идёт "напрямую" (нет потери скорости, у вас не меняется IP)
— следствие из предыдущего: трафик небольшой и поддержание бесплатного сервиса не бьёт по карману владельца

Обход блокировок в Украине, направляем трафик до заблокированных сайтов через VPN

Предварительные требования:
— прошита OpenWrt 18.06
— установлен веб-интерфейс LuCi
— роутер имеет доступ в Интернет

Впрочем, будет работать и openvpn-openssl. Если вы используете что-то более ранее, чем OpenWrt 18.06, то жизненно необходимо установить openvpn-openssl вместо openvpn-mbedtls.

3) Заменить содержимое /etc/config/openvpn на:

config openvpn zaborona

option enabled 1
option config /etc/openvpn/zaborona-help.ovpn

(опять же, способ редактирования конфига оставлен на усмотрение читателя: одному удобно через vi, другому через тот же WinSCP). zaborona-help.ovpn — это файл, который вы на прошлом шаге копировали. Если его название изменилось, то, соответственно, исправьте его и тут в конфиге.

то необходимо открыть antizapret-tcp.ovpn текстовым редактором и добавить строку

Плюсы:
— через VPN идёт лишь трафик до заблокированных доменов, остальной трафик идёт "напрямую" (нет потери скорости, у вас не меняется IP)
— следствие из предыдущего: трафик небольшой и поддержание бесплатного сервиса не бьёт по карману владельца

Не забудьте перезапустить dnsmasq:

1) задать пароль администратора (через LuCI)

3) с помощью WinSCP подключиться со следующими параметрами:
Host name: 192.168.1.1
Login: root
Password: пароль_который_вы_установили_на_шаге_1

1) задать пароль администратора (через LuCI)

3) с помощью SFTP-плагина для TC/DC (этот плагин, вопреки своему названию, умеет работать и по SCP) подключиться со следующими параметрами:
Connect to: 192.168.1.1
User name: root
Password: пароль_который_вы_установили_на_шаге_1

Если вы создаёте или редактируете файл в Windows, а затем копируете его на роутер, то перед копированием убедитесь, что переносы строк в файле UNIX-овские, а не Windows-овские! Для этого достаточно открыть файл в Notepad++ и в статусной строке внизу справа найти "Unix (LF)". Если там "Windows (CR LF)", то щёлкните правой кнопкой по надписи, выберите "Unix (LF)" и сохраните файл. Всё это нужно повторять после каждого редактирования, поэтому сначала редактируете как душе угодно, а затем уже проверяете переносы и заливаете на роутер.

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