My old Linode was 32-bit, but using the Dashboard and the doubled storage Linode just upgraded me to I was able to add a Ubuntu 12.04 64-bit Configuration Profile and Disk Image, reboot to that and mount the old disk image to copy files over. So far so good.
The current Linode kernel is a custom 3.9.3. Nice. But without AUFS support, ouch. Ok then, I’ll need to recompile this thing.
lxc-checkconfig tells me that I miss support for a lot of things, so…
NOTE: There are easy tutorials2 telling you to use the vendor provided kernels, but I feel like there is a reason if Linode ships his own custom kernel, so I really want to just customize theirs.
Getting the source and putting the config in place
First, have a look at what kernel branch your box is currently running and download the tarball of its source from kernel.org:
1 2 3 4 5 6 7
Now we will extract the config from the running Linode kernel and update it in case there’s need.
Mixing AUFS in3
I’ll go fast over this, as it’s almost off-topic. You can skip to the next heading if you are not interested.
1 2 3 4 5 6 7 8 9 10 11
Great, finally we do our customizations to the config with
make menuconfig (you’ll need
libncurses5-dev) and compile. (I enabled AUFS in Misc filesystems and the things listed in the
lxc-checkconfig source code)
Ah, you might want to change the name of the kernel to something like
3.9.11-custom. You can do that by editing the following
Makefile line like this:
EXTRAVERSION = -custom
1 2 3
1 2 3
And that’s it! Now go to the Linode Manager, edit your Configuration Profile to use pv-grub-x86_64 as the “Kernel” and reboot.
You should be able to verify what you are running with
uname -a, and if you need to see/interact with the boot process, the Lish console is like being in front of a screen. Have fun! (And why did we start in the first place…? Ah, Docker!)
NOTE: make sure that the first kernel listed in
/boot/grub/menu.lst is your new one, as PV-GRUB boots the first kernel of the list and
make install backups existing kernels to
*.old copies, and these get positioned first by
update-grub. I had a Linode blow up all over my face because of this.