Previous Entry Share Next Entry
Возврат OpenWRT к начальной конфигурации
в галстуке
13407 wrote in ru_wrt

Для чего это нужно?



Бывает так, что вы конфигурили, конфигурили устройство и наконфигурили... Результат вышел не таким как ожидалось, а в ручную разбирать и вертать всё в зад - процесс непростой и долгий.
Или, как получилось в моём случае, (очень) ограниченный размер встроенной флэш-памяти закончился раньше, чем туда поместились все нужные пакеты. Проще вернуть всё одним решительным действием к изначальному состоянию, чем удалять пакеты по списку и разбираться с их зависимостями.
Для чего данный способ не подходит, так это для сброса забытого пароля. Для сброса настроек вам всё равно нужно зайти на устройство пользователем root по ssh, так что, забытый пароль так не сбросить!


Где же она, эта кнопка?



Вообще, я был практически уверен, что существует штатный механизм - команда для выполнения сброса конфигурации устройства. Однако, изучения списка команд и поиски по wiki проекта результата не дали.
Кажется, готового штатного решения вроде:
root@OpenWrt:~# restore-config-default

в OpenWRT нет.


Вся магия



Собственно, сам способ крайне прост:
root@OpenWrt:~# rm -rf /overlay/*
root@OpenWrt:~# sync 
root@OpenWrt:~# reboot

Устройство перезагрузится и вернётся в изначальное "чистое" состояние, такое же, как сразу после установки OpenWRT, это значит, что после этого вам нужно будет выполнить процедуру "первого входа": First Login.


Как это работает?



Для понимания как работает такая "чистка" конфигурации нужно понять устройство файловой системы OpenWRT (собственно, так этот метод и был обнаружен), в этом поможет изучение wiki-страницы The OpenWrt Flash Layout.
Вкратце, суть такова: корневая файловая система OpenWRT собирается из частей, которым выделены два раздела на флэш-памяти устройства (кроме этого есть несколько специальных разделов для загрузчика, ядра и т.д.).
Один раздел содержит доступную только для чтения SquashFS, при загрузке она монтируется в каталог /rom, она содержит базовый образ системы OpenWRT, который мы и получаем после установки.
Второй раздел содержит доступную для чтения и записи JFFS2, она при загрузке монтируется в каталог /overlay, изначально эта ФС пуста.
Далее, содежимое корневой ФС / получается путём проецирования содержимого /rom и наложения на него при помощи OverlayFS содержимого /overlay. Таким образом, далее отдельное существование /rom и /overlay игнорируется и работа идёт с корневой ФС /. При этом все изменения, которые происходят сохраняются на доступную для записи JFFS2, т.е. в /overlay, даже такие изменения, как удаление файлов содержащихся в исходной системе (/rom).
Вот список смонтированных ФС моего маршрутизатора:
root@OpenWrt:~# mount
rootfs on / type rootfs (rw)
/dev/root on /rom type squashfs (ro,relatime)
proc on /proc type proc (rw,noatime)
sysfs on /sys type sysfs (rw,noatime)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,noatime,size=14524k)
tmpfs on /dev type tmpfs (rw,noatime,size=512k,mode=755)
devpts on /dev/pts type devpts (rw,noatime,mode=600)
/dev/mtdblock3 on /overlay type jffs2 (rw,noatime)
overlayfs:/overlay on / type overlayfs (rw,noatime,lowerdir=/,upperdir=/overlay)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
none on /proc/bus/usb type usbfs (rw,relatime)

Это похоже на рисунок накрытый прозрачной плёнкой, на этой плёнке мы можем дорисовывать рисунок как захотим, даже закрашивать его и перерисовывать по-другому, при этом всё наши изменения происходят на прозрачной плёнке, и убрав её мы получим рисунок в его изначальном виде. Именно так мы и поступаем, удаляя содержимое /overlay.
Tags: ,

  • 1
этот совет годится тем у кого работают интерфейсы. а если у интерфейсов нет ip адреса и по ssh вообще ни как не подрубится.

Здравствуйте,

Подскажите пожалуйста:

root@OpenWrt:/etc/config# df -h
Filesystem                Size      Used Available Use% Mounted on
rootfs                  320.0K    232.0K     88.0K  73% /
/dev/root                 2.8M      2.8M         0 100% /rom
tmpfs                    14.3M    568.0K     13.8M   4% /tmp
tmpfs                   512.0K         0    512.0K   0% /dev
/dev/mtdblock3          320.0K    232.0K     88.0K  73% /overlay
overlayfs:/overlay      320.0K    232.0K     88.0K  73% /


Есть возможность откусить кусок у tmp и добавить его к overlay?
А то уж больно здоровый tmp вечно заполняемый на 4%, и уж больно мал overlay и никаких пакетов не доставить.

Спасибо.

  • 1
?

Log in