OpenWRT - это система на основе Linux для устройств с ограниченными ресурсами. В основном это домашние маршрутизаторы на MIPS и ARM.
WD MyBook Live - это такое NAS для дома в виде красивой пластиковой коробки с платой и 3,5 дюймовым HDD на 2-3 ТБ. На плате установлен процессор архитектуры PowerPC с одним ядром и 256 МБ оперативной памяти.
И вот эти две штуки умные люди попытались соединить вместе, и у них это даже получилось. И даже есть готовый образ, чтобы другие люди смогли поставить. У меня в шкафу уже года четыре точно лежит плата от этого NAS и диск на 500 ГБ, который не жалко использовать в экспериментах.
Образы прошивок можно скачать со страницы https://openwrt.org/toh/western_digital/mybooklive. Для модели с одним и двумя дисками нужны разные варианты прошивок.
Установка производится с помощью программы 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" больше не монтировался.