воскресенье, 21 июня 2015 г.

install openwrt on usb flash

В наличии оказалась 8 гиговая флешка и свободный usb порт на tplink wr1043nd rel1.0


Хочу отметить, что нужно обновить прошивку как минимум до Barrier Breaker иначе не получится воспользоваться утилитой block mount. Я пробовал ставить Chaos Calmer и флеш подключается, но не поддерживается очень много пакетов на дату июнь 2015.
И главное, если вынуть usb flash из порта, то система будет работать используя пакеты и конфигурацию из встроенной памяти.

Ставим зависимости.

в терминали роутера:
opkg update
opkg install kmod-usb-core
opkg install kmod-usb-ohci
opkg install kmod-usb-storage
opkg install kmod-usb2
opkg install kmod-fs-ext4
opkg install fdisk
opkg install e2fsprogs
opkg install block-mount

Если пакеты успешно встали, то смотрим куда подключена флешка
ls /dev | grep sd
Если ее еще нет, перезагружаемся, что бы поддержка usb активировалась. У меня флешь распозналась как sda

Форматируем и размечаем флешь

воспользуемся посавленой утилитой fdisk
sudo -i fdisk /dev/sda
Запустившись fdisk просит Вас ввести команду. Последовательность команд примерно следующая.
o — создаем новую таблицу разделов, удалив всё что было
n — создаем первый раздел. тип primary — p, номер раздела — по умолчанию, первый сектор — по умолчанию, последний сектор смещен на 128мб — +128M
n — создаем второй раздел. тип primary — p, номер раздела — по умолчанию, первый сектор — по умолчанию, последний сектор смещен на 1Гб — +1G
n — создаем третий раздел. тип primary — p, номер раздела — по умолчанию, первый сектор — по умолчанию, последний сектор — по умолчанию
w — сохраняем изменения

Теперь воспользуемся методами mkswap mkfs из утилиты e2fsprogs
sudo -i mkswap /dev/sda1
sudo -i mkfs.ext2 /dev/sda2
sudo -i mkfs.ext4 /dev/sda3

Немного подождем, пока рутер сделает переразметку и посмотрим, что подучилось:
block detect

Конфигурируем fstab и загрузку

Для начала запишем найденные точки монтирования в fstab
block detect > /etc/config/fstab

Теперь включим автомонтирование swap-раздела на USB-HDD/USB-флешке. Для этого в блоке global присвоим опции auto_swap значение 1. А так же в блоке swap опции enabled значение 1. Второй разделt пропишем в точку монтирования /overlay. Третий раздел — в точку монтирования /mnt/usb

в итоге должно получиться:
vi /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 '1'

config 'mount'
        option  target  '/overlay'
        option  uuid    '014c66d2-f6da-498e-ba01-0bf9c6e4b4c3'
        option  enabled '0'

config 'mount'
        option  target  '/mnt/usb'
        option  uuid    '1525cdd1-ccac-491d-bcbb-523a9a2a3b7d'
        option  enabled '1'
Переносим содержимое каталога /overlay на подготавливаемый раздел
tar -C /overlay -cvf - . | tar -C /mnt/sda2 -xf -

и перезагружаемся.
Сморим что места стало больше и радуемся этому факту:
df -h
P.S. Если диски с оверлеем не примонтировались, посмотрите в luci как они распознаются.
Должно появиться новое меню "Mount Ponits" в меню "Administration".