dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\ \)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge
Elikkäs ym. komennolla kerran parissa kuukaudessa poistan kaikki uusimpaa vanhemmat kernelit, kun uusin on ajossa. Toimii muuten hyvin, mutta vaikka
poistettavana olisi vain yksi vanha kernel, update-grub tulee suoritetuksi kolme
kertaa puhumattakaan useamman vanhan kernelin poistosta. Lisäksi update-
initramfs generoi turhaan poistettavalle kernelille initrd imagen.
Näissä kernelien päivityksien ja poistojen yhteydessä riittäisi yksi update-grub
suoritus lopuksi. Debianilla tämä tiedetään, kukaan vain ei ole puuttunut asiaan.
Eli apt-get ja/tai dpkg toimintalogiikassa olisi parannettavaa.
Elikkäs ym. komennolla kerran parissa kuukaudessa poistan kaikki uusimpaa vanhemmat kernelit, kun uusin on ajossa. Toimii muuten hyvin, mutta vaikka
poistettavana olisi vain yksi vanha kernel, update-grub tulee suoritetuksi kolme
kertaa puhumattakaan useamman vanhan kernelin poistosta. Lisäksi update-
initramfs generoi turhaan poistettavalle kernelille initrd imagen.
Näissä kernelien päivityksien ja poistojen yhteydessä riittäisi yksi update-grub
suoritus lopuksi. Debianilla tämä tiedetään, kukaan vain ei ole puuttunut asiaan.
Eli apt-get ja/tai dpkg toimintalogiikassa olisi parannettavaa.
Vastaukset 9
Vanhimmat
Ubuntu Tweak ja/tai BleachBit kehiin. Saa samalla muutkin tauhkat mäkeen.
Tekaisin tuossa bash skriptin kiertotieksi, kun ei parempaakaan ratkaisua
löytynyt ongelmaan. Useamman käyttiksen ollessa asennettuna ja GPT -osionti,
kestää yksi update-grub -suoritus n. 1 min.
#!/bin/bash
function update_grub_xx() {
grub_counter_xx=$(cat /usr/sbin/grub_counter_xx)
((grub_counter_xx ))
echo $grub_counter_xx > /usr/sbin/grub_counter_xx
}
echo "0" > /usr/sbin/grub_counter_xx
export -f update_grub_xx
mv /usr/sbin/update-grub /usr/sbin/update-grub_xx
echo -e "#!/bin/bash\nupdate_grub_xx" > /usr/sbin/update-grub
chmod 755 /usr/sbin/update-grub
dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\ \)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs apt-get -y purge
grub_counter_xx=$(cat /usr/sbin/grub_counter_xx)
rm /usr/sbin/grub_counter_xx
cp /usr/sbin/update-grub_xx /usr/sbin/update-grub
if [ "$grub_counter_xx" -gt "0" ]; then
update-grub
((--grub_counter_xx))
echo -e " \nUnnecessary update-grub execution(s) prevented $grub_counter_xx time(s)\n"
fi
Koodin copy paste ei toimia oikein tällä foorumilla, poisti ainakin yhden aaltosulkeen.
Kait tuo sudojono on vitsi?
sudo apt-get remove --purge $(dpkg -l 'linux-image-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\ \)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d')
Eikö tuo toimi aivan ok, ainakin vanhat lähti.
http://askubuntu.com/questions/2793/how-do-i-remove-or-hide-old-kernel-versions-to-clean-up-the-boot-menu
Mä laitoin tuohon loppuun ":)", niin se aaltosulku tulikin takasin.
Poistan vanhan kernelin ihan manuaalisesti heti, kun uusi on todettu toimivaksi. Vanhan kernelin voi asentaa uudelleen, jos syystä tai toisesta uusin ei tyydytä.
Joo kerneli on vain "tiedosto" meet sinne /boot kansioon roottina ja on helppo "nakata mäkeen" vaikka kaikki kernelit
(ei kylläkään starttaa seuraavalla kerralla)
Toi "update" grub "loitsu" nyt vaan kirjoittaa tekstitiedostoon grubille seuraavaksi ladattavan "kernelin" nimen.
(voit muuten rename:ta "kernelin" vaikka "klimpiks" ja jos grubin asetus tiedostossa niin lukee koittaa se bootata "klimpiks":iin
Menepä kotiin "perustieto". Kun paketinhallinnan sovellutuksilla tarpeettomia kerneleitä poistetaan, ei käytössäolevaa suostuta edes poistamaan. Levytilaa kyllä poistuu esim.:
Nämä paketit POISTETAAN:
linux-headers-3.16.0-23{u} linux-headers-3.16.0-23-generic{u} linux-image-3.16.0-24-generic
0 päivitettävää pakettia, 0 uutta asennusta, 3 poistettavaa ja 0 päivittämätöntä.
Tarvitsee noutaa 0 B arkistoista. Levytilaa vapautuu 123 MB purkamisen jälkeen.
Näillä paketeilla on tyydyttämättömiä riippuvuuksia:
linux-image-extra-3.16.0-24-generic : Riippuvuudet: linux-image-3.16.0-24-generic but it is not going to be installed.
Seuraavat toiminnot selvittävät nämä riippuvuudet:
Poista paketit:
1) linux-image-extra-3.16.0-24-generic
Hyväksytkö tämän ratkaisun? [Kyllä=y/ei=n/lopeta=q/?]
Nämä paketit POISTETAAN:
linux-headers-3.16.0-23{u} linux-headers-3.16.0-23-generic{u} linux-image-3.16.0-24-generic linux-image-extra-3.16.0-24-generic{a}
0 päivitettävää pakettia, 0 uutta asennusta, 4 poistettavaa ja 0 päivittämätöntä.
Tarvitsee noutaa 0 B arkistoista. Levytilaa vapautuu 281 MB purkamisen jälkeen.
Haluatko jatkaa? [Kyllä=y/ei=n/?]