diff options
Diffstat (limited to 'src/gentoo:kernel_cleanup.adoc')
-rw-r--r-- | src/gentoo:kernel_cleanup.adoc | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/src/gentoo:kernel_cleanup.adoc b/src/gentoo:kernel_cleanup.adoc new file mode 100644 index 0000000..4a3e73b --- /dev/null +++ b/src/gentoo:kernel_cleanup.adoc @@ -0,0 +1,119 @@ +Gentoo:Kernel Cleanup +===================== +:author: Aaron Ball +:email: nullspoon@iohq.net +:revdate: October 30, 2015 + +== {doctitle} + +Gentoo is a source-based Linux distribution. Moreover it's aimed at more +advanced users with the intent of not forcing anything on them, as much as is +possible with so many packages. + +Normally, whenever you get a kernel update on a distro, say from 4.2.0 to +4.2.5, the system does several things. + +* Download the new kernel (pre-compiled) +* Install the new kernel +* Update the initramfs +* Update the bootloader +* Clean up the unused kernels + +Gentoo requires that their users to each of those items. I'm fairly new to +Gentoo and, coming from Arch Linux, already knew for the most part how to do +all of those steps, except for the last one. That said, lets talka bout how to +clean up unused kernels on your system. + +== TL;DR Summary + +Here are the locations that need to be cleaned up, in case you want to skip to +that section or already know what you're doing but just need the list. + +* emerge -C <sys-kernel/<type>-sources-<version> _(This is specific to Gentoo)_ +* Files + * /usr/src/linux-<versions> + * /lib/modules/<versions> + * /boot/*-<versions> + + +== Inventory + +The first step is to take an inventory. The largest part of a kernel in Gentoo +is its source code, so we'll look at that for the inventory (there are other +ways and we'll look into those as well). + +Gentoo stores its kernel source at _/usr/src/linux-*_. In there, you can see +multiple versions of the linux source code. In my case, I have linux-4.2.0 all +the way up to linux 4.2.5. + +NOTE: In my case, I'm using vanilla-sources for my kernel, so the directory +names for you might be a tad different. Despite though, they should still start +with _linux-x.x.x*_. + + +== Clean Up the Source + +Now that we have an inventory, let's clean up the source. This is very simple. +Once you know what versions you want to keep, we can issue an emerge command +that will clean up the files for the source. For my example, we'll say we want +to remove anything before 4.2.4 + + emerge -Cp <sys-kernel/vanilla-sources-4.2.4 + +That command will delete any files installed by emerge if they belong to kernel +versions 4.2.3 or less. However, it doesn't clean up any files created by the +compile process, so we still need to remove those. + +To see where we are first, here's an ls example of my src directory. + + 0 [nullspoon@null ~]$ ls /usr/src/ + linux linux-4.2.0 linux-4.2.1 linux-4.2.2 linux-4.2.3 linux-4.2.4 linux-4.2.4-gentoo linux-4.2.5 linux-4.2.5-gentoo + +Now for a simple but gratifying rm command. Since rm has no knowledge of the +kernel versioning scheme, we can't say "less than version 4.2.4" and it'll +clean up. In this case, we'll use a simple bash sequence. + + rm -rf /usr/src/linux-4.2.{0,1,2,3} + +NOTE: If you are worried about running that command and what it'll do, run it +with echo before it to see what it will output without actually deleting +anything. + + +== Clean up Installed Modules + +The Linux kernel stores its modules in */lib/modules* (fun fact: /lib is +usually a symlink to /lib64 if you're running a 64 bit system, or /lib32 if +you're running a 32 bit system). + +Similar to cleaning up the sources, we will clean up the moduels with a simple +but gratifying _rm -rf_ command. + + rm -rf /lib/modules/4.2.{0,1,2,3} + +That will clean up all the installed modules for the specified old kernel +versions (in this case, 4.2.0, 4.2.1, etc). + + +== Clean up Old Installed Kernels + +The Linux Kernel installs itself to _/boot_. To see what you have for the +given version set (again, using the one from previous examples, run the +following command... + + ls /boot/*-4.2.{0,1,2,3} + +Again, a simple rm command will clean up these files. + + rm -f /boot/*-4.2.{0,1,2,3} + + +And with that, you're done. All clean! + + + + +[role="datelastedit"] +Last edited: {revdate} + +// vim:set syntax=asciidoc: |