summaryrefslogtreecommitdiff
path: root/src/gentoo:kernel_cleanup.adoc
diff options
context:
space:
mode:
Diffstat (limited to 'src/gentoo:kernel_cleanup.adoc')
-rw-r--r--src/gentoo:kernel_cleanup.adoc119
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:

Generated by cgit