Skip to content

Instantly share code, notes, and snippets.

@cpuguy83
Last active December 9, 2019 12:52
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save cpuguy83/6143347 to your computer and use it in GitHub Desktop.
Save cpuguy83/6143347 to your computer and use it in GitHub Desktop.
Boot Ubuntu with custom kernel on Digital Ocean
apt-get install kexec-tools
# Insert this at the top of /etc/init.d/rcS
if grep -qv ' kexeced$' /proc/cmdline ;then
kexec --load /vmlinuz --initrd=/initrd.img --append='root=LABEL=DOROOT kexeced' &&
mount -o ro,remount / &&
kexec -e
fi
# Then just use apt/dpkg to install whatever kernel you want, e.g. from http://kernel.ubuntu.com/~kernel-ppa/mainline/
@mamarley
Copy link

mamarley commented Apr 1, 2014

This doesn't work quite right for me; for some reason the mount command fails, which also skips the kexec -e. If I remove the && after the mount command, allowing the kexec -e to be executed even if the mount fails, everything works.

@rodrigoaguilera
Copy link

I think is important to update this to reflect that the bootloader for many images(debian and ubuntu included) in digitalocean changed to boot the kernel configured in debian and not in the control panel.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment