grub-install fails if ZFS root pool is in degraded state

Bug #1965566 reported by Prakash Surya
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
grub2 (Ubuntu)
New
Undecided
Unassigned

Bug Description

I have a system with a root ZFS pool that's DEGRADED:

    $ zpool status -v
      pool: rpool
     state: DEGRADED
    status: One or more devices has experienced an unrecoverable error. An
            attempt was made to correct the error. Applications are unaffected.
    action: Determine if the device needs to be replaced, and clear the errors
            using 'zpool clear' or replace the device with 'zpool replace'.
       see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-9P
    config:

            NAME STATE READ WRITE CKSUM
            rpool DEGRADED 0 0 0
              sda1 DEGRADED 0 0 0 too many errors

    errors: No known data errors

In this state, "grub-install" will fail:

    grub-install: error: failed to get canonical path of `rpool/grub'.

If I apply the following patch, "grub-install" works properly:

    --- a/grub-core/osdep/unix/getroot.c
    +++ b/grub-core/osdep/unix/getroot.c
    @@ -296,7 +296,7 @@ grub_util_find_root_devices_from_poolname (char *poolname)
            && !sscanf (name, "raidz1%u", &dummy)
            && !sscanf (name, "raidz2%u", &dummy)
            && !sscanf (name, "raidz3%u", &dummy)
    - && !strcmp (state, "ONLINE"))
    + && (!strcmp (state, "ONLINE") || !strcmp (state, "DEGRADED")))
              {
            if (ndevices >= devices_allocated)
              {

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.