27 марта 2021

Как я OpenWRT на WD MyBook Live ставил.


OpenWRT - это система на основе Linux для устройств с ограниченными ресурсами. В основном это домашние маршрутизаторы на MIPS и ARM.
WD MyBook Live - это такое NAS для дома в виде красивой пластиковой коробки с платой и 3,5 дюймовым HDD на 2-3 ТБ. На плате установлен процессор архитектуры PowerPC с одним ядром и 256 МБ оперативной памяти.
И вот эти две штуки умные люди попытались соединить вместе, и у них это даже получилось. И даже есть готовый образ, чтобы другие люди смогли поставить. У меня в шкафу уже года четыре точно лежит плата от этого NAS и диск на 500 ГБ, который не жалко использовать в экспериментах.

Образы прошивок можно скачать со страницы https://openwrt.org/toh/wd/mybooklive?s[]=mybook&s[]=live. Для модели с одним и двумя дисками нужны разные варианты прошивок.

Установка производится с помощью программы dd, т.е. образ просто записывается на диск, диск подключается к плате, а плата подключается к сети и питанию. Вроде бы ничего сложного, но есть несколько нюансов.

После включения питания платы, я стал ожидать появления её адреса в web-интерфейсе маршрутизатора. Адрес появился, но подключиться к нему у меня не получилось ни с помощью SSH, ни с помощью telnet, ни с помощью браузера.

Чтобы не гадать и посмотреть сообщения системы, я подключил к плате переходник UART-USB. Для подобных случаев я специально распаял провода на плате по этой картинке:


Для подключения и использовал программу KiTTY, а в настройках соединения указывал скорость 57600 бод.

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

Я сразу же посмотрел настройки сети командой "ip a". Единственному сетевому интерфейсу почему-то был присвоен адрес 192.168.1.1, хотя система точно получила настройки по DHCP от роутера, о чём говорит web-интерфейс роутера и сообщения в логах.

О принципах настройки OpenWRT я тогда ничего не знал, поэтому сразу полез искать настройки сети в недрах каталога "/etc" и нашёл их в файле "/etc/config/network". В этом файле в несложном формате был прописан статический адрес для интерфейса "lan". Я попробовал поменять значение в строке "option proto" на "dhcp" и отправил плату на перезагрузку.

После перезагрузки у интерфейса уже был только выданный роутером адрес, в систему можно было зайти по SSH, а в браузере открывалась страница настройки.

Вот на этом этапе уже можно делать подобие NAS.

Для начала я разбил оставшееся места на диске на два раздела:
  • 1 ГБ - swap;
  • остаток - пользовательские данные.
Для этого пришлось поставить пакет "fdisk". Разбивать свободное место на разделы надо осмотрительно, потому что программа на этапе указания начала раздела предлагает номер сектора где-то в самом начале диска. Это происходит из-за того, что самый первый раздел с ядром начинается с сектора 8192. Надо с помощью команды "p" посмотреть таблицу разделов и указывать сектор из столбца "End" строки с описанием раздела "/dev/sda2", прибавив к нему единицу.

После разбивки и форматирования разделов их надо как-то смонтировать. В web-интерфейсе для этого есть страница "System / Mount Points". В разделе "Mount Points" я попытался добавить точку монтирования для раздела под данные, но в списке выбора был только раздел с загрузчиком и раздел с системой.

Пришлось устанавить пакет "blkid", чтобы посмотреть UUID созданных разделов и вписать их вручную. Для раздела подкачки я просто вписал "/dev/sda3", потому что других вариантов web-интерфейс не предоставлял. После перезагрузки всё успешно смонтировалось.

Так же я попробовал создать на большом разделе каталог "overlay" и с помощью опции "--bind" программы "mount" подключить его к каталогу "/overlay". В разделе установки пакетов web-интерфейса размер свободного места под установку резко вырос. Отключить же "overlay" после этого у меня не получилось. Я не нашёл ничего похожего, что указывало бы на монтирование раздела в качестве каталога "/overlay".

Чуть позже я узнал, что изменить настройки сети можно было следующими командами:
uci set network.lan.proto=dhcp
uci set dhcp.lan.ignore="1"
uci commit
/etc/init.d/network restart
/etc/init.d/dnsmasq restart
А запись с монтированием "/overlay" я нашёл в файле "/etc/config/fstab", когда подключил диск к другому компьютеру и смонтировал раздел с системой. После удаления раздела с описанием точки монтирования я подключил диск назад к плате. Раздел в каталог "/overlay" больше не монтировался.

-->