Aktualizacja oprogramowania OpenWrt (bez utraty zainstalowanych pakiet├│w)

Zawarto┼Ť─ç

Czy to zainstalowa┼ée┼Ť oprogramowanie OpenWrt od nowa, czy te┼╝ zaktualizowa┼ée┼Ť, to, mimo ┼╝e zrobi┼ée┼Ť kopi─Ö zapasow─ů ustawie┼ä, wszelkie doinstalowane pakiety nie zosta┼éy (nie zostan─ů) zachowane, przez co przywr├│cenie ustawie┼ä nie spowoduje, ┼╝e wszystko b─Ödzie tak jak by┼éo. Na razie jest to normalne zachowanie z OpenWrt. W zwi─ůzku z tym nale┼╝y pomy┼Ťle─ç, jak do tego podej┼Ť─ç, by aktualizacja i przywr├│cenie ustawie┼ä przebieg┼éa, tak jak oczekujemy, czyli razem z pakietami.

W zwi─ůzku z tym, przed aktualizacj─ů routera nale┼╝y wygenerowa─ç list─Ö zainstalowanych pakiet├│w, kt├│re b─Ödziemy musieli przywr├│ci─ç (zainstalowa─ç) przed przywr├│ceniem naszych ustawie┼ä z kopii zapasowej.

Instalacja czystego oprogramowanie OpenWrt to nie problem. Schody zaczynaj─ů si─Ö, jak chcemy zaktualizowa─ç obecnie zainstalowany do najnowszej dost─Öpnej wersji. W tym wypadku mamy mo┼╝liwo┼Ť─ç instalacji najnowszego oprogramowania wraz z zachowaniem ustawie┼ä (ale nie pakiet├│w) lub te┼╝ z przywr├│ceniem ustawie┼ä domy┼Ťlnych.

Osobi┼Ťcie zach─Öcam do instalacji (aktualizacji) bez zachowania ustawie┼ä oraz zacz─ů─ç od zera. Wszystko z tego wzgl─Ödu, gdy┼╝ je┼╝eli doinstalowali┼Ťmy pakiet, chocia┼╝by ten opisany tutaj DNS over HTTPS, to po ponownym uruchomieniu nasz internet nie b─Ödzie dzia┼éa─ç, gdy┼╝ obecne ustawienia w routerze b─Öd─ů pr├│bowa┼éy przekierowa─ç ruch przez pakiet, kt├│rego w systemie nie ma i wszystko zacznie si─Ö sypa─ç.

A wi─Öc jak zrobi─ç wszystko poprawnie? Ot├│┼╝ dokonamy tego w nast─Öpuj─ůcych krokach.

Jako ┼╝e ostatnio uda┼éo mi si─Ö zamieni─ç m├│j router ASUS RT-AC57U na bardzo pot─Ö┼╝ny Linksys WRT3200ACM, chcia┼éem przenie┼Ť─ç wszystko to, co mam ju┼╝ ustawione na ASUSÔÇÖie na LinksysÔÇÖa. Niestety, r├│┼╝nice w sprz─Öcie i plikach konfiguracyjnych powoduj─ů, ┼╝e nie wszystko jest takie ┼éatwe. Nie ma mo┼╝liwo┼Ťci zrobienia kopii na jednym i przywr├│ceniu (po wgraniu pakiet├│w) na drugim. Rozwi─ůzaniem jest zrobienie kopii na dw├│ch routerach i por├│wnanie plik├│w ze starego i pododawanie tego, czego brakuje do nowego. Mozolne rozwi─ůzanie, ale r├│wnie┼╝ dzia┼éa.

W obr─Öbie tego samego urz─ůdzenia wszystko przebiega─ç b─Ödzie wg powy┼╝szego schematu.

Drobna uwaga.
Je┼╝eli u┼╝ywacie tylko czystego oprogramowania OpenWrt i nie dodajecie ┼╝adnych dodatkowych pakiet├│w, to nie musicie si─Ö zag┼é─Öbia─ç dalej w m├│j wpis. W├│wczas instalujecie nowe oprogramowanie z zachowaniem bie┼╝─ůcych ustawie┼ä lub po prostu przywracacie ustawienia z zachowanej kopii zapasowej i wszystko dzia┼éa. Dalsze kroki s─ů przede wszystkim dla os├│b, kt├│re wykorzystuj─ů OpenWrt w jego rozszerzonych mo┼╝liwo┼Ťciach.

Zaczynamy.

Sprawdzone w wersji OpenWrt 21.02 oraz OpenWrt 22.03.

Mimo tego, ┼╝e wersja 22.03.z bazuje na Firewall4, poni┼╝sz─ů metod─ů mo┼╝emy z powodzeniem zaktualizowa─ç z 21.02.x do 22.03.x. Pakiet Firewall zostanie pomini─Öty (wraz z innymi niekompatybilnymi pakietami) i zast─ůpiony przez obecny ju┼╝ Firewall4. Nie musisz si─Ö przejmowa─ç tym, ┼╝e podczas przywracania pakiet├│w otrzymasz informacje o b┼é─Ödach.


Kopia zapasowa obecnych ustawień #

W pierwszej kolejno┼Ťci przechodzimy do panelu administracyjnego poprzez przegl─ůdark─Ö internetow─ů.

Tam wybieramy System > Backup / Flash firmware

OpenWrt - System Backup - Flash Firmware OpenWrt > System > Backup / Flash Firmware

W celu wykonania kopii zapasowej ustawie┼ä wystarczy w sekcji Kopii Zapasowej (Backup) klikn─ů─ç przycisk generowania archiwum (Generate archive).

OpenWrt - System Backup - Flash Firmware - Generate Archive OpenWrt > System > Backup / Flash Firmware > Generate Archive

Nim to jednak zrobimy, osobi┼Ťcie zalecam zmian─Ö ustawie┼ä, w celu rozszerzenia zakresu kopii zapasowej o dodatkowe foldery. Je┼╝eli u┼╝ywali┼Ťcie mojego poradnika m.in. jak doda─ç serwer VPN do waszego routera, w zak┼éadce Configuration dodajemy dodatkowe foldery.

/etc/ssl/
/etc/wireguard/
/etc/config/
/root/

OpenWrt - System Backup - Flash Firmware - Configuration OpenWrt > System > Backup / Flash Firmware > Configuration

Mimo ┼╝e domy┼Ťlnie kopia zapasowa wykonuje kopi─Ö zmodyfikowanych plik├│w w folderze /etc/config, osobi┼Ťcie preferuj─Ö posiadanie pe┼énej kopii tego folderu.

To co zdefiniowali┼Ťmy na tym etapie, zachowywane jest domy┼Ťlnie w pliku /etc/sysupgrade.conf podczas standardowej aktualizacji oprogramowania.

Dalej klikamy przycisk Zapisz (Save) i wracamy do zakładki Akcje (Actions) i generujemy nasze archiwum kopii zapasowej (Generate archive).


Wygenerowanie listy zainstalowanych pakiet├│w #

Maj─ůc ju┼╝ kopi─Ö zapasow─ů ustawie┼ä, pora na wygenerowanie listy pakiet├│w, kt├│re mamy zainstalowane w systemie. Zauwa┼╝, ┼╝e w poprzednim kroku doda┼éem folder /root/ do w┼é─ůczenia w zakres kopii zapasowej ustawie┼ä. W tym folderze mam zapisany plik, kt├│ry zawiera m.in. list─Ö pakiet├│w, kt├│r─ů zapiszemy za chwil─Ö.

W przypadku, gdy przenosimy ustawienia z jednego routera do drugiego, warto sobie t─Ö list─Ö skopiowa─ç i zapisa─ç, o czym r├│wnie┼╝ napisz─Ö.

A wi─Öc, aby wygenerowa─ç list─Ö zainstalowanych pakiet├│w, wykonujemy komend─Ö w terminalu SSH:

opkg list-installed > /root/my_installed_packages

Warto r├│wnie┼╝ zapisa─ç t─Ö list─Ö na komputerze lokalnym.

Nie b─Öd─Ö nie tu rozpisywa┼é jak to zrobi─ç r├│┼╝nymi metodami (inna dla innego systemu operacyjnego), gdy┼╝ jest to strat─ů czasu.

Owy plik, kt├│ry potrzebujecie, b─Ödzie zapisany w ┼Ťwie┼╝o wygenerowanej kopi zapasowej, z pierwszego kroku. Przejd┼║cie jeden krok wstecz i gotowe. Wystarczy rozpakowa─ç wasz backup przy pomocy Keka (dla macOS) lub 7Zip (dla Windows) i poszuka─ç go w folderze /root/. Proste!

Mo┼╝emy r├│wnie┼╝ wykona─ç polecenie:

cat /root/my_installed_packages

I metod─ů kopiuj/wklej, skopiowa─ç zawarto┼Ť─ç do pliku na naszym komputerze.


Aktualizacja oprogramowania OpenWrt z przywr├│ceniem ustawie┼ä domy┼Ťlnych #

Na tym etapie nie b─Öd─Ö rozpisywa┼é si─Ö, jak zainstalowa─ç oprogramowanie OpenWrt na waszym routerze, gdy┼╝ to zale┼╝y od sprz─Ötu, jaki u┼╝ywacie (odsy┼éam tutaj). Obstawiam, ┼╝e wasz router ma ju┼╝ zainstalowane oprogramowanie OpenWrt - czy to czyste, czy te┼╝ w innej wersji, kt├│r─ů b─Ödziecie chcieli zaktualizowa─ç.

Aktualizacji oprogramowania dokonujemy z poziomu System > Backup / Flash firmware, w sekcji Flash new firmware image.

OpenWrt - System Backup - Flash Firmware OpenWrt > System > Backup / Flash Firmware

Oczywi┼Ťcie wybieramy oprogramowanie przygotowane dla naszej wersji routera.

Wgrywamy przycisk do naszego routera i na odpowiednim kroku wybieramy CZY chcemy, czy te┼╝ nie, zachowa─ç ustawienia naszego routera (Keep settings and retain the current configuration). Osobi┼Ťcie preferuje ich NIE zachowywa─ç, gdy┼╝ w moim przypadku, z ustawionym DoH, nie b─Ödzie dzia┼éa─ç m├│j DNS, przez co nie b─Öd─Ö m├│g┼é wykona─ç nast─Öpnych krok├│w.

OpenWrt - System Backup - Flash Firmware - Uploading file OpenWrt > System > Backup / Flash Firmware > Uploading file

OpenWrt - System Backup - Flash Firmware - flash image OpenWrt > System > Backup / Flash Firmware > flash image

Mo┼╝ecie poeksperymentowa─ç, zachowuj─ůc ustawienia i przywracaj─ůc pakiety (nast─Öpny krok), pami─Ötaj─ůc jednak, ┼╝e po przywr├│ceniu poprzednio zainstalowanych pakiet├│w, mo┼╝liwe b─Ödzie, ┼╝e b─Ödziecie musieli przywr├│ci─ç i tak kopi─Ö zapasow─ů.


Przywr├│cenie pakiet├│w z poprzednio wygenerowanej listy #

Upewniaj─ůc si─Ö, ┼╝e posiadamy po┼é─ůczenie z internetem (domy┼Ťlnie musimy to zrobi─ç na kablu, gdy┼╝ WiFi z regu┼éy jest wy┼é─ůczone), przechodzimy do naszego routera za pomoc─ů terminala SSH:

ssh root@192.168.1.1 -p 22

W pierwszej kolejno┼Ťci zaleci┼ébym wykonanie aktualizacji pakiet├│w, kt├│re aktualnie znajduj─ů w systemie, ni┼╝ we┼║miemy nie za przywracanie. Dokonujemy tego za pomoc─ů komendy:

opkg update; opkg list-upgradable | cut -f 1 -d ' ' | xargs opkg upgrade

W niekt├│rych przypadkach powy┼╝sza komenda wy┼Ťwietli b┼é─ůd pobierania (Failed to download) lub te┼╝ zwr├│ci informacj─Ö, ┼╝e nie mamy po┼é─ůczenia z internetem (Check your network settings and connectivity).

W├│wczas nale┼╝y wykona─ç komend─Ö: opkg update osobno, zainstalowa─ç najnowsz─ů wersj─Ö wget za pomoc─ů opkg install wget oraz pobra─ç najnowsze certyfikaty CA wget --no-check-certificate -O /etc/ssl/certs/ca-certificates.crt http://curl.se/ca/cacert.pem.

W├│wczas powtarzaj─ůc powy┼╝sz─ů komend─Ö wszystko powinno zacz─ů─ç dzia┼éa─ç.

Pora na przywr├│cenie pakiet├│w.

Je┼╝eli zaczynamy wszystko od zera, nale┼╝y wygenerowa─ç plik my_installed_packages

touch /root/my_installed_packages

Nast─Öpnie przechodzimy do jego edycji.

vim /root/my_installed_packages

Klikaj─ůc klawisz “i” wchodzimy w tryb edycji. Teraz, za pomoc─ů Kopiuj/Wklej przenosimy zawarto┼Ť─ç naszego pliku z kopii zapasowej (lub te┼╝ w pliku do kt├│rego zapisali┼Ťmy zawarto┼Ť─ç my_installed_packages z poprzednich krok├│w). Po pomy┼Ťlnym wklejeniu zawarto┼Ťci klikamy przycisk Esc a nast─Öpnie wykonujemy “:w” w celu zapisania zawarto┼Ťci, oraz “:q” w celu opuszczenia edycji.

I tak mamy wszystko gotowe na przywr├│cenie pakiet├│w. Poni┼╝sza komenda por├│wna, to co jest ju┼╝ w naszym systemie z tym, co mamy w naszym pliku i zainstaluje, to co brakuje. Je┼╝eli w li┼Ťcie naszych pakiet├│w znajdzie si─Ö jaki┼Ť, kt├│ry jest niekompatybilny z aktualnym oprogramowaniem OpenWrt, zostanie on automatycznie pomini─Öty.

opkg update && opkg list-installed | cut -f 1 -d ' ' | sort -u > /tmp/currentpkg && cat /root/my_installed_packages | cut -f 1 -d ' ' | sort -u > /tmp/oldpkg && grep -v -F -x -f /tmp/currentpkg /tmp/oldpkg > /tmp/inst && opkg install $(cat /tmp/inst | sort -u) && rm /tmp/currentpkg /tmp/oldpkg /tmp/inst

Przywrócenie ustawień z kopii zapasowej #

Ostatnim krokiem będzie przywrócenie naszych ustawień z zapisanej kopii zapasowej.

OpenWrt - System Backup - Flash Firmware - firmware restore OpenWrt > System > Backup / Flash Firmware > firmware restore

Ponownie przechodzimy do System > Backup / Flash firmware i z pozycji przywracanie (Restore) wybieramy Upload archive, gdzie wskazujemy nasz plika zapisany na naszym komputerze, po czym potwierdzamy wszystko, gdy zostaniemy zapytani, czy zastosowa─ç zmiany (Apply backup?) przyciskiem Continue.

Uruchamiamy ponownie router (o ile nie nast─ůpi to po przywr├│ceniu ustawie┼ä) i sprawdzamy wszystko czy dzia┼éa.

Takim sposobem, na 99% wszystko powinno dzia┼éa─ç. Zawsze istnieje szansa, ┼╝e co┼Ť nie p├│jdzie, tak jak trzeba. Jak co┼Ť, dajcie zna─ç w komentarzach.


Credits: forum.openwrt.org/t/how-to-keep-packages-settings-after-upgrading/38998

Komentarze
Kategorie