summaryrefslogtreecommitdiffstats
path: root/kcleanup-fedora
blob: e2d40f775b7f83b4a3f0b48018d2c65fc6244d52 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/bin/sh

# args
version="$1"

# config
grubby="grubby"
if test -f /boot/extlinux/extlinux.conf; then
	grubby="$grubby --extlinux"
fi

if test "$version" = ""; then
	echo "usage: $0 <version>"
	echo "kernels:"
	ls /boot/vmlinu*-* | sed -e 's|/boot/vm[^-]\+-|   |'
	exit 1
fi

kernels="$(ls /boot/vmlinu*-${version}* 2>/dev/null | grep -v 'old$')"
for kernel in $kernels; do
	version="${kernel#/boot/vm*-}"
	test -f "$kernel" || continue
	if rpm -qf "$kernel" 2>/dev/null | grep -q kernel; then
		echo "# skip $version [rpm]"
		continue
	fi		
	echo "# kill $version"
	$grubby --remove-kernel="${kernel}"
	rm -f "${kernel}"
	rm -f "${kernel}.old"
	rm -f "${kernel//vmlinuz/System.map}"
	rm -f "${kernel//vmlinuz/System.map}.old"
	rm -f "${kernel//vmlinuz/initramfs}.img"
	rm -rf "/lib/modules/${version}"
done