Hogyan patch a rendszermag újraindítás nélkül livepatch, kpatch és kanonikus livepatch szolgáltatás

Hogyan patch a rendszermag újraindítás nélkül livepatch, kpatch és kanonikus livepatch szolgáltatás

A cég Canonical most bevezetett szolgáltatás Canonical Livepatch Service. Lehetővé teszi, hogy patch újraindítása nélkül Ubuntu kernel.

További részletek a néhány fejlett eszközök hozzáadásával tapaszok lesz szó ebben a cikkben.

A legegyszerűbb példa: livepatch


Kezdjük egy nagyon egyszerű kísérletet. Ehhez szükségünk van bármilyen Linux kernel c 4.0 vagy magasabb (ebben az esetben Ubuntu 16.04; a továbbiakban mind példák a parancsok kifejezetten erre a forgalmazás). Az új verzió a kernel függvény, hozzátéve tapaszok „on the fly” (ezt hívják - livepatch) alapértelmezés szerint engedélyezve van.

Ahhoz, hogy lásd, hogyan működik, meg kell először telepíteni a kernel headers:


Ezután telepítse a kernel hibakereső szimbólumok:


Amikor ezt a parancsot az Ubuntu 16.04 lehet kiadni a következő hibaüzenet jelenik meg:


Ezt követően, az előző parancs végrehajtódik hiba nélkül. A kísérlet, minden készen áll, akkor kezdődik:


Letöltöttük a rendszermag-modul, amely megváltoztatja az alap alapkód és módosítja a parancs kimenete a cat / proc / cmdline. Most ez a szükségességét, hogy össze a modult. Ehhez létre a következő make-fájl:


Összegyűjti modult és helyezze be a kernel:


Lássuk, mi történik. befejezett:


Ahelyett, hogy a szokásos információt a kernel paraméterek, itt látunk, az egy ilyen szöveg:


Mint látható, a javítás sikeresen alkalmazták.

Minden információ a letöltött foltok vannak tárolva az / sys / kernel / livepatch:


Kapcsolja ki a tapaszt, a következő parancsot:

Kezdjük a telepítés a szükséges függőségeket:


Ha szeretné megtekinteni ezt kpatch is ajánlatos telepíteni ccache:


Ez minden függőség telepítve. Beállíthatjuk kpatch:


A mi kísérletet, patch a kernel forrásokat. Klón az adattár a forrástól a jelenlegi változat az Ubuntu:


Befejezését követően a klónozás másolja a forráskódot egy könyvtárba ubuntu-xenial-kpatch (szükséges, hogy módosítsa a forráskódot, majd építeni alapján ezek a változások, javítások):


Nyissa meg a fájlt ubuntu-xenial-kpatch / ubuntu-xenial / fs / proc / version.c és vnesom a következő módosításokat:


Cozdadim tapasz parancs segítségével:


A tapasz egy egyszerű szöveges fájl, amely felsorolja a módosításokat:


Ahhoz, hogy hozzá egy patch a rendszermag végre:


Amint látható, most idézett kimenet, a kimeneti megkapjuk a kernel modult. Ahhoz, hogy a tapaszt, akkor csak meg kell adni ezt a modult egy standard módon:


Lássuk, mi történt eredményeként:

Canonical Livepatch Service


Néhány hónappal ezelőtt a cég elindította Canonical a Canonical LivePatch Service hatósági szolgáltatás, amely lehetővé teszi, hogy patch a kernel "on the fly" egyszerű parancsokat. Ez a szolgáltatás célja elsősorban a felhasználók a vállalati szintű, és ezért fizetni.

De a hétköznapi felhasználók is gyorsan eljuthat a legújabb kernel frissítés. Ehhez regisztrálni kell az Ubuntu One, és kap egy jelzőt. A token lehetőséget ad egy olyan program létrehozása 3 autó kanonikus-livepatch, amely betölti és hozzáadja javításokat.

Lássuk, hogyan működik ez a Canonical Livepatch Service. Térjünk át a fenti linkre, megkapjuk a jelzőt, és akkor végre:


A telepítés után jelentkezzen ki, majd Térjünk vissza, és nem tolódik:


Ha mindent helyesen tette, mi lesz a következő üzenet:


Ezután a parancsot:


A következtetés azt mutatja, hogy sanonical-livepatch működik, és a lényege a legújabb frissítéseket. További információ a következő címen szerezhető opció használatával --verbose:


Emellett információkat a telepített javításokat lehet beszerezni nézi a fent már említett a / sys / kernel / livepatch:


Kpatch_livepatch_Ubuntu_4_4_0_47_68_generic_14 - ez az utolsó betöltött patch. A legfrissebb adatok a neve a tapasz (14) egybeesik a verziószámot meghatározott kiadási kanonikus-livepatch status paranccsal (lásd. Fent).

Győződjön meg arról, hogy az új tapaszt került, és akkor használja lsmod parancsot:

következtetés

És ha azt szeretnénk, hogy vizsgálja meg a témát mélyebben, figyeljen az alábbi linkeken:

Betöltött modulok hibák javítása, a betöltött modulokat munkát vállalni a szükséges funkciókat magad, ahelyett, hogy a régi sebezhető kódot.
Míg obkatyvali kanonikalovsky lehetőség az ő személyes szerver, nagyon elégedett azzal a ténnyel, hogy a lényege a probléma korrigált újraindítás nélkül.

A jelzett idő az időzóna, amely fel van szerelve a készülék.