[Bug 1850003] Re: /etc/grub.d/10_linux_zfs doesn't skip non-linux zpools

Kyle Ambroff 1850003 at bugs.launchpad.net
Tue Oct 13 00:58:20 UTC 2020


I ran into this issue too after setting up dual boot with FreeBSD on my
system. An unattended upgrade wiped out my grub menu since it mistook
the "etc" dataset in the FreeBSD zfs pool as a signal that it contained
an Ubuntu install.

The hack described by Benjamin worked for me, although it definitely
doesn't seem like a very sound solution.

```
ubuntu at ubuntu:~$ diff -u /etc/grub.d/10_linux_zfs /mnt/etc/grub.d/10_linux_zfs
--- /etc/grub.d/10_linux_zfs    2020-09-08 10:24:35.000000000 +0000
+++ /mnt/etc/grub.d/10_linux_zfs        2020-10-13 00:10:59.644606544 +0000
@@ -383,7 +384,8 @@
     # read machine-id/os-release from /etc
     etc_dir=$(get_system_directory "${dataset}" "etc" "true" "${mntdir}" "")
-    if [ -z  "${etc_dir}" ]; then
+    # KWA: Temporary hack from https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1850003
+    if [ -z  "${etc_dir}" ] || [ ! -f "${etc_dir}/os-release" ]; then
         grub_warn "Ignoring ${dataset}"
         mountpoint -q "${mntdir}/etc" && umount "${mntdir}/etc" || true
         umount "${mntdir}"
```

Rather than inspecting the contents of the dataset, it might be better
to just set a property on the dataset tagging it as part of an Ubuntu
install. I'm not sure at the moment whether it's possible to just set
arbitrary custom properties on a dataset.

-- 
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/1850003

Title:
  /etc/grub.d/10_linux_zfs doesn't skip non-linux zpools

Status in grub2 package in Ubuntu:
  Confirmed

Bug description:
  # 1. Symptoms: `update-grub` fails when trying to access an os-release
  file

      root at x250:/home/benjamin# update-grub
      Sourcing file `/etc/default/grub'
      Sourcing file `/etc/default/grub.d/init-select.cfg'
      Generating grub configuration file ...
      /etc/grub.d/10_linux_zfs: 338: .: Can't open /tmp/zfsmnt.Ejuktn/etc/os-release
      done

  # 2. Cause: 10_linux_zfs is trying to access /etc/os-release in all zpool, even when the system is not Linux based
      + machine_id=rpool/ROOT/openindiana
      + . /tmp/zfsmnt.AC9sAy/etc/os-release
      /etc/grub.d/10_linux_zfs: 339: .: Can't open /tmp/zfsmnt.AC9sAy/etc/os-release
      + pretty_name=
      + boot_list=\n
      + boot_list=
      + on_exit
      + zpool export rpool
      + mountpoint -q /tmp/zfsmnt.AC9sAy
      + true
      + rmdir /tmp/zfsmnt.AC9sAy
      + rm -rf /tmp/zfstmp.lEMWy3
      + exit 0
      done

  # 3. Quick fix (for /etc/os-release)

      in /etc/grub.d/10_linux_zfs:321, replace:
          if [ -z  "${etc_dir}" ]; then
      by:
          if [ -z  "${etc_dir}" ] || [ ! -f "${etc_dir}/os-release" ]; then

      then when the file is not found, the zpool is skipped
          root at x250:/home/benjamin# update-grub
          Sourcing file `/etc/default/grub'
          Sourcing file `/etc/default/grub.d/init-select.cfg'
          Generating grub configuration file ...
          Warning: Ignoring rpool/ROOT/openindiana
          Warning: Ignoring rpool/ROOT/openindiana-1
          Warning: Ignoring rpool/ROOT/openindiana-1 at install
          Warning: Ignoring rpool/ROOT/openindiana-1 at 2018-08-24-23:15:22
          Found linux image: vmlinuz-5.0.0-32-generic in x250/ROOT/ubuntu
          Found initrd image: initrd.img-5.0.0-32-generic in x250/ROOT/ubuntu
          Found linux image: vmlinuz-5.3.0-19-generic in x250/ROOT/ubuntu
          Found initrd image: initrd.img-5.3.0-19-generic in x250/ROOT/ubuntu
          Found linux image: vmlinuz-5.0.0-32-generic in x250/ROOT/ubuntu at install
          Found initrd image: initrd.img-5.0.0-32-generic in x250/ROOT/ubuntu at install
          Found linux image: vmlinuz-5.3.0-19-generic in x250/ROOT/ubuntu at install
          Found initrd image: initrd.img-5.3.0-19-generic in x250/ROOT/ubuntu at install
          done

  ProblemType: Bug
  DistroRelease: Ubuntu 19.10
  Package: grub-common 2.04-1ubuntu12
  ProcVersionSignature: Ubuntu 5.3.0-19.20-generic 5.3.1
  Uname: Linux 5.3.0-19-generic x86_64
  NonfreeKernelModules: zfs zunicode zavl icp zcommon znvpair
  ApportVersion: 2.20.11-0ubuntu8
  Architecture: amd64
  CurrentDesktop: XFCE
  Date: Sun Oct 27 00:30:31 2019
  SourcePackage: grub2
  UpgradeStatus: Upgraded to eoan on 2019-10-26 (0 days ago)
  modified.conffile..etc.grub.d.10_linux_zfs: [modified]
  mtime.conffile..etc.grub.d.10_linux_zfs: 2019-10-27T00:09:53.228144

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



More information about the foundations-bugs mailing list