Installing Debian stable with an updated kernel

If you've done Debian long enough, you know those situations where you need to install on new hardware, and some component won't work with stable's kernel. That can pretty much make installation impossible if it is a network interface or storage controller.

In the past, I've resorted to all kinds of cumbersome workarounds, such as finding someone's build of an installer ISO with an updated kernel, or booting a live CD and installing via debootstrap.

As of early 2015, there is a new (or at least new-to-me) way that's much easier: just use unstable's mini.iso, because that one (and apparently only that one, the bigger netinst.iso variant does not) asks you which distribution to install.

The details

In the case of a HP DL380G9 to be installed in March of 2015, the problem was that the "P440AR" RAID controller in there isn't supported by stable's 3.2.0 kernel.

The steps to install are:

  • get the mini.iso; I had to resort to a daily build because the current unstable d-i build on the debian mirrors is buggy and doesn't support ext4.

  • boot the installer, select "Advanced options" and "Expert install" on the boot screen

  • Install as you normally would, except as indicated:

  • At the "Choose a mirror of the Debian archive" / "Debian version to install" selection, choose "stable".

  • Make sure that "backported software" is selected under "Configure the package manager" / "Services to use".

  • I've had to select "No" for "Force GRUB installation to the EFI removable media path", but YMMV depending on your EFI situation

  • Do not "finish the installation" just yet. When you're at that point in the install, switch to a shell (Alt-F2) and install the newer kernel:

     # chroot /target /bin/bash
     # apt-get -t wheezy-backports install linux-image-amd64
     # apt-get install ifupdown isc-dhcp-client
     # exit
    

    There may be some errors like /proc/devices: fopen failed during kernel installation, those can be ignored. The re-installation of ifupdown and the DHCP client are needed because they have been removed when tasksel installed iproute2.

  • Now you can select "Finish the installation" and reboot.

The system should come up with a GRUB menu showing 3.16 and 3.2 kernels, and should boot fine.

HTH.