Установка Openwrt на компьютер

Обновлено: 21.11.2024

OpenWRT не имеет типичного процесса установки, такого как pfSense или IPFire. OpenWRT необходимо «прошить» на диск.

Если у вас есть маршрутизатор APU2, APU3 или APU4 и вы не хотите выполнять процедуру ручной установки, вы можете использовать автоматическую программу установки OpenWRT.

Простые пошаговые инструкции:

  1. Подготовьте загрузочный USB-накопитель Debian
  2. Подключите Debian USB к плате APU и загрузитесь
  3. загрузить образ OpenWRT на USB-накопитель Debian
  4. Запишите на SSD-накопитель образ OpenWRT
  5. Измените размер раздела OpenWRT, чтобы использовать все дисковое пространство.
  6. Загрузите OpenWRT с SSD

Подготовьте загрузочный USB-накопитель Debian

Это не обязательно должен быть Debian; вы можете использовать любой дистрибутив Linux. Мы рекомендуем Debian, потому что с его помощью относительно быстро можно создать живой USB-накопитель.

На момент написания я использовал файл debian-live-10.8.0-amd64-standard.iso. Вы можете увидеть более новую версию, но обязательно загрузите файл "-standard.iso".

Подключите последовательный кабель к APU, а кабель LAN к первому порту сетевой карты (ближайшему к последовательному порту), вставьте только что прошитый USB и загрузите систему.

Используйте putty для подключения к последовательному порту. Инструкции по Putty для Windows доступны здесь, а для macOS — здесь.

Подключите питание к APU для загрузки системы. Теперь ваш Debian Live USB должен загрузиться и отобразить загрузочное меню, как показано на снимке экрана ниже.


Выберите первый вариант и нажмите Tab. Добавьте «console=ttyS0,115200n8» в конец команды, чтобы можно было использовать последовательное соединение. Это должно выглядеть примерно так:


Пароль и имя пользователя для USB-накопителя Debian

имя пользователя: user
пароль: live

После входа в систему введите "sudo su", чтобы стать пользователем root.

Теперь вы должны войти в систему либо через ssh, либо через последовательный кабель, как показано выше. Убедитесь, что у вас подключен кабель WAN, чтобы у вас было подключение к Интернету.

Теперь вы можете загрузить последний образ OpenWRT отсюда http://archive.openwrt.org/releases/. Обязательно загрузите файл x86/64/combined-ext4.img.gz. Нам нужен образ с именем «combined-ext4.img.gz». Убедитесь, что вы получили образ ext4; в противном случае вы не сможете изменить размер раздела и использовать все дисковое пространство.

На момент написания последнего изображения было 19.07.5, поэтому моя команда wget выглядит так, как показано ниже.

Это должно произойти относительно быстро. После загрузки распакуйте его с помощью

Это должно создать файл с именем "openwrt-19.07.5-x86-64-combined-ext4.img" (без расширения .gz).

Прошить SSD образ OpenWRT

После загрузки образа вы можете прошить его на SSD с помощью следующей команды:

Это займет всего одну-две секунды, поскольку SSD работает относительно быстро.

Вывод должен выглядеть примерно так:

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

Измените размер раздела OpenWRT, чтобы использовать все дисковое пространство

Это необязательный шаг, но вы, вероятно, захотите это сделать. Когда мы прошивали образ OpenWRT, в таблице разделов уже было установлено около 270 МБ раздела для системы. Поскольку у нас есть диск объемом 16 ГБ, мы хотели бы использовать все пространство.

Убедитесь, что у вас установлен parted (apt-get install parted).

Загрузите свой USB-накопитель Debian и введите следующую команду, чтобы просмотреть таблицу patition:

Есть 2 раздела, один для загрузки, а другой для данных/системы. Мы хотим изменить размер последнего раздела, чтобы использовать все пространство.

Введите следующую команду, чтобы изменить размер раздела:

После завершения снова запустите предыдущую команду, чтобы убедиться, что все пространство теперь выделено для раздела

И теперь последний шаг — расширение файловой системы на этом разделе. Выполнить:

Обратите внимание, если вы обновите OpenWRT через веб-интерфейс до новой версии, этот шаг нужно будет выполнить снова.

Веб-интерфейс OpenWRT

Теперь вы сможете подключить второй порт OpenWRT к своему компьютеру и получить доступ к веб-интерфейсу.Отсюда вы можете перенастроить параметры WAN и LAN, а также установить все необходимое дополнительное программное обеспечение.

Рекомендуемые пакеты программного обеспечения

Когда мы устанавливаем OpenWRT на маршрутизаторы для клиентов, мы обычно устанавливаем драйверы и другие программные пакеты с помощью терминала, потому что это немного быстрее.

Вот пакеты, которые мы устанавливаем по умолчанию. Вы можете скопировать и вставить эти команды.

Если у вас есть Wi-Fi-адаптеры wle200nx, wle600vx или wle900vx, вам потребуются эти дополнительные пакеты.

Если у вас есть модем Quectel 4G, вам потребуются эти дополнительные пакеты

Если вы хотите запустить Wireguard, мы рекомендуем эти пакеты

А вот пакеты для OpenVPN (NordVPN и т. д.)

Если вы хотите обновить все пакеты, уже установленные в вашей системе, вы можете сделать это с помощью следующей команды.

Если в вашем маршрутизаторе есть Wi-Fi, вас также может заинтересовать наше руководство по настройке OpenWRT AccessPoint/WiFi

Если у вас есть модем LTE/4G, вам может пригодиться конфигурация OpenWRT 4G WAN.

Вы также можете найти дополнительные инструкции по оборудованию APU в официальной документации OpenWRT.

Совет: ознакомьтесь со многими похожими статьями в нашей базе знаний.

TekLager специализируется на продаже оборудования с открытым исходным кодом для создания маршрутизаторов, брандмауэров и других сетевых устройств.

Комплект беспроводной WiFi wle200nx

Комплект беспроводного WiFi TekLager Compex wle200nx для маршрутизаторов. Qualcomm Atheros AR9280. Хорошо работает с pfSense

Маршрутизатор APU2D0 и точка доступа 802.11ac 3×3 MIMO

APU4C4: 4x Gigabit LAN, четырехъядерный процессор, 16 ГБ SSD, 4 ГБ RAM

Маршрутизатор/брандмауэр TekLager APU4C4. 4x Gigabit NIC, четырехъядерный процессор, 16 ГБ SSD, 4 ГБ RAM. Совместимость с pfSense, IPFire, OPNSense и другими.

Небольшие сетевые маршрутизаторы, которые вы можете приобрести в магазине, хороши, но их нельзя обновить. Поскольку все меняется так быстро, это кажется благом только для производителей маршрутизаторов. Также быстро прекращаются обновления прошивки. Наличие маршрутизатора на ПК имеет больше смысла не только для возможности обновления аппаратного обеспечения, но и для добавления многих других программных функций. Вы не ограничены памятью или пространством маршрутизаторов в штучной упаковке. Нет ничего плохого в коробочных маршрутизаторах для установки под ключ. Если вы похожи на меня, вы хотите большего. Вот почему я также использую Openwrt.

Проделал это с исходным образом на Pentium2, и все заработало. Если вам нужен графический интерфейс, вам может потребоваться установить веб-надстройку.

Установка OpenWrt x86 на ПК. (Попробуйте это на свой страх и риск.)

Двоичный файл OpenWrt для x86.

Для Linux просто используйте dd.

Загрузите последний двоичный код с сайта загрузки OpenWrt.

dd if=openwrt-x86-2.6-ext2.image of=/dev/hda (где hda и имя образа должны быть изменены)

dd if=openwrt-x86-2.6-ext2.image of=/dev/sda (где hda и имя образа должны быть изменены)

Шаг 1. Добавление веб-интерфейса.

Как настроить и запустить OpenWrt через веб-интерфейс при запущенном базовом образе.

Отредактируйте конфигурацию сети «/etc/config/network» (предполагается статический адрес IPv4):

Загрузить обновленную конфигурацию локальной сети

Отредактируйте файл /etc/ipkg.conf. Добавьте последнюю строку (жирным шрифтом)

Обновите и установите webif

Установить webif

Шаг 2. Добавление места.

Для этого раздела требуется знание bash. Если вы не уверены, обратитесь за помощью к специалисту.

Корневой раздел официального образа x86 OpenWrt не очень большой, около 50 МБ. Многие считают его слишком маленьким после установки нескольких дополнительных пакетов. Здесь я расскажу о шагах по его расширению. Полученный образ можно использовать на живом USB-накопителе (см. Easy Live USB для x86 OpenWRT) или скопировать на жесткий диск.

Схема процедуры

  1. Получить несжатый образ диска.
  2. Увеличить изображение до нужного размера.
  3. Прикрепите файл изображения к петлевому устройству.
  4. Редактировать таблицу разделов изображения, чтобы увеличить корневой раздел
  5. Изменить размер файловой системы в корневом разделе
  6. Отсоедините изображение от петлевого устройства.

Все приведенные ниже команды выполняются в Bash.

Распаковать файл изображения

В качестве альтернативы вы можете просто скопировать файл изображения с живого USB-накопителя. Это избавит вас от необходимости восстанавливать пользовательские конфигурации.

Образ Pad-диска

Следующий шаг — использовать «dd», чтобы увеличить размер образа диска.

Эта команда добавляет 50 МБ нулей в конец образа диска: «if=/dev/zero» указывает dd копировать данные из /dev/zero; «bs=1M» устанавливает размер блока в 1 МБ (1024*1024 байта); «count=50» указывает dd скопировать 50 блоков.

Подключиться к циклическому устройству

Примечание. Все команды с этого момента до конца должны выполняться пользователем с привилегиями root.

Эти команды находят неиспользуемое петлевое устройство и присоединяют его к файлу изображения.

Первая команда использует «losetup -f» для поиска неиспользуемого устройства и сохраняет результат в переменной оболочки loop_dev. Команда «echo» показывает найденное устройство. Наконец, «losetup» подключает устройство к образу диска.

Редактировать таблицу разделов

Чтобы расширить раздел диска, его необходимо сначала удалить. Затем вместо него создается новый, больший раздел. Этот новый раздел должен начинаться с того же сектора, что и старый, чтобы предотвратить потерю данных.

fdisk используется для управления таблицей разделов диска.

Опция -u запрашивает у fdisk список разделов в секторах. Опция -c указывает fdisk работать в режиме совместимости с DOS. $loop_dev — это петлевое устройство, прикрепленное к файлу изображения.

Чтобы просмотреть существующие разделы, введите «p» в командной строке fdisk.

fdisk показывает, что /dev/loop3 имеет 209839 секторов. В нем также перечислены два раздела. Первый, /dev/loop3p1, представляет собой небольшой загрузочный раздел. Второй, /dev/loop3p2, является корневым разделом. Корневой раздел начинается с сектора 9135. Запишите этот номер.

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

Изменить размер корневой файловой системы

Следующие команды расширят корневую файловую систему до размера корневого раздела.

Команда «kpartx -a» создает узлы устройств для разделов в образе диска. Вывод «kpartx –a» («mknod for loop3p1 failed») кажется ошибкой в ​​моей системе. Насколько я могу судить, создание и удаление loop3p1 происходит нормально.

Еще одно замечание: kpartx и fdisk используют разные соглашения об именах. kpartx использует «/dev/mapper/device_name», например «/dev/mapper/loop3p1». fdisk использует «/dev/имя_устройства», например «/dev/loop3p1». Это связано с тем, что kpartx работает с устройством сопоставления устройств.

Теперь запустите «fsck», чтобы проверить файловую систему перед изменением ее размера. На самом деле размер некоторых файловых систем нельзя изменить, пока они не будут проверены.

Опция "-f" вызывает запуск, даже если файловая система кажется чистой.
Наконец, измените размер корневой файловой системы.

После изменения размера «kpartx -d» отменяет изменения, сделанные «kpartx -a».

Отключиться от циклического устройства

Последний шаг – отсоединение файла изображения от петлевого устройства.

Шаг 3. Портативный Openwrt.

После создания моего живого USB OpenWRT (Easy Live USB для x86 OpenWRT) я хотел использовать его на старом ПК, но столкнулся с проблемой: его BIOS не поддерживает загрузку с USB. У меня было два варианта. Один из них заключался в том, чтобы загрузить Linux с компакт-диска, а затем переключиться на USB-накопитель. Другой заключался в том, чтобы получить загрузчик компакт-диска, который может читать USB-накопители. Не желая больше работать, я отправился на поиски и нашел Plop Boot Manager. Это очень впечатляет. Компактный, но полный функций. Он справляется с мультизагрузкой. Работает со многими загрузчиками. Он может загружать ОС с USB или компакт-диска без поддержки BIOS. У него даже отличный графический интерфейс, напоминающий аркадные видеоигры. И это бесплатно. Посмотрите.

Но если вы просто хотите приступить к делу, у меня есть готовый образ компакт-диска (plpbt_hiddenusb.iso на моем SkyDrive). Просто вставьте компакт-диск и подключите USB-накопитель. Plop Boot Manager сделает все остальное.

Шаг 4:

Gargoyle (ответвление Openwrt), работающее как x86 с использованием Qemu.

Шаг 5: Первый компьютер с X86 Openwrt, который у нас был.

Отрывок из моего блога:

Обновите openwrt для ПК (x86).

Все больше и больше пластиковых маршрутизаторов, которые вы получаете от розничных продавцов, ограничивают вас от установки сторонней прошивки, чтобы сделать устройство более ценным. Так что это хорошо, что вы можете вернуть старый компьютер к работе и установить ту же прошивку, которую вы бы установили на купленные в магазине маршрутизаторы. Кроме того, с ПК вы можете поменять сетевые карты на лучшие, не приобретая совершенно новую систему.

Достал из шкафа компьютер, который использовал в качестве маршрутизатора, и обнаружил, что кое-что изменилось. Я просто пошел дальше и установил в систему последний образ openwrt kamikaze. Что есть в системе? Intel PII 266 МГц с 192 мегабайтами оперативной памяти. Жесткий диск openwrt всего 2 гига.Подумываю об использовании другого чехла. Фактически система имеет два диска. один с минимальным Debian Linux, чтобы иметь возможность получить последний образ или dd (или установить) на диск openwrt. Диск Debian linux обычно остается неподключенным.

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

Было несколько изменений и несколько особенностей. Когда я запустил систему, казалось, что она не видит wan (интернет). поэтому мне пришлось сделать пару вещей.

настройка интерфейса замыкания на себя
опция ifname lo
опция proto static
опция ipaddr 127.0.0.1
опция сетевая маска 255.0.0.0

config interface lan
option ifname eth0
option type bridge
option proto static
option ipaddr 192.168.6.1
option netmask 255.255.255.0

config interface wan
option ifname eth1
option proto dhcp

Сначала мне пришлось добавить интерфейс wan в файл /etc/config/network. Это последние три строчки. затем мне пришлось вызвать интерфейс с помощью: (ifup wan)

Я также изменил IP-адрес локальной сети по умолчанию с 192.168.1.1 на 192.168.6.1, чтобы не мешать моей локальной сети.

локальная сеть 192.168.1.x) > маршрутизатор > частная сеть (192.168.6.x)

Затем произошли изменения в некоторых командах. Раньше вы использовали ipkg, поэтому теперь, чтобы обновить систему, которую вы будете использовать (opkg заменил ipkg):

Вы можете использовать ssh root@openwrtbox и делать все удаленно из командной строки.


Пока все хорошо. Затем я попытался получить доступ к веб-интерфейсу удаленно. Не получилось, поэтому пришлось установить веб-интерфейс к системе. На самом деле их три на выбор. Я выбрал Luci или первый из списка, предложенного в примечаниях по установке. Для этого вам нужно добавить репозиторий (откуда брать файлы). Итак, вы добавляете этот репозиторий в файл /etc/opkg.conf. В данном случае это была всего одна строка или последняя строка в файле:

Теперь вы сообщаете системе, что файл изменился, поэтому снова делаете следующее:

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

В этот момент не мешало бы сделать перезагрузку. После этого вы сможете увидеть веб-страницу маршрутизатора.

Круто! Почти забыл. Если у вас есть более одного компьютера для подключения к маршрутизатору, вам потребуется коммутатор.

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

Шаг 6. Почти встроенный

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

Шаг 7. Точка доступа.

Я не знаю, что в версии open wrt для ПК есть диски для большого количества карт для ПК, но я смог, по крайней мере, использовать следующее, чтобы увидеть, выдержит ли версия для ПК установку.

OpenWrt может работать на обычном ПК, виртуальной машине или серверном оборудовании и использовать преимущества гораздо более мощного оборудования, предлагаемого архитектурой x86 (Intel/AMD).

Загрузить образы дисков

Перейдите сюда, выберите версию выпуска, затем нажмите на цель, а затем на x86. Вы увидите разные цели.

64 предназначен для современного аппаратного обеспечения ПК (любого начиная с 2007 г.), он создан для компьютеров с 64-разрядной поддержкой и поддерживает современные функции ЦП. Выберите этот вариант, если у вас нет веских причин не делать этого.

Generic предназначен только для 32-разрядного оборудования (либо старого оборудования, либо некоторых процессоров Atom), должен иметь архитектуру i686 Linux, будет работать на Pentium 4 и более поздних версиях. Используйте это, только если ваше оборудование не поддерживает 64-разрядную версию.

Наследие предназначено для очень старого аппаратного обеспечения ПК, Pentium MMX, который называется i586 в поддержке архитектуры Linux. В нем будет отсутствовать множество функций, которые вам нужны/нужны на современном оборудовании, таких как многоядерная поддержка и поддержка более 4 ГБ ОЗУ, но на самом деле оно будет работать на устаревшем оборудовании, а другие версии — нет.

Geode — это настраиваемая устаревшая цель, настроенная для SoC Geode, которые до сих пор используются во многих (стареющих) сетевых устройствах, таких как старые платы Alix от PCEngines.

Теперь вы увидите различные предлагаемые файлы, следующие два – образы дисков, которые вы можете скачать и использовать:

squashfs-combined.img.gz В этом образе диска используется традиционная структура OpenWrt, корневая файловая система squashfs, доступная только для чтения, и раздел для чтения и записи, в котором хранятся устанавливаемые вами настройки и пакеты.Из-за того, как собран этот образ, у вас будет всего около 230 МБ места для хранения дополнительных пакетов и конфигурации, а extroot не работает.

ext4-combined.img.gz Этот образ диска использует один раздел ext4 для чтения и записи без корневой файловой системы squashfs только для чтения, что позволяет увеличить раздел. Такие функции, как Failsafe Mode или Factory Reset, будут недоступны, поскольку для их работы требуется раздел squashfs только для чтения. Он имеет загрузочный и корневой разделы, а также область MBR с обновленным GRUB2.

ext4-rootfs.img.gz Это эквивалентный образ раздела без загрузочного раздела, который можно установить без переопределения MBR.

rootfs.tar.gz Содержит все файлы из корневого раздела. его можно извлечь в корневой раздел без необходимости перезаписи раздела. Во избежание конфликтов настоятельно рекомендуется удалить все скрипты и скомпилированные файлы перед извлечением.

Поддержка оборудования

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

Некоторые изображения поддерживают ввод с клавиатуры, который можно использовать для настройки OpenWrt.

Для связи через последовательный порт ПК вам понадобится "нуль-модем", также известный как "перекрестный" последовательный кабель, для подключения последовательного порта устройства к последовательному порту вашего ПК.

Чтобы иметь возможность подключиться к вашему устройству, образ должен поддерживать оборудование Ethernet.

Образы Geode поддерживают аппаратное обеспечение Geode, поэтому, если у вас есть плата на базе Geode, все будет в порядке.

Поддержка твердотельных накопителей NVMe доступна начиная с OpenWrt 21.02.

Установка

Установка состоит из записи необработанного образа диска на диск, с которого будет загружаться система OpenWrt. Это может быть USB-накопитель, USB-кардридер с SD-картой или жесткий диск SATA или SSD (рекомендуется). Вы можете сделать это либо на дополнительном ПК, либо загрузив маршрутизатор с помощью Live CD/USB.

ВНИМАНИЕ: запись необработанных файлов изображений УДАЛЯЕТ содержимое диска, на который вы их записываете, убедитесь, что вы не удаляете ничего важного и что вы выбрали правильный диск.

Windows/macOS

Если вы используете Windows/macOS, вам понадобится программа для извлечения необработанного образа диска из загруженного вами сжатого архива. Затем вам нужно будет открыть необработанный файл образа с помощью программы, которая может записать его на диск, на который вы хотите установить OpenWrt.

Хорошим бесплатным архиватором с открытым исходным кодом, который вы можете использовать, является 7zip или Keka.

Хорошей бесплатной программой записи необработанных образов дисков с открытым исходным кодом, которую вы можете использовать, является Win32 Disk Imager или Etcher.

Линукс

Извлеките файл изображения из архива. Большинство разумных дистрибутивов позволят вам сделать это, щелкнув правой кнопкой мыши, а затем выбрав «извлечь», или вам придется открыть свой графический менеджер архива и сделать это оттуда. Затем запишите файл образа, который вы извлекли, на диск, на который вы хотите установить OpenWrt. Многие дистрибутивы включают в себя приложение для записи образа диска, такое как GNOME Disks. Определите диск, на который вы хотите записать образ, например. sda, sdb, sdc и т. д. и запишите образ с помощью инструмента dd, используя ранее определенное имя диска. Обратите внимание, что вы должны получить права администратора с помощью sudo и записывать на диск (sda, sdb), а не на раздел (sda1, sdb3).

Установка OpenWrt на внутренний диск

Если вы хотите записать OpenWrt на диски Sata или IDE, CF-карты или SD-карты, вы можете просто удалить их из устройства и записать необработанный образ с вашего ПК. Также иногда eMMC является съемным или может быть переведен в «режим записи USB» на некоторых устройствах.

Но если вы не можете извлечь накопитель из устройства (или у вас нет адаптера для их подключения к ПК), вы можете записать OpenWrt на USB-накопитель (или другой съемный накопитель), после чего его можно будет вставить в USB-порт или слот. При загрузке выберите диск, на который вы установили OpenWrt.

Затем вам нужно определить, как вызывается внутреннее запоминающее устройство с помощью lsblk или dmesg:

Имейте в виду, что вы также увидите USB-накопитель или устройство хранения, на котором вы временно установили OpenWrt.

Например, это вывод USB-накопителя объемом 4 ГБ с двумя разделами, которому было присвоено имя /dev/sda:

После того, как вы определили встроенное хранилище, в которое хотите установить OpenWrt, вы можете следовать приведенным выше инструкциям по установке Linux. Затем выключите систему, отсоедините съемное запоминающее устройство, которое вы использовали для установки OpenWrt, и снова включите питание. Теперь он должен загружаться с внутренней памяти.

Макет разделов

В образе x86 используется следующая структура разделов (если смотреть изнутри устройства):

/dev/sda2 — это раздел размером 256 МБ, содержащий корневую файловую систему squashfs и файловую систему f2fs с возможностью чтения и записи ИЛИ корневую файловую систему ext4 (в зависимости от выбранного образа).

Любое дополнительное пространство на устройстве не распределено.

Изменение размера разделов

Обязательно измените размер образа перед изменением размера разделов при установке на ВМ.

Используйте fdisk для создания нового раздела 2, выберите/введите адрес начального сектора, который вы записали ранее (так как по умолчанию он попытается поместить его в другое место), и оставьте адрес конечного сектора по умолчанию (это будет означать, что раздел теперь будет использовать все доступное пространство).

Записать изменения таблицы разделов на диск. Он может жаловаться на уже существующие подписи разделов, напишите n, чтобы НЕ удалять подпись раздела, чтобы продолжить.

Пример операции fdisk на флешке 8 ГБ:

Обязательно обновите UUID раздела GPT в конфигурации GRUB при использовании efi.img.gz:

Изменение размера файловой системы

Обязательно измените размер разделов перед изменением размера файловой системы. Обратите внимание, что онлайн-изменение размера должно работать как для F2FS, так и для Ext4 на OpenWrt 19.07, хотя F2FS требует перезагрузки для применения изменений.

Изменение размера оверлея F2FS

Изменить размер оверлея F2FS для squashfs-combined.img.gz:

Изменение размера rootfs Ext4

Изменить размер rootfs Ext4 для ext4-combined.img.gz:

Добавление дополнительных разделов

Когда OpenWrt устанавливается на машину x86 с использованием generic-ext4-combined.img.gz, таблица разделов диска перезаписывается, что означает удаление любого существующего раздела. Любое оставшееся пространство будет нераспределено, и на диске будет обычная таблица разделов MBR.

Для создания дополнительных разделов на диске можно использовать любой инструмент управления разделами, поддерживающий MBR и ext4, например fdisk, GParted.

Но необходимо уделить внимание будущим обновлениям. Если добавлены дополнительные разделы, вы больше не можете использовать образы -combined.img.gz, потому что запись этого типа образа переопределит таблицу разделов диска и удалит все существующие дополнительные разделы, а также вернет загрузочный раздел и раздел rootfs к размеру по умолчанию.< /p>

Обновление

На большинстве встроенных устройств обновление OpenWrt намного проще, чем первая установка, и состоит из простого выполнения sysupgrade. С другой стороны, на машинах x86 обновление сложнее, чем первая установка.

Одним из преимуществ x86 является простота резервного копирования и восстановления дисков с помощью любого обычного инструмента резервного копирования, поддерживающего MBR и ext4. Всегда делайте надлежащую резервную копию всего диска и проверяйте его восстановление перед любой процедурой обновления. Также рекомендуется восстановить резервную копию на виртуальной машине и выполнить обновление на ней перед обновлением реального маршрутизатора, чтобы изучить и поэкспериментировать с процедурами, не рискуя реальной машиной.

Во всех процедурах в этом разделе мы должны либо подключить диск к дополнительному ПК под управлением Linux, либо загрузить маршрутизатор с Linux Live CD/USB.

Если для установки вы использовали образ типа ext4-combined.img.gz, существует 4 варианта обновления:

Записать новый образ ext4-combined.img.gz: это самый простой вариант, он идентичен первой установке: все данные, конфигурации, пакеты и лишние разделы будут удалены, и вы получите совершенно новую систему OpenWrt с пакеты и конфиги по умолчанию. Затем вы можете переустановить все пакеты и скопировать файлы конфигурации обратно и создать дополнительные разделы.

Использовать sysupgrade: это процедура обновления по умолчанию, но наименее рекомендуемый вариант для компьютеров x86. Перейдите к Sysupgrade для получения подробной информации.

Извлечение образа загрузочного раздела из ext4-combined.img.gz и запись его вместе с ext4-rootfs.img.gz, оставляя таблицу разделов MBR нетронутой.

Извлечение образа загрузочного раздела из ext4-combined.img.gz и его запись, а затем распаковка rootfs.tar.gz в существующий раздел rootfs.

Две последние опции требуют выполнения большего количества шагов, но их преимущество заключается в том, что раздел MBR остается нетронутым, что позволяет сохранить размеры загрузочного раздела и раздела rootfs (в случае их изменения) и любых дополнительных разделов. В настоящее время они являются наиболее рекомендуемыми методами обновления. Единственным исключением является случай, когда новый образ OpenWrt содержит более новую версию GRUB2. Часть GRUB2 хранится рядом с MBR и за пределами области разделов, поэтому нам нужно написать полный ext4-combined.img.gz для его обновления.

Извлечение образа загрузочного раздела

Загрузочный раздел содержит часть программного обеспечения GRUB2, ядро ​​Linux и файл grub.cfg с параметрами загрузки. Раздел rootfs содержит файлы, пакеты и конфигурации OpenWrt.

На данный момент не создается отдельный файл образа с загрузочным разделом, так как он доступен для rootfs. Чтобы иметь возможность обновить загрузочный раздел, не переопределяя весь диск, мы должны извлечь его из ext4-combined.img.gz, для этого требуется запасной пустой диск или виртуальная машина.

Обновление раздела rootfs

Как сказано выше, есть 2 варианта обновления раздела rootfs, когда мы используем файловую систему ext4, а не squashfs: запись образа ext4-rootfs.img.gz или распаковка rootfs.tar.gz в существующий раздел.

Запись ext4-rootfs.img.gz удалит все файлы в разделе. При использовании dd он сохранит фактический размер раздела, а не вернет его размер к размеру изображения.

Для распаковки rootfs.tar.gz, мы должны смонтировать раздел rootfs, удалить из него все файлы, а затем распаковать обновленные файлы.

Может возникнуть соблазн не удалять файлы конфигурации, но риск того не стоит, поскольку некоторые файлы могут конфликтовать и не обновляться должным образом. Безопаснее сделать резервную копию файлов конфигурации (поскольку мы также должны сделать резервную копию всего диска перед обновлением) и скопировать их обратно после обновления. Я предлагаю пойти дальше и иметь репозиторий Subversion на другом компьютере, где сохраняются все файлы конфигурации и отслеживаются их изменения, и использовать rsync для синхронизации между рабочей копией репозитория и производственными файлами на маршрутизаторе.

Создание собственного образа с большим размером раздела

Каждый может скомпилировать OpenWrt из исходного кода, но это сложная процедура с множеством опций, требующая определенного опыта, особенно для ее использования на рабочем маршрутизаторе.

В отличие от компиляции, мы можем создать собственный пользовательский образ с помощью Image Builder. Это не компилирует все программное обеспечение, вместо этого загружает необходимые пакеты из того же репозитория, который используется OpenWrt для их установки. Image Builder создает те же файлы образов, которые используются для установки и обновления OpenWrt.

Поскольку это намного проще, чем компиляция, и предлагает большие преимущества, такие как добавление непосредственно в образ всех необходимых нам пакетов, удаление ненужных, а также добавление в него наших файлов конфигурации. Имея пакеты на образе, нам не нужно переустанавливать их все после обновления. И имея наши файлы конфигурации прямо на образе, нам не нужно перенастраивать все или копировать все файлы из резервной копии, что особенно сложно, когда сетевые конфигурации по умолчанию не работают с интерфейсами нашего маршрутизатора или он запускается с неправильным IP адрес. Во многих случаях OpenWrt будет полностью работать при первой загрузке после обновления.

Еще одно преимущество создания пользовательского образа заключается в том, что размер раздела rootfs по умолчанию слишком мал для хранения всех пакетов, и нам нужно изменить его размер. Обратите внимание, что при выполнении описанных выше процедур установки, изменения размера раздела и обновления путем записи образа раздела или извлечения rootfs.tar.gz нам не нужно создавать образ с окончательным размером раздела. Это приведет к слишком большому размеру файла изображения и потребует достаточно оперативной памяти для хранения всего файла во время сборки. Рекомендуется использовать образ, достаточный для хранения всех пакетов плюс небольшое количество свободного места.

Следуйте руководству по Image Builder, чтобы настроить среду построения с использованием цели x86/64. После настройки среды сборки мы используем команду make image для создания образа, в результате чего получается набор файлов с типами изображений, описанными на этой странице. Они сохраняются в папке bin/targets/x86/64 внутри папки сборки.

Поскольку оборудование x86 не имеет профилей, нам не нужно использовать параметр PROFILE. С помощью параметра PACKAGES мы устанавливаем все пакеты, которые мы хотим добавить или удалить из списка по умолчанию. Команда make info выводит список пакетов по умолчанию. Параметр FILES используется для добавления пользовательских файлов конфигурации и скриптов в образ, он указывает на папку, которая представляет собой корневую папку при запуске OpenWrt.

Для изменения размеров разделов по умолчанию используйте параметры CONFIG_TARGET_KERNEL_PARTSIZE и CONFIG_TARGET_ROOTFS_PARTSIZE . Мы можем либо отредактировать файл .config в папке сборки, либо передать их напрямую для создания образа. Пример CONFIG_TARGET_KERNEL_PARTSIZE=128 CONFIG_TARGET_ROOTFS_PARTSIZE=512 .

Это очень краткое руководство по установке OpenWRT на обычный компьютер. Предполагается, что вы разбираетесь в Linux. Если вы нашли это и нуждаетесь в дополнительной информации, пожалуйста, подпишитесь и напишите в чат. о, подождите, это не YouTube, просто комментируйте.

Вот как я получил OpenWRT на Mini ITX Intel DH67CF с процессором Intel G870 и 4 ГБ ОЗУ.

Что вам понадобится

  • 2 USB-накопителя.
  • Живой ISO-образ Linux
  • Последний образ OpenWRT в сочетании с ext4
    • На момент написания этой статьи это версия 18.6.2.

    Используйте dd и создайте свой живой ISO-образ Linux.

    Отформатируйте второй USB-накопитель ext4, затем заархивируйте комбинированный образ ext4, а затем скопируйте его на USB-накопитель.

    Загрузитесь с живого USB-накопителя Linux.

    Вставьте второй USB-накопитель после полной загрузки Linux.

    Используйте dd, чтобы записать комбинированный образ ext4 на жесткий диск.

    После завершения dd откройте gparted и измените размер второго раздела примерно до 4 ГБ.

    Перезагрузитесь, удалив USB-накопители.

    Grub должен автоматически загрузиться в OpenWRT.

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

    Отредактируйте файл /etc/config/network с помощью vi .

    Вам нужно изменить сетевой интерфейс, присвоив ему статический IP-адрес в вашей сети.

    Вот, например, мой:

    Затем выполните перезагрузку сервисной сети, и вы сможете пропинговать свой шлюз и внешнюю сеть.

    Теперь вы сможете получить доступ к графическому интерфейсу с любого компьютера в той же подсети.

    opkg установить vim-full nano usbutils pciutils

    opkg установить bash

    Отредактируйте /etc/passwd и измените свою оболочку на /bin/bash .

    Мне нравится иметь раздел /root большего размера и раздел подкачки .

    opkg install fdisk kmod-fs-ext4 e2fsprogs swap-utils блочное монтирование

    Используйте fdisk -l, чтобы получить список разделов.

    Должно отображаться что-то вроде этого:

    Здесь используйте fdisk /dev/sda . Создайте новый основной раздел размером с вашу оперативную память для вашего свопа. Затем создайте вторичный первичный раздел для вашего раздела /root. Запишите изменения и снова выполните команду fdisk -l. Должно отображаться что-то вроде этого:

    Отформатируйте sda4 как ext4 с помощью mkfs.ext4 /dev/sda4 , затем создайте область подкачки sda3 с помощью mkswap /dev/sda3 , затем подкачивайте на /dev/sda3 .

    Просмотрите свою память и подкачку с помощью free -k .

    Смонтируйте sda4 в /root , смонтируйте /dev/sda4 /root .

    Включить fstab с помощью:

    Создайте свой fstab с помощью

    Отредактируйте свой fstab с помощью vi , сделайте так, чтобы ваши UUID не были полностью нулевыми.

    Теперь перезагрузитесь, и ваше монтирование и подкачка должны быть готовы к работе.

    opkg установить блокировщик рекламы luci-app-adblock

    Перезагрузите luci, и вы должны найти Adblock в разделе "Услуги".

    Создайте ключи ssh.

    Добавьте свой ключ ssh на github.

    Git не будет корректно работать с ssh с сервера, это обходной путь.

    Отредактируйте свой .profile и добавьте:

    Затем укажите источник .profile .

    Теперь вы сможете подключиться к github.

    PavelSosin-320 прокомментировал 11 марта 2020 г.

    А как насчет MS WSL 2.0?

    прокомментировал pjobson 12 марта 2020 г.

    @PavelSosin-320 Я перестал пользоваться Windows до того, как это стало реальностью, тогда я все еще пользовался CYGWIN. Если у WSL есть dd, вы, вероятно, можете записать образ OpenWRT на жесткий диск. Кажется, что установка Windows на USB-накопитель, загрузка с него и выполнение работы в WSL — это долгий путь. Я использую загрузочную флешку Linux, потому что это быстро и просто.

    Я записываю для себя такие небольшие указания, чтобы в будущем мне не пришлось их заново разгадывать. Вероятно, есть много способов выполнить эту установку, это лишь один из них.

    Просто будьте осторожны с dd , вы действительно можете испортить свою операционную систему и потерять данные, если не будете осторожны.

    PavelSosin-320 прокомментировал 13 марта 2020 г.

    Спасибо, но я ищу решение для текущей ситуации, а не гипотетическое.
    У меня Windows 10 с WSL 2.0, т. е. я могу установить и запустить любой дистрибутив Linux в формате ISO, созданный в соответствии с рекомендациями Microsoft. У меня нет и я не использую какое-либо неуправляемое запоминающее устройство, только диск моего ноутбука и память моего телефона.
    У меня есть одна сеть WiFi на основе маршрутизатора Technicolor с пропускной способностью от 50 до 400 МГц в зависимости от типа устройства и расстояния от маршрутизатора. Мой маршрутизатор обеспечивает как DLNA, так и SMB, если я смотрю на его веб-интерфейс конфигурации. На моих телефонах установлены как стандартные DLNA-плееры Android, так и стандартные клиенты Android SMB (X-File). Оба клиента обнаруживают, подключаются и взаимодействуют со службами на моем маршрутизаторе. Мой Samsung Smart TV под управлением Samsung Tizen (неизвестный мне дистрибутив Unix) обнаруживает DLNA на моем маршрутизаторе и связывается с ним.
    Цель: добавить хранилище NAS в мою локальную сеть Wi-Fi по цене менее 40 долларов США за Тб с использованием внешнего диска, подключенного к моему маршрутизатору, и его службы SMB.
    Тест: спросите моего интернет-провайдера, который поставил мне маршрутизатор Technicolor с проприетарным программным обеспечением на основе OpenWRT, и установите его как дистрибутив WSL. Установите последний стабильный дистрибутив OpenWRT как дистрибутив WSL. Протестируйте все мои клиенты с серверами DLNA и SMB без добавления какого-либо избыточного оборудования.
    Надеюсь, это будет хорошим аргументом, чтобы попросить моего интернет-провайдера срочно обновить прошивку на моем роутере в связи с ремонтом оборудования, а не ждать несколько месяцев, пока следующая проприетарная версия, возможно, будет продана/сдана в аренду как новая модель.

    прокомментировал pjobson 13 марта 2020 г.

    Я не думаю, что вы можете использовать OpenWRT как дистрибутив WSL, при этом мои знания о WSL бесконечно малы.

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

    Я использую Plex для хранения и потоковой передачи мультимедиа, на это и направлена ​​суть вышеизложенного, но она может дать вам некоторые идеи о том, как структурировать вашу сеть в соответствии с вашими потребностями.

    Читайте также: