First, the issue that I'm having is being unable to run VirtualBox on Kali 2.0.

I set up a usb live with persistence running Kali 2.0, which at the time had the 4.6.0-kali1-amd64 kernel. I have since updated/upgraded/dist-upgraded etc with all of the recommended sources. As a part of this, the new headers/kernels that have been installed are 4.9.0-kali4-amd64. However, even after boot, the kernel is 4.6.0, as confirmed by uname -r and the error thrown by vbox. I know normally grub needs to be config'd, though there is no grub bootloader in the usb live boot.

The error thrown by virtualbox says that no suitable driver was found for the 4.6.0 kernel, and also that the system is not set up to dynamically create drivers (though I believe that this is due to the fact that it is making the driver for the 4.9.0, but this is not the running kernel).


4 Answers 4


Due to a bug in either the way my live system was installed or the way live-tools handles the mounted partition, live-update-initramfs does not work in this particular case, as it looks to /lib/live/mount/medium/ as the root of the usb live device, though this was not the mountpoint (and there are 3 partitions needed from the usb device).

Instead of messing with mounting/unmounting etc. I was able to simply create a initrd.img file (it was missing) using update-initramfs, and moving this to the live folder manually from my non-live linux dist:

/usr/sbin/update-initramfs.orig.initramfs-tools -c -k 4.9.0-kali4-amd64

This creates the image. The vmlinuz-4.9.0-kali4-amd64 was already available. From within my non-live dist, with my usb inserted:

  1. I first moved the initrd.img and vmlinuz from the /live folder on my usb to my desktop (for backup).
  2. I then copied the initrd.img-4.9.0-kali4-amd64 and vmlinuz from my usb's persistence rw root folder to the /live folder.
  3. I renamed these to initrd.img and vmlinuz and rebooted. Voilà

-Big thank you Jeff S. for your contribution.


I discovered that the persistence USB install doesn't update the live kernel either, this doesn't seem to be a bug, more by design. The grub config nor the kernel are touched from when you originally created the USB from whatever ISO you used.

You can however overwrite your live partition using the weekly Kali ISO which will replace the kernel and Grub config for you (along with everything else), as the latest kernel update will be present, compared to the release versions.

As this is only updating the contents on the live boot partition, your persistence partition won't be touched and should be fine.


It would be wise to ensure that you do the usual update commands, to make sure the latest kernel files are present on your persistence partition before updating the live partition.

apt update && apt full-upgrade

@ithin live persistence, do:

mkdir /lib/live/mount/medium    
mount /dev/sdxx (live usb stick) /lib/live/mount/medium    
live-update-initramfs -u

edit /dev/sdxx/boot/grub/grub.conf ---> initrd.img


None of the existing ISO9660-based live operating systems provide a kernel update feature: the kernel and the initrd are the only components that a live operating system cannot update, because they lay outside of the data persistence partition (if any) and the system partition is, as said, ISO9660-formatted.

The liveng whitepaper on Read the Docs shows how to accomplish what you ask:

The full aim of the liveng project is to give the Community a set of best practices in order to turn a common Debian Linux live into a live(ng) operating system which features:

native encrypted persistence;
kernel update (on a live ISO 9660 filesystem!);
UEFI, with UEFI Secure Boot compatibility, with a real efi partition.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .