OpenWRT — подключение USB-диска

Если у Вас маршрутизатор с USB-портом и прошивкой OpenWRT, то вряд ли Вы избежите соблазна подключить к нему внешний накопитель для каких-либо приблуд.
Вот сегодня об этом и поговорим.

Необходимые пакеты для подключения USB-диска

Для подключения внешнего USB-накопителя нам понадобятся первым делом необходимые модули ядра.
В случае, если Вы сами собираете прошивку OpenWRT, то тогда включаем в настройках сборки следующие пункты

make menuconfig
Kernel modules  --->
   USB Support  --->
      <*> kmod-usb-core
      <*> kmod-usb-ohci
      <*> kmod-usb-storage
      <*> kmod-usb-usb2
   Filesystems  --->
      <*> kmod-fs-ext4

Ну и, конечно, следует позаботиться об пакете block-mount, который выполняет роль аналога сервиса fstab — монтирует разделы при загрузке устройства.

Base system   --->
   <*> block-mount

Ну теперь дело за малым — собираем прошивку

make clean
make V=-1

и прошиваем наше устройство.

Подключение и монтирование USB-накопителя

Настоятельно рекомендую использовать для подключения накопители с файловыми системами Ext2/Ext3/Ext4. Хоть и существует возможность монтирования FAT32/NTFS, но все попытки обычно обрастают кучей проблем, которые решать желания никакого не имею.

В этой статье априори рассматриваю лишь Ext-семейство.

Если подключаете Флешку или SSD-диск, то рекомендую использовать Ext2, чтобы особо не волноваться о циклах перезаписи.
Если USB-HDD, то рекомендую переходить на Ext4.

Итак, будем считать, что носитель Вы подготовили и подключили.

Если же вы впервые сталкиваетесь с вопросом о форматировании USB-флешки, то для Linux-систем можете почитать эту статью:Форматирование USB-диска

Теперь надо примонтировать всё это дело.

Отложим интерфейс, он несколько кривовато работает для этих целей в настоящее время, проще ручками через консоль.

Для начала удалим старый файл /etc/config/fstab

rm /etc/config/fstab

А теперь создадим новый с помощью полезной команды

block detect >> /etc/config/fstab

И приступим к редактированию

vi /etc/config/fstab

Перед нами во всей красе и величии предстали настройки автоматического монтирования, созданные автоматически командой block detect.

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 'mount'
        option  target  '/mnt/sda1'
        option  uuid    '7f41e7d8-3b3a-4725-a295-cbc58bb89493'
        option  enabled '0'

Теперь нам надо определиться как монтировать будем. Тут два варианта:

  1. Монтируем как отдельный раздел — тут вообще никаких комментариев. Обычное монтирование.
  2. Монтируем как overlay-раздел — подменяем область, которую прошивка использует для перезаписи данных, так как файлы в самой прошивке находятся в read-only файловой системе. В общем если хотите устанавливать пакеты или поберечь флеш устройства от перезаписей, который как USB-флешку поменять не получится, а только паяльником, то советую хотя бы раздел 128-256 мб выделить под overlay-раздел.

Монтируем как отдельный раздел

Итак, чтобы примонтировать USB раздел как отдельный каталог, например, в будущем для хранения данных файлового сервера, приводим второй блок файла fstab к следующему виду

config 'mount'
        option  target  '/mnt/sda1'
        option  uuid    '7f41e7d8-3b3a-4725-a295-cbc58bb89493'
        option  enabled '1'

Да, просто меняем одну цифру, с нуля на единицу.
В общем и сами догадались бы.

Монтируем как overlay-раздел

Вот это уже интереснее.
Сначала приводим fstab к виду

config 'mount'
        option  target  '/overlay'
        option  uuid    '7f41e7d8-3b3a-4725-a295-cbc58bb89493'
        option  enabled '1'

А теперь нам необходимо еще файлы из встроенной памяти роутера перенести в этот раздел.

Сделаю небольшое отступление — в интернете бытует мнение, которое я до недавнего времени так же разделял, мол необходимо на внешний носитель переносить все данные с устройства.
Если Вы так сделаете и у Вас не флешка, а USB-HDD, то ваш жесткий диск парковаться будет чуть реже, чем никогда.
В overlay необходимо перенести лишь то, что сейчас находится в overlay’е.

Итак, монтируем будущий overlay раздел ручками в /mnt/sda1

mkdir /mnt/sda1
mount /dev/sda1 /mnt/sda1

И переносим всё содержимое с сохранением прав доступа и символьными ссылками хитрым способом с помощью архиватора tar:

tar -C /overlay -cf - . | tar -C /mnt/sda1 -xf -

Проверяем, что скопировали:

~# ls /mnt/sda1 -lah
drwxr-xr-x    5 root     root        4.0K Sep 25 09:44 .
drwxr-xr-x    1 root     root           0 Sep 25 09:20 ..
drwxr-xr-x    5 root     root        4.0K Sep 25 09:44 etc
drwx------    2 root     root       16.0K Sep 25 09:16 lost+found
drwxr-xr-x    3 root     root        4.0K Sep 25 09:44 mnt

Замечательно, вот только каталог /overlay/mnt на флешку перемещать смысла не было, удалим его на всякий случай:

rm -Rf /mnt/sda1/mnt

Ну и перезагружаемся:

reboot

После перезагрузки промеряем, как у нас всё смонтировалось и куда

~# df -h|grep sd
/dev/sda1                 3.7G      7.6M      3.5G   0% /overlay

ну всё, флешка подключена как overlay-раздел и теперь у вас куча места для установки пакетов, а не жалкие несколько мегабайт.

Кстати, друзья, теперь за всеми свежими и важными записями можете следить прямо из паблика ВКонтакте.

Подпишись в один клик:

Комментариев: 3

  1. Если на жестком присуствует свап раздел ,
    то блок моунтх его тоже увидит и можно добавить в качесве свапа ..
    http://prntscr.com/9ce8ov

    мой пример
    config ‘swap’
    option uuid ‘0b2fb41b-f022-4ed4-b688-7045b8ba0887’
    option enabled ‘1’

    config ‘mount’
    option target ‘/home’
    option uuid ‘bb39ebb6-95e5-c404-0551-c388fe725015’
    option enabled ‘1’

    config ‘mount’
    option target ‘/overlay’
    option uuid ‘f9171d03-1060-4050-b84d-7267426123e4’
    option enabled ‘1’

    свап — старый мп3 плеер 128мб вместо хранилища под свап (незнаю на долго ли хватит его пока тестим)
    хоме — жесткий диск 1тб (кода не испл спит и не шипит оборотами ветром)
    overlay — еще один мп3 плеер старый 1гб для хранилища роутера
    а свап раздельно с мп3 плеерами,
    для того чтоб — если загнотся свап то overlay останется живым, ну и жесткий не шипит тоже а спит )

    таже установлен hd-idle для жесткого . чтоб спать шел через 1 час , и недергало его с вкл выкл часто ..

Оставьте свой комментарий

Войти с помощью: