Kako instalirati najnoviji kernel sa kernel.org na CentOS 7

CentOS nije ažuran sa verzijama kernela ali ne zato što ga boli uvo već zato što ima neku internu politiku koja podrazumeva da je stabilnost sistema ispred novih mogućnosti koje donosi novija verzija kernela…

CentOS je prvenstveno Linuks distro namenjen serverima pa se recimo prepoznavanje novije zvučne ili mrežne karte ne vodi kao nekakav prioritet ali zato ukoliko postoji bezbednosni propust unutar postojeće verzije kernela – CentOS kao i Red Hat će pustiti apdejt kroz standardni repozitorijum koji se može instalirati jednostavnim yum-update i posle restartom, ne ovako ‘od nule’ kao što će ovde biti slučaj.

Ovim uputstvom ovde samo ću ukratko proći kroz proces instalacije trenutno novijeg kernela (na dan 20/10/2017 kad je pisano ovo upustvo, najnovija verzija je nosila oznaku 4.13.8) bez nekih dodatnih promena (proverite izdate verzije), dubljih konfiguracija, izbacivanje nepotrebnih stvari i odabira mogućnosti kroz config fajl. Instalaciju radim na CentOS 7 minimal instalaciji sa odrađenim inicijalnim updateom (yum update -y). Ukoliko vi radite apdejt kernela čisto sebe radi napravite bekap sistema ili ako koristite neki vid virtualizacije odradite snepšot sistema pa ako posle nekog vremena u radu ne bude nekakvih problema…možete obrisati isti – a svakako, ako se kernel ne pokaže dobro uvek možete da butnete sistem sa starijeg kernela i kao da se ništa nije desilo.

Sama instalacija novog kernela ručno se radi dugo (može biti i nekoliko sati) tako da se ne iznenadite – sistem za to vreme radi normalno jer ste butovani u trenutni kernel i dok god je on tu, nema brige. U nekom narednom tekstu ću postaviti kako izgleda proces instalacije na lakši način, kroz elrepo-kernel repozitorijum.

Naravno, moja je preporuka da kernele ažurirate samo sa zvaničnog CentOS repoa (base i updates) jer su to verzije proverene i testirane u radu sa CentOS-om od strane tima koji radi na razvoju i održavanju distre (i CentOS i Red Hat) te je šansa da nešto krene po zlu ravna nuli…. Dakle sa dolenavedenim uputstvom radite samo ako baš morate iz nekog razloga. Ekipa koja je iza CentOS-a će svakako objaviti noviju verziju ukoliko postojeća bude imala nekih problema koji mogu uticati na stabilnost ili bezbednost.

# Instaliranje potrebnih paketa za proces kompajliranja kernela yum install wget gcc make ncurses-devel openssl-devel elfutils-libelf-devel bc perl -y # Download kernel-a mkdir -p /usr/src/kernels/ cd /usr/src/kernels/ wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.13.8.tar.gz tar xvf linux-4.13.8.tar.gz rm -f linux-4.13.8.tar.gz cd linux-4.13.8 # Pravljenje config fajla na osnovu poslednjeg iskorišćenog cp $( ls -1t /boot/config-* | head -1) .config # Pokretanje menija za odabir opcija. Za sad, samo odaberite Save make menuconfig # Otpočinjanje procesa nadogradnje kernela (može trajati i nekoliko sati) make -j `nproc` && make modules_install && make install # Nakon instalacije restartovati server da bi se videlo - ima li novog kernela reboot

Posle restarta dočekao me je novi kernel u ponudi – ali nije bio difoltni za butovanje – i dalje se butovao stari…dakle treba ovo promeniti na novi kernel.

Tu je novi kernel – ali nije difoltni

Proces postavljanja novog kernela za start je poprilično jednostavan (mada ima i komplikovanijih načina) – treba samo naći koji je po redu u fajlu /etc/grub2.cfg i prostom komandom sa tim rednim brojem ga postaviti na novu vrednost. Napomena je da brojanje počinje od nula, dakle prvi kernel na listigu je sa rednim brojem nula.

# Videti koji je po redu nas kernel, redosled počinje od nula grep "menuentry '" /etc/grub2.cfg

# Da nas kernel, koji je pod rednim brojem 0 bude defaultni grub2-set-default 0 # Pa restartovati da se proveri ova promena i sistem butne kroz novi kernel reboot 

Sad je OK, naš kernel je defaultni

Ako nemate pristup displeju ili konzoli, verziju kernela možete proveriti komandom: uname -r

Naš kernel