В роутерах обычно небольшой объем памяти и при установке дополнительного софта она быстро заканчивается. Но если подключить к usb разъему флэшку то тогда количество дополнительных программ будет ограничено только объемом usb накопителя.
Подключаем usb flash диск к роутеру с OpenWrt
Для того чтобы добавить поддержку usb-flash устанавливаем дополнительные модули
opkg update opkg install kmod-usb-storage kmod-fs-ext4 block-mount
Подготавливаем usb-flash, на роутере нет ни необходимых утилит ни места чтобы их установить поэтому подключаем флэшку к компьютеру с linux.
Здесь и далее в качестве символьного имени диска я использую sdX. При выполнении команды надо подставить реальное имя диска. Чтобы его узнать можно посмотреть вывод dmesg после подключения usb-flash.
Пример вывода команды dmesg:
[89065.876377] usb 5-1.2: new high-speed USB device number 11 using ehci_hcd [89065.970696] usb 5-1.2: New USB device found, idVendor=058f, idProduct=6387 [89065.970700] usb 5-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [89065.970703] usb 5-1.2: Product: Mass Storage Device [89065.970705] usb 5-1.2: Manufacturer: JetFlash [89065.970707] usb 5-1.2: SerialNumber: FYZ178A2 [89065.971283] scsi18 : usb-storage 5-1.2:1.0 [89066.968029] scsi 18:0:0:0: Direct-Access JetFlash Transcend 4GB 8.07 PQ: 0 ANSI: 2 [89066.969187] sd 18:0:0:0: Attached scsi generic sg1 type 0 [89066.970456] sd 18:0:0:0: [sdc] 7843840 512-byte logical blocks: (4.01 GB/3.74 GiB) [89066.971013] sd 18:0:0:0: [sdc] Write Protect is off [89066.971014] sd 18:0:0:0: [sdc] Mode Sense: 03 00 00 00 [89066.971602] sd 18:0:0:0: [sdc] No Caching mode page found
В этом пример диск определился как sdc.
ВНИМАНИЕ!!! если указать имя неправильно, то можно потерять данные на жестком диске.
Отчищаем карту ( стираем таблицу разделов и т.д.)
dd if=/dev/zero of=/dev/sdX bs=512 count=100
Затем создаем первый раздел для файловой системы:
echo -e "n\np\n1\n\n\na\n1\nw" | fdisk /dev/sdX
Форматируем его в ext4
mkfs.ext4 -L rootfs /dev/sdX1
Теперь подключаем флэшку к роутеру.
Переносим систему на usb флеш накопитель. С этой целью монтируем диск и копируем на него все необходимое:
Монтируем первый раздел в /mnt/sda1
mkdir /mnt/sda1 mount /dev/sda1 /mnt/sda1
Монтируем корневую файловую систему в /tmp/root
mkdir /tmp/root mount --bind / /tmp/root
Копируем все файлы
tar -C /tmp/root -cvf - . | tar -C /mnt/sda1 -xvf - sync
Далее создаем конфигурационный файл /etc/сonfig/fstab
block detect > /etc/config/fstab
После чего приводим его к следующему виду (uuid менять не надо)
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 '/' option uuid '5807e2fb-05ae-4d94-b906-0330a84f2811' option enabled '1'
Презагружаемся и проверяем все ли у нас получилось командой df -h
Filesystem Size Used Available Use% Mounted on rootfs 3.5G 16.5M 3.3G 0% / /dev/root 2.3M 2.3M 0 100% /rom tmpfs 14.1M 56.0K 14.0M 0% /tmp /dev/sda1 3.5G 16.5M 3.3G 0% / tmpfs 512.0K 0 512.0K 0% /dev
Здесь видно что /dev/sda1 подмонтирован как корневой раздел «/» и используется как rootfs.
Здравствуйте. у меня вопрос- в какой формат роутер форматирует жесткий диск? он потом будет читаться на компе?
В данной статье диск форматируем в ext4, под виндой его не будет видно, только в линукс. Возможно заработает и с fat32 но я не пробовал.
Если нет необходимости переносить корневую файловую систему роутера на usb-диск то точно можно пользоваться fat32.