OpenWRT.su

Open.Wireless.Super and LEDE

Сетевое хранилище на OpenWrt

Сетевое хранилище на OpenWrt

Иногда в домашней сети нужен сетевой диск, который будет воткнут именно в роутер, к которому будут иметь доступ все устройства в локальной сети. Роутер то у нас, как правило всегда включен, так почему бы не создать бесплатное, тихое сетевое хранилище из того, что есть. А нужно то нам для этого всего ничего - роутер с OpenWrt на борту и флешка требуемого объема под ваши нужды. В моем случае, рассмотрим процесс создания сетевого диска в OpenWrt 18.06.1 на роутере TP-Link WR842N, а качестве носителя будет использована usb флешка на 128гб. 

 1. Установка необходимых пакетов

Для начала нужно установить поддержку usb носителей информации в ядре OpenWrt.  Авторизуемся на роутере через SSH и начинаем:

opkg update
opkg install kmod-usb-storage

Автоматом также подтянется kmod-scsi-core. 

Installing kmod-usb-storage (4.9.120-1) to root...
Downloading http://downloads.openwrt.org/releases/18.06.1/targets/ar71xx/generic/packages/kmod-usb-storage_4.9.120-1_mips_24kc.ipk
Installing kmod-scsi-core (4.9.120-1) to root...
Downloading http://downloads.openwrt.org/releases/18.06.1/targets/ar71xx/generic/packages/kmod-scsi-core_4.9.120-1_mips_24kc.ipk
Configuring kmod-scsi-core.
Configuring kmod-usb-storage.

Также нам необходима поддержка файловой системы для нашей сетевой флешки или диска. Я со времен Chaos Calmer использую f2fs которая была создана для usb и ssd носителей одним инженером из Samsung, но тут кому что больше нравится. Можете хранить в Linux native файловой системе, либо вообще в Fat. Независимо от файловой системы сетевого диска, он будет доступен даже из-под Windows систем. 

opkg install kmod-fs-f2fs

Раньше данный пакет был очень легким, теперь же он тянет за собой еще 2 пакета шифрования. 

Installing kmod-fs-f2fs (4.9.120-1) to root...
Downloading http://downloads.openwrt.org/releases/18.06.1/targets/ar71xx/generic/packages/kmod-fs-f2fs_4.9.120-1_mips_24kc.ipk
Installing kmod-crypto-hash (4.9.120-1) to root...
Downloading http://downloads.openwrt.org/releases/18.06.1/targets/ar71xx/generic/packages/kmod-crypto-hash_4.9.120-1_mips_24kc.ipk
Installing kmod-crypto-crc32 (4.9.120-1) to root...
Downloading http://downloads.openwrt.org/releases/18.06.1/targets/ar71xx/generic/packages/kmod-crypto-crc32_4.9.120-1_mips_24kc.ipk
Configuring kmod-crypto-hash.
Configuring kmod-crypto-crc32.
Configuring kmod-fs-f2fs.

Если у вас нет под рукой Linux машины, то нужно будет отформатировать флешку в нужную для вас файловую систему. Либо поставить пакет инструментов файловой системы для последующего форматирования прямо на роутере. В моем случае, я поставил инструменты для f2fs. 

opkg install f2fs-tools

Для автоматического монтирования usb флешки полезно установить пакет block-mount

opkg install block-mount 

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

opkg install samba36-server

Installing samba36-server (3.6.25-12) to root...
Downloading http://downloads.openwrt.org/releases/18.06.1/packages/mips_24kc/base/samba36-server_3.6.25-12_mips_24kc.ipk
Configuring samba36-server.

 2. Форматирование Usb флешки на роутере

Вы, конечно, можете отформатировать флешку из под Windows, например, при помощи Minitool Partition Wizard для быстрой разметки флешки. Или в другой Linux машине. Либо как я прямо на роутере, в моем случае это диск /dev/sda1:

mkf2s.f2fs -l NAS /dev/sda1 

F2FS-tools: mkfs.f2fs Ver: 1.10.0 (2018-01-30) Info: Disable heap-based policy
Info: Debug level = 0
Info: Label = NAS
Info: Trim is enabled
Info: [/dev/sda1] Disk Model: Cruzer Spark1.004C530699901009107102
Info: Segments per section = 1
Info: Sections per zone = 1
Info: sector size = 512
Info: total sectors = 240451520 (117407 MB)
Info: zone aligned segment0 blkaddr: 512
Info: format version with
"Linux version 4.9.120 (Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.) (gcc version 7.3.0 (OpenWrt GCC 7.3.0 r7102-3f3a2c9) ) #0 Thu Aug 16 07:51:15 2018"
Info: [/dev/sda1] Discarding device
Info: This device doesn't support BLKSECDISCARD
Info: This device doesn't support BLKDISCARD
Info: Overprovision ratio = 0.580%
Info: Overprovision segments = 689 (GC reserved = 352)
Info: format successful

3. Монтирование Usb флешки 

mount /dev/sda1 /mnt

Я смонтировал ее в раздел /mnt, так как больше у меня никаких других накопителей на роутере не будет. Для автоматического монтирования устройства при загрузке роутера добавим его в конфиг fstab при помощи block mount в Luci. Заходим в меню System - Mount Points. Добавляем новую точку монтирования, выбираем диск и вписываем путь к каталогу для монтирования, перегружаем роутер. 

Монтирование Usb флешки

Проверяем доступность:

df -h 

Filesystem Size Used Available Use% Mounted on
/dev/root 2.5M 2.5M 0 100% /rom
tmpfs 29.5M 948.0K 28.5M 3% /tmp
/dev/mtdblock3 12.3M 4.8M 7.5M 39% /overlay
overlayfs:/overlay 12.3M 4.8M 7.5M 39% /
tmpfs 512.0K 0 512.0K 0% /dev
/dev/sda1 114.7G 476.0M 112.8G 0% /mnt

4. Включение сетевого хранилища

Далее переходим в меню Services - Network Shares. Включаем обнаружение нашего сетевого диска. Тут все просто - вписываете название диска, а также путь, куда замонтирована наша флешка. Я назвал диск UsbStorage, а путь соответственно указал просто /mnt

Включение сетевого хранилища

Сохраняемся и применяем изменения. Далее подцепляем диск на машинах клиента. 

5. Подключение сетевого диска на примере Windows 10. 

Этот компьютер - Компьютер - Подключить сетевой диск. Выбираем букву для диска, вписываем адрес хоста и нашей сетевой папки, в моем примере это \\openwrt\UsbStorage

5. Подключение сетевого диска на примере Windows 10.

Жмем готово и пользуемся. 

5. Подключение сетевого диска на примере Windows 10.

Бывает, что при попытки записать что-то на диск появляется ошибка прав доступа:

Тогда вам нужно задать права на монтируемую папку. Разрешим все действия для всех пользователей:

chmod ugo+rwx /mnt 

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

Если вы хотите получать сообщения c ответами на ваши комментарии - то укажите свой настоящий e-mail. Если же вы тут проездом, чтобы оставить комментарий укажите в поле email no@openwrt.su