[Bug 1613260] Re: update-grub (grub-mkconfig) includes all kernels in boot, regardless whether version is in /lib/modules

Peter Passchier solusos at passchier.net
Fri Dec 2 18:04:20 UTC 2016


I understand you can build your own kernel and include all the necessary
drivers and modules into the image. If you don't include everything in
the kernel image, making an initramfs with update-initramfs is not going
to work, it first issues a warning about the missing /lib/modules for
that home-built version of the kernel, and then depmod gives an error
that it can't open that directory, which is fatal. So there is no way to
use update-initramfs using that kernel.

Now update-grub doesn't care, it will use the initrd it can find with
the matching version if present.

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to grub2 in Ubuntu.
https://bugs.launchpad.net/bugs/1613260

Title:
  update-grub (grub-mkconfig) includes all kernels in boot, regardless
  whether version is in /lib/modules

Status in grub2 package in Ubuntu:
  Won't Fix

Bug description:
  All kernels/initrds in /boot are included, also if they would never
  work. Below is a patch that fixes this.

  1. Ubuntu 16.04.1 LTS (but it has always been like this)
  2. grub-common 2.02~beta2-36ubuntu3.2
  3. Only the kernels/initrds that have a version that is installed are listed on grub-mkconfig
  4. All kernels/initrds in /boot are enumerated

  
  --- 10_linux    2016-08-14 11:19:24.037604092 +0700
  +++ /etc/grub.d/10_linux        2016-08-14 18:13:53.714595280 +0700
  @@ -289,6 +289,12 @@
     rel_dirname=`make_system_path_relative_to_its_root $dirname`
     version=`echo $basename | sed -e "s,^[^0-9]*-,,g"`
     alt_version=`echo $version | sed -e "s,\.old$,,g"`
  +  ## Only if version is in /lib/modules
  +       if [ "x$(echo /lib/modules/* |grep $version)" = "x" ]
  +  then
  +    list=`echo $list | tr ' ' '\n' | grep -vx $linux | tr '\n' ' '`
  +    continue
  +  fi
     linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
   
     initrd=

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1613260/+subscriptions



More information about the foundations-bugs mailing list