# Aktualizacja jądra bez reboot'a

## kurak

Witam, tak jak w temacie, chodzi mi o aktualizację kernela bez rebootowania systemu, jest jakiś sposób żeby nowe jajo zaskoczyło bez odcinania ludzi od serwera?

edit:

Kiedyś było coś takiego jak

```
killall init -HUP
```

 czy jakoś tak, ale to w sumie nie przeładowywało do końca całego kernela.

----------

## Kurt Steiner

 *kurak wrote:*   

> Kiedyś było coś takiego jak
> 
> ```
> killall init -HUP
> ```
> ...

 ZTCW, to w ogóle nie dotyka kernela - to przeładowuje inita. Co do kernela, to od jakiegoś czasu istnieje taka możliwość, jednak musisz mieć dla niej wsparcie w kernelu wkompilowane. Nie pamiętam jak to się nazywa i nie mam jakichkolwiek informacji o skuteczności czy tym bardziej stabilności tego rozwiązania.

---Dodane:---

To o czym pisałem to chyba "kexec" i chyba jednak nie do końca pozwala na to co Cię interesuje.

----------

## Yatmai

Kexec raczej służy do zrobienia dumpa pamięci przy jakiejś grubszej awarii.

Inna rzecz, że ponoć się dało tak jajka podmieniać, niemniej operacja i tak była by krótsza od reboot'a jedynie o to co bios na początku knuje z kompem, a przez ten czas userzy i tak byli by odcięci.

----------

## Poe

ZTCW nie jest to mozliwe, ale glowy nie dam sobie uciąć.

----------

## Kurt Steiner

 *Yatmai wrote:*   

> Kexec raczej służy do zrobienia dumpa pamięci przy jakiejś grubszej awarii.
> 
> Inna rzecz, że ponoć się dało tak jajka podmieniać, niemniej operacja i tak była by krótsza od reboot'a jedynie o to co bios na początku knuje z kompem, a przez ten czas userzy i tak byli by odcięci.

 No właśnie wygooglałem, że to kexec robi.  :Smile: 

----------

## Yatmai

Generalnie jajek nie może pozwolić się wywalić z systemu (w sensie pamięci operacyjnej) bo była by to potencjalna luka dla robactwa i hakieróff  :Wink: 

----------

## Kurt Steiner

 *Yatmai wrote:*   

> Generalnie jajek nie może pozwolić się wywalić z systemu (w sensie pamięci operacyjnej) bo była by to potencjalna luka dla robactwa i hakieróff 

 Prawda, choć czytając kiedyś jakąś lakoniczną notkę, że udało się zrobić możliwość takiej podmianki, pomyślałem, że zostało to jakoś rozwiązane.   :Smile:  Będę pamiętał, żeby następnym razem szukać lepszych źródeł.  :Wink: 

----------

## vermaden

http://www.ibm.com/developerworks/linux/library/l-kexec.html

kexec pozwala na przeladowanie innego jajka bez sprzetowego reboota, bez biosu, bootloadera itd, ale userow chyba i tak rozlaczy, musialbys sprawdzic.

----------

## soban_

Czy cos sie zmienilo w tej kwestii? I czy ktos tego uzywa w praktyce?

----------

## joi_

pogooglaj za ksplice; kexec nie zachowuje stanu systemu po podmianie

----------

## znal

Ja używam kexec, ale rzadko mi się zdarza restart poza aktualizacją kernela, zwykle korzystam z hibernacji i nie ma takiej potrzeby. Kexec pozwala na pominięcie całej fazy POST, bootloadera i wczytywania się jądra do pamięci (na domyślnych opcjach). Wszystko poza tym jest tak jak przy zwykłym restarcie. Tzn. zaoszczędza się czas, który normalnie by upłynął od końca wyłączania do momentu zatwierdzenia opcji w bootloaderze + czas ładowanie się jądra do pamięci, ten ostatni myślę, że nie więcej niż 1-3 sek. (nie mierzyłem dokł.)

----------

## soban_

OK kexec juz przetestowalem dosyc dlugo i moge powiedziec ze jest fajnym sposobem na przeladowanie calego systemu. Jednak uslugi musza zostac pozamykane i uruchomine na nowo (w skrocie jest to szybszy troche reboot bez ladowania biosu etc). A co powiecie na temat ksplice o ktorym juz @joi_ wspomnial?

----------

## sebas86

Wiem, że propozycja trochę odbiega od pytania, ale... nie prościej byłoby skorzystać z wirtualizacji i w razie potrzeby przerzucić użytkowników na inną wirtualną maszynę? W między czasie tworzy się dodatkowy bufor na przetestowanie czy wszystko działa po aktualizacji.

----------

## soban_

Hmm, a jak daje dostep do ssh maszyny ktora jest postawiona bez wirtualizacji? Nie zajmuje sie tym profesjonalnie - bardziej aby pomoc innym w projektach etc nic z tego nie mam, dlatego nie uzywam jakis super poteznych maszyn do wirtualizacji. No na pewno jest to jakies rozwiazanie, ale ja nie wirtualizuje - chyba ze masz cos innego na mysli. Z reszta wirtualizacje tez musi jakas maszyna podtrzymywac, wiec chyba na pewnym etapie trzeba zaktualizowac tego kernela i tak (-: a co do testowania czy wszystko dziala - zawsze staram sie update zrobic na innych maszynach, zanim zrobie na tej ktora udostepniam. Zeby pozniej nie bylo watpliwosci podczas aktualizacji jak rozsadnie wspomniales.

----------

