2

I have installed Ubuntu 14.04 from unetbootin. When it reboots after the install, uname -r says:

3.5.0-17-generic

..this means that no modules have loaded for the kernel that is actually installed (3.13.0-32-generic).

Does anyone know why this kernel should be installed via the install process? Is it an artifact of using Unetbootin? Booting into the Unetbootin image gives the correct kernel, and thus the modules load.

Knowing why is one thing, but I'm not sure how to remedy it now. Because no modules are loaded, I can't connect to the network or connect a USB drive.

I've tried update-grub, which seems to find the correct kernel, but doesn't seem to tell the system to boot from it.

I've also tried selecting the kernel at boot time using the "Advanced Options for Ubuntu", and the 3.13.x kernel is the only one listed. Selecting this lead to the 3.5.x kernel stubbornly loading..

I'm a fairly accomplished sysadmin, but this one has me flummoxed :) Can anyone help?

  • Do you see the desired kernel listed in GRUB when you boot up? You may need to press and hold the Shift key while booting, if Ubuntu is your only OS. – Andrea Lazzarotto Aug 18 '14 at 21:36
  • In addition to @Andrea's suggestion; Try to ESC (the same style as you'd do for Setup, other keys) just as BIOS has done its tasks - unless "SHIFT" does work for you. If you have more than one kernel, those should be under Advanced options for Ubuntu in the menu that should show up. – Hannu Aug 18 '14 at 21:40
1

OK, I worked this out. It was a Unetbootin issue. I hadn't formatted the USB stick before putting a new image on there, and as a result it was installing the kernel from the previously installed version (on the USB) to the machines hard drive.

I'm not so sure why the live boot image seemed to work properly if that was the case, but in the end, the fix was to format the USB stick completely and re-image using Unetbootin.

0
  1. Boot into a live system from USB, DVD, or CD and make sure you have internet access.

  2. Mount your Ubuntu installation, e. g. by opening the corresponding partition in Nautilus or with Gnome Disks. It should be mounted somewhere under /media/ubuntu or /media but I'll refer to the mountpoint by [mountpoint] later.

    • If you have a separate /boot or /var partition, things are a bit harder, because you need to mount those manually under [mountpoint]. If you don't know what I'm talking about, you're very likely unconcerned by this issue.
  3. Open a terminal and run:

    sudo apt-get update
    apt-get download linux-image-3.13.0-24-generic
    sudo dpkg --install --root=[mountpoint] linux-image-*.deb
    
    • If you're not on Trusty, look up the most recent kernel package version for your Ubuntu release on https://launchpad.net/ubuntu/+source/linux#packages_list and replace it in the 2nd line.
    • On older 32-bit (x86) releases you'll want to append -pae to line 2.
    • If you're on a less common architecture (PowerPC or some ARM), you may need a different kernel package type. Instead of generic, enter whatever your architecture requires. Again, if you don't know what I'm talking about, you're very likely not concerned by this unless the 2nd line comes back with an error that the package doesn't exist for your architecture.
  4. If all of the above commands worked, you can reboot now. Don't forget to update your kernel to a more recent version, if available.

-1

EDIT: The simple solution is just to recreate the USB stick with Ubuntu's own Startup Disk Creator instead of UNetbootin, or try to format the stick first, as another answer suggests.

I also ended up having the wrong kernel on first boot of Ubuntu 14.04 after installing with an USB stick created with UNetbootin. The symptoms were that the boot partition could not be mounted, since there were no ext2 drivers available for the kernel.

The strange thing was that the kernel in /boot seemed to be the correct one, at least based on it's name. However, only the name was correct. The kernel in the file was old, which could be seen from it's modification date. The problem was solved by downloading the actual kernel package with

apt-get download

unpacking it with

dpkg -x

and copying the (identically named, but different size) kernel image to the boot partition.

I carried out the fix operation by starting the Live Ubuntu with the same UNetbootin USB stick, from where I could mount the actual boot partition (sda1 on my system).

  • This doesn't sound like a good idea at all. It would really be better to let the package manager handle the kernel files. If you can download it with apt-get, you should be able to install it with apt-get install --reinstall. – David Foerster Dec 20 '14 at 20:42
  • @DavidFoerster Using apt-get install --reinstall only works when you're logged in to the system. In my case (and in AP's case) it wasn't possible to boot the system at all. The only way to fix the kernel in the boot partition was to mount it using another booting OS (like live cd). – Jaakko Sipari Jan 10 '15 at 20:10
  • In that case use apt-get in a chroot environment with the broken system. – David Foerster Jan 11 '15 at 13:32
  • You're right David, that would be the "right" solution. Though setting up the chroot environment is harder than simply downloading and copying over a working kernel. – Jaakko Sipari Jan 11 '15 at 20:52
  • … and much riskier, if you don't know what you're doing. – David Foerster Jan 12 '15 at 12:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.