Flash-диск в OpenWrt
После того, как подключили usb-хаб, можно использовать его возможности. Подключим Flash-диск в OpenWrt и перенесем на него файловую систему, чтобы быть независимым от размера Flash-памяти, которая стоит в роутере.
На этапе конфигурации OpenWrt нужно установить следующие модули:
Kernel modules:
USB Support:
<*> kmod-usb-storage (Flash-диск в OpenWrt)
Filesystems:
<*> kmod-fs-ext3
Base system:
<*> block-extroot
Utilities:
Filesystem:
<*> e2fsprogs
disc:
<*> fdisk
Подготовим Flash-диск:
Подключаем Flash-диск к роутеру. Заходим через телнет на роутер:
$ telnet 192.168.1.1 |
Ищем, как Flash-диск определся в системе:
# fdisk -l (у меня Flash-диск определился как /dev/sda) |
Форматируем Flash-диск:
# fdisk /dev/sda Command (m for help): d Partition number (1-4): 1 Command (m for help): d Partition number (1-4): 2 Command (m for help): d Partition number (1-4): 3 Command (m for help): d No partition is defined yet! |
Разбиваем Flash-диск на следующие части — Swap (64Мбт), Root File System (128Мбт), Home (оставшееся место на флэш-диске):
Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-122, default 1): Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-122, default 122): +64M Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 2 First cylinder (10-122, default 10): Using default value 10 Last cylinder or +size or +sizeM or +sizeK (10-122, default 122): +128M Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 3 First cylinder (27-122, default 27): Using default value 27 Last cylinder or +size or +sizeM or +sizeK (27-122, default 122): Using default value 122 |
Смотрим, что получилось:
Command (m for help): p Disk /dev/sda: 1010 MB, 1010826752 bytes 255 heads, 63 sectors/track, 122 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x91f72d24 Device Boot Start End Blocks Id System /dev/sda1 1 9 72261 83 Linux /dev/sda2 10 26 136552+ 83 Linux /dev/sda3 27 122 771120 83 Linux |
Первый раздел у нас должен иметь тип Swap, меняем тип для него:
Command (m for help): t Partition number (1-4): 1 Hex code (type L to list codes): 82 Changed system type of partition 1 to 82 (Linux swap / Solaris) Command (m for help): p Disk /dev/sda: 1010 MB, 1010826752 bytes 255 heads, 63 sectors/track, 122 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x91f72d24 Device Boot Start End Blocks Id System /dev/sda1 1 9 72261 82 Linux swap / Solaris /dev/sda2 10 26 136552+ 83 Linux /dev/sda3 27 122 771120 83 Linux |
Применяем и выходим:
Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. |
Отформатируем разделы:
# mkswap /dev/sda1 # mkfs.ext3 -L RootFS /dev/sda2 # mkfs.ext3 -L MyData /dev/sda3 |
Flash-диск готов. Перенесем на него корневую файловую систему:
Для этого подключим его к компьютеру и скопируем содержимое
openwrt/build_dir/target-mipsel_uClibc-0.9.31/root-brcm47xx/ на второй раздел( RootFS) Flash-диск.
Для загрузки с Flash-диск в OpenWrt необходимо изменить файл /etc/config/fstab следующим образом:
config global automount option from_fstab 1 option anon_mount 1 config global autoswap option from_fstab 1 option anon_swap 0 config mount option target / option device /dev/sda2 option fstype ext3 option options rw,sync option enabled 1 option is_rootfs 1 config mount option target /home option device /dev/sda3 option fstype ext3 option options rw,sync option enabled 1 config swap option device /dev/sda1 option enabled 1 |
Перезагружаемся с подключенным Flash-диском и проверяем результат:
root@OpenWrt:/# df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% /rom tmpfs 14.5M 40.0K 14.5M 0% /tmp tmpfs 512.0K 0 512.0K 0% /dev /dev/sda2 129.1M 11.8M 110.7M 10% /overlay mini_fo:/overlay 1.9M 1.9M 0 100% / /dev/sda3 741.2M 16.8M 686.8M 2% /home root@OpenWrt:/# free total used free shared buffers Mem: 29732 15476 14256 0 1540 Swap: 72256 0 72256 Total: 101988 15476 86512 |
Теперь мы не ограничены размером внутренней Flash на роутере и можем ставить на его любые приложения.
Настроим возможность установки модулей из локального репозитария OpenWrt. Для этого используются команды:
$ opkg update — обновить список доступных пакетов $ opkg install — устновить пакеты |
Как это сделать:
1) Необходимо открыть доступ по ftp к директории — bin/brcm47xx/packages. Сделать это можно с помощью любого ftp-сервера (для примера — gadmin-proftpd).
2) В файле /etc/opkg.conf нужно закомментировать основной репозитарий и прописать свой:
src/gz localpackages ftp://(адрес сервера) |
3) Обновить список доступых пакетов:
root@OpenWrt:/# opkg update Downloading ftp://ftp:ftp@192.168.1.9/Packages.gz. Inflating ftp://ftp:ftp@192.168.1.9/Packages.gz. Updated list of available packages in /var/opkg-lists/localpackages |
4) Теперь можно устанавливать доступные пакеты по команде:
root@OpenWrt:/# opkg install имя пакета |
5) Также можно удалять:
root@OpenWrt:/#opkg remove --force-removal-of-dependent-packages имя пакета |