[LINUX] Megtelt boot partíció kitisztítása
Ritkán, de előfordulhat, hogy betelik a /boot partíció a linux gépeken, ilyenkor a régi kerneleket érdemes törölni, de ez nem mindig egyszerű.
A lemez kihasználtságát az alábbi paranccsal tudod megnézni:
df -h

A képen már a tisztogatás utáni állapot látható, így már csak 39%-os foglaltságon áll a /boot partíció
Ilyenkor az apt-get upgrade megszakad a kernel frissítése közben, mivel nincs több hely az adott partíción. Ez folyamatosan hibákat dob, és van olyan is (mint az én esetemben), hogy emiatt már egyáltalán nem futnak le a frissítések, mivel a korábbiak hibával zárultak le.
Ilyenkor mondaná az ember, hogy akkor a régi, nem használatos kerneleket purge-öljük, de ez azzal jár, hogy az apt-get purge 4.4.0-1xx-generic parancs is hibára fut, mivel az apt csomagkezelő előbb ki akarja javítani a félig feltelepített kerneleket.
A megoldás erre az, ha a már nem használatos kernel fájlokat manuálisan kitöröljük (nagyon fontos, hogy óvatosan járjunk el, és az éppen aktuális és a frissebb kernelt ne töröljük), majd pedig a dpkg csomag kezelővel egyenként töröljük a régi kerneleket.
Nézzük meg, hogy jelenleg a rendszer melyik kernelt használja, ezt pedig jegyezzük fel valahova:
uname -a

Jelenleg a 4.4.0-140-generic linux kernelt használja a szerver.
Menjünk be a /boot mappába és listázzuk ki a fájlokat:
cd /boot ls -l

Mint látható, minden kernel verzióhoz 6 különböző fájl tartozik.
ÓVATOSAN JÁRJUNK EL, TÖBBSZÖR ELLENŐRIZZÜK, HOGY NEM ÍRUNK-E EL VALAMIT!!!
Mint látható, kernelenként az összes fájl végződése ugyanaz, így lehet egyszerűsíteni, de csakis óvatosan! Semmiképp se töröld az éppen használt és annál újabb kerneleket!
sudo rm -rf *4.4.0-134-generic *4.4.0-139-generic
Ezzel kitöröltük a 134-es és a 139-es kernel fájljait, így felszabadul egy kis hely (általában ennél jóval több régi kernel van), és tovább haladhatunk.
Listázzuk ki a régi kerneleket:
sudo dpkg --list 'linux-image*'|awk '{ if ($1=="ii") print $2}'|grep -v `uname -r`

Mint látható, a rendszer még úgy veszi, hogy a régi kernelek telepítve vannak, még akkor is, ha a fájlok már nincsenek a helyükön.
Ha most nyomnál egy apt-get purge ‘linuxkernel’-t, akkor először ki akarná javítani a rendszer a hibákat, így újra letöltené és megpróbálná telepíteni őket és egyből betelne a partíció.
Használjuk a DPKG csomagkezelőt, és manuálisan egyenként töröljük a kernel csomagokat:
sudo dpkg --remove linux-image-4.4.0-134-generic
Ha minden fölösleges kernel csomagját töröltük, akkor futtassuk le a következőt, hogy a korábban befejezetlen telepítéseket javítsuk:
sudo apt-get install -f
Hagyjuk, hogy lemenjenek a telepítések/frissítések, majd pedig töröljük a már nem szükséges csomagokat
sudo apt-get autoremove
Ezután ellenőrizzük a /boot partíció telítettségét:
df -h
Ha minden rendben ment, akkor már nincs több teendőnk.