Маршрутизатор Beeline SmartBox TURBO+ и прошивка OpenWrt. Подключаем USB диск.

Опубликовано: 25 августа 2023
Раздел(ы): Маршрутизаторы аппаратные
Просмотры: 1679
Комментарии: 0

Если в маршрутизаторе с прошивкой OpenWRT есть USB порт, то возможности такого устройства можно расширить подключив внешний накопитель. Это может быть обыкновенная флешка или жесткий диск (SSD или HDD).

На таком накопителе можно:

  • Создать раздел подкачки, что увеличит объем виртуальной памяти устройства;
  • Разместить раздел /overlay, увеличив его размер для установки большего количества программ, чем это позволяет сделать встроенная память маршрутизатора;
  • Создать сетевое хранилище данных.

Базовая поддержка USB в прошивке OpenWRT

Как правило, прошивка для устройств с USB портом уже содержит базовую поддержку USB. Но на всякий случай проверьте, что у вас установлен пакет kmod-usb-core (Модуль ядра для поддержки USB) и один из драйверов в зависимости от контроллера USB порта (kmod-usb-ohci, kmod-usb-uhci, kmod-usb2, kmod-usb3). Для маршрутизатора Beeline SmartBox TURBO+ необходимы kmod-usb-core и kmod-usb3.

Как установить необходимые или недостающие компоненты (модули, пакеты) в прошивке OpenWRT

Установить необходимые пакеты можно в веб-интерфейсе в меню System -> Software:

Маршрутизатор Beeline SmartBox TURBO+ и прошивка OpenWrt. Подключаем USB диск.

Предварительно нажав кнопку [Update lists].

Так же необходимые компоненты можно установить через консоль. Для этого выполните следующие команды:

Сначала для обновления списка пакетов.

opkg update

а затем для установки необходимого

opkg install ИМЯ_ПАКЕТА

Установка поддержки USB хранилища на прошивке OpenWRT

Установка минимального набора утилит в консоли выглядит так:

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

Где,

  • kmod-usb-storage — Поддержка ядром запоминающих устройств USB;
  • kmod-fs-ext4 — драйвер поддержки файловой системы EXT4;
  • fdisk — утилита для работы с разделами на диске;
  • block-mount — cкрипты для подключения и проверки устройств;
  • e2fsprogs — набор программ для форматирования и проверки разделов.

Необходимо перезагрузить маршрутизатор, чтобы в веб-интерфейсе LuCi корректно отображалось меню System -> Mount Points.

После этого необходимо подключить USB накопитель к роутеру и проверить, что он обнаружен маршрутизатором:

ls -al /dev/sd*

В моем примере подключен диск sda с тремя разделами sda1, sda2, sda3

Маршрутизатор Beeline SmartBox TURBO+ и прошивка OpenWrt. Подключаем USB диск.

Посмотреть подробную информацию о разделах можно командой:

fdisk -l

Маршрутизатор Beeline SmartBox TURBO+ и прошивка OpenWrt. Подключаем USB диск.

Как создать новую таблицу разделов на диске

Чтобы создать новую таблицу разделов на диске (флешке) выполните следующую команду в консоли:

fdisk /dev/sda

Где sda обнаруженный USB накопитель.

Утилита fdisk просит Вас ввести команду. Последовательность команд примерно следующая.

  • o — создаем новую таблицу разделов, удалив всё что было ранее на диске;
  • n — создаем первый раздел. тип primary — p, номер раздела — по умолчанию, первый сектор — по умолчанию, последний сектор смещен на 256мб — +256M Это будет раздел подкачки
  • n — создаем второй раздел. тип primary — p, номер раздела — по умолчанию, первый сектор — по умолчанию, последний сектор смещен на 1Гб — +1G Это будет раздел overlay:
  • n — создаем третий раздел. тип primary — p, номер раздела — по умолчанию, первый сектор — по умолчанию, последний сектор — по умолчанию Это раздел для данных;
  • w — сохраняем изменения.

Проверяем содеянное командой:

fdisk -l

Какой размер диска выделить для раздела подкачки и overlay

Для малых объемов оперативной памяти (до 8 ГБ включительно) в Linux принято создавать раздел подкачки в два раза больше оперативной памяти. В маршрутизаторе Beeline SmartBox TURBO+ установлено 128 МБ ОЗУ, поэтому файл подкачки делаем 256 МБ. Меньших объемов может не хватать, а большие скорее замедлят работу устройства, чем принесут пользу.

Размер overlay должен поместить в себя все возможные программы OpenWRT, 1 ГБ в обычных условиях должно быть достаточно.

Форматирование разделов в OpenWRT

Отформатируем созданные ранее разделы:

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

mkswap /dev/sda1

Затем overlay

mkfs.ext4 /dev/sda2

И раздел для данных

mkfs.ext4 /dev/sda3

Форматирование разделов большого размера может занять продолжительное время.

Какой тип файловой системы выбрать для диска

Файловая система EXT4 является «родной» для Linux, поэтому постарайтесь использовать именно ее. Как правило в роутерах с прошивкой OpenWRT запись на разделы NTFS (файловая система Windows) идет значительно медленнее чем на разделы с EXT4.

Если выбирать между EXT2, EXT3 и EXT4, то следует знать, что EXT2 самая быстрая, но не журналируемая файловая система и внезапное отключение диска при пропадании питания грозит потерей данных.

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

Монтирование разделов в OpenWRT

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

Создадим таблицу fstab:

block detect >> /etc/config/fstab

У меня она выглядит так:

config global
        option anon_swap '0'
        option anon_mount '0'
        option auto_swap '1'
        option auto_mount '1'
        option delay_root '5'
        option check_fs '0'

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

config mount
        option target '/mnt/sda2'
        option enabled '0'
        option uuid '977820f8-d460-4a60-a6c3-6295345a33d5'

config mount
        option target '/mnt/sda3'
        option enabled '0'
        option uuid '9ac62099-1fcd-4e79-bc1f-923ebc79c5e1'

Теперь включим автомонтирование swap-раздела на USB-диске (флешке). Для этого установим в блоке swap опции enabled значение 1.

Далее настроим монтирование остальных разделов. Второй раздел — в точку монтирования /overlay, для расширения памяти устройства для установки пакетов и прочего. Третий раздел — в точку монтирования /mnt/disk (вместо disk может быть что угодно, называйте как хотите), для хранения ваших файлов.

Плюс я увеличил время задержки до 15 секунд, так как USB-HDD диск не успевал раскрутиться и из-за этого не монтировался /overlay.

В итоге у меня файл /etc/config/fstab стал выглядеть так:

config global
        option anon_swap '0'
        option anon_mount '0'
        option auto_swap '1'
        option auto_mount '1'
        option delay_root '15'
        option check_fs '0'

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

config mount
        option target '/overlay'
        option enabled '1'
        option uuid '977820f8-d460-4a60-a6c3-6295345a33d5'

config mount
        option target '/mnt/disk'
        option enabled '1'
        option uuid '9ac62099-1fcd-4e79-bc1f-923ebc79c5e1'

Создадим директорию для монтирования раздела с данными:

mkdir /mnt/disk

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

mkdir /mnt/sda2
mount /dev/sda2 /mnt/sda2
tar -C /overlay -cvf - . | tar -C /mnt/sda2 -xf -
umount /mnt/sda2
rm -rf /mnt/sda2
reboot

Проверка

Проверим из консоли, что смонтировался SWAP командой free:

root@OpenWrt:~# free
              total        used        free      shared  buff/cache   available
Mem:         120448       50424       44756          92       25268       32760
Swap:        262140           0      262140

В последней строке указаны общий объем раздела подкачки и его использование.

Проверим остальные два раздела с помощью команды df -h:

root@OpenWrt:~# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                 4.3M      4.3M         0 100% /rom
tmpfs                    58.8M     92.0K     58.7M   0% /tmp
/dev/sda2               973.4M     20.9M    885.3M   2% /overlay
overlayfs:/overlay      973.4M     20.9M    885.3M   2% /
tmpfs                   512.0K         0    512.0K   0% /dev
/dev/sda3               195.8G      2.0M    185.8G   0% /mnt/disk

Отметим, что раздел /dev/sda2 смонтирован как /overlay и размер памяти для пакетов OpenWRT увеличился.

Все это так же можно наблюдать в веб-конфигураторе LuCi:

Точки монтирования в меню System -> Mount Points

Маршрутизатор Beeline SmartBox TURBO+ и прошивка OpenWrt. Подключаем USB диск.

На главной странице можно посмотреть размер виртуальной памяти раздела подкачки и доступную память /overlay

Маршрутизатор Beeline SmartBox TURBO+ и прошивка OpenWrt. Подключаем USB диск.

Убедиться, что для пакетов теперь достаточно места так же можно в меню System -> Software

Маршрутизатор Beeline SmartBox TURBO+ и прошивка OpenWrt. Подключаем USB диск.

Постскриптум

Абсолютное большинство инструкций в интернете по OpenWRT в той или иной степени являются вольным переводом и пересказом официальной документации. Эта статья может вызвать такое же впечатление.

Я при написании данной статьи так же опирался на официальную документацию и вносил правки в файлы конфигурации применительно к моему маршрутизатору Beeline SmartBox TURBO+ с прошивкой OpenWRT 23.05.0-rc2.

Благодарности

При написании статьи были использованы следующие источники:

  1. https://openwrt.org/docs/guide-user/additional-software/extroot_configuration
  2. https://dzen.ru/a/YCP_FMWXlB-LAjln
  3. https://openwrtblog.blogspot.com/2015/03/openwrt-usb-usb.html
  4. https://kirill-zak.ru/2018/08/29/408

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить" Вы даёте свое согласие на обработку введенной персональной информации в соответствии с Федеральным Законом №152-ФЗ от 27.07.2006 "О персональных данных", на условиях и для целей определенных политикой конфиденциальности сайта.
© Юрий Рассадников, 2011 - 2024
uptime узнать
Домен : reg.ru
Хостинг : adman.com
SQL - 6 | 0,269 сек. | 8.34 МБ