Иногда на роутере мало флешки, но есть USB-порт.
Задача - подключить флеху и поставить пакет на нее без переноса всего рута на флеху.

Устанавливаем все что нужно для подключения флехи и настраиваем монтирование:

apk update
apk add kmod-usb3 kmod-usb-storage kmod-fs-ext4 block-mount
mkfs.ext4 -O ^has_journal /dev/sda1
mkdir /opt

Дальше настраиваем автоматическое монтирование с помощью block-mount. Сначала поглядим:

block detect

Ну и потом сконфигурируем:

block detect > /etc/config/fstab
uci set fstab.@global[0].anon_mount='0'
uci set fstab.@global[0].auto_mount='1'
uci set fstab.@global[0].auto_swap='1'
uci set fstab.@mount[1].enabled='1'
uci set fstab.@mount[1].target='/opt'
uci commit fstab
/etc/init.d/fstab enable
/etc/init.d/fstab boot
#/sbin/block mount

Я буду экспериментировать на пакете xray-core, который довольно большой - примерно 30Mb в установленном виде.
Идея такова - распаковать пакет, перенести настройки пакета в рут, а основной бинарь просто оставить на флехе и в рут поместить просто ссылку на него.
После того, как флешка нормально монтируется после перезагрузки в /opt - скачиваем xray-core, распаковываем его и конфигурируем, чтобы его бинарь запускался с флехи:

apk update
cd /opt/
apk fetch xray-core
apk extract --allow-untrusted ./xray-core-25.8.3-r1.apk
mv ./etc/config/xray /etc/config/
mv ./etc/init.d/xray /etc/init.d/
mkdir /etc/xray
ln -s /opt/usr/bin/xray /usr/bin/xray

uci set xray.enabled.enabled='1'
/etc/init.d/xray enable
/etc/init.d/xray start

Всё!

Enter your comment. Wiki syntax is allowed:
 
  • openwrt/установка_пакетов_на_флешку_при_нехватке_места_без_переноса_рута.txt
  • Last modified: 2025/08/20 09:40
  • by admin