bug-grub
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug #62197] grub-install fails if ZFS root pool is in degraded state


From: Prakash Surya
Subject: [bug #62197] grub-install fails if ZFS root pool is in degraded state
Date: Fri, 18 Mar 2022 13:37:33 -0400 (EDT)

URL:
  <https://savannah.gnu.org/bugs/?62197>

                 Summary: grub-install fails if ZFS root pool is in degraded
state 
                 Project: GNU GRUB
            Submitted by: prakashsurya
            Submitted on: Fri 18 Mar 2022 05:37:32 PM UTC
                Category: None
                Severity: Major
                Priority: 5 - Normal
              Item Group: None
                  Status: None
                 Privacy: Public
             Assigned to: None
         Originator Name: 
        Originator Email: 
             Open/Closed: Open
                 Release: 
                 Release: other
         Discussion Lock: Any
         Reproducibility: None
         Planned Release: None

    _______________________________________________________

Details:

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)
              {




    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?62197>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]