BUG or not? At least I get mixed feelings, when I see, that the log
device gets passed to grub-probe! E.g.:

+ zpool status rpool
  pool: rpool
 state: ONLINE
  scan: resilvered 547M in 0h0m with 0 errors on Thu May 18 03:49:08 2017
config:

        NAME         STATE     READ WRITE CKSUM
        rpool        ONLINE       0     0     0
          mirror-0   ONLINE       0     0     0
            HDD0p2   ONLINE       0     0     0
            HDD12p2  ONLINE       0     0     0
        logs
          HDD2p3     ONLINE       0     0     0
        spares
          HDD1p2     AVAIL   

errors: No known data errors


+ zpool status -P rpool
  pool: rpool
 state: ONLINE
  scan: resilvered 547M in 0h0m with 0 errors on Thu May 18 03:49:08 2017
config:

        NAME                          STATE     READ WRITE CKSUM
        rpool                         ONLINE       0     0     0
          mirror-0                    ONLINE       0     0     0
            /dev/chassis/SYS/HDD0p2   ONLINE       0     0     0
            /dev/chassis/SYS/HDD12p2  ONLINE       0     0     0
        logs
          /dev/chassis/SYS/HDD2p3     ONLINE       0     0     0
        spares
          /dev/chassis/SYS/HDD1p2     AVAIL   

errors: No known data errors


and than on update-grub I see:

...
prepare_grub_to_access_device /dev/sda2 /dev/sdf2 /dev/sdb3
+ old_ifs=      

+ IFS=

+ /usr/sbin/grub-probe --device /dev/sda2 /dev/sdf2 /dev/sdb3 --target=partmap
/usr/sbin/grub-probe: error: cannot find a GRUB drive for /dev/sda2.  Check 
your device.map.
...

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to zfs-linux in Ubuntu.
https://bugs.launchpad.net/bugs/1687664

Title:
  grub-probe zfs bug: failed to get canonical path

Status in grub2 package in Ubuntu:
  Confirmed
Status in zfs-linux package in Ubuntu:
  Confirmed

Bug description:
  grub-probe /

  fails with grub-probe: error: failed to get canonical path of
  `/dev/HDD0p2'. This is simply because grub makes the wrong assumption,
  that "zpool status $pool" lists the vdevs in use only with the '/dev/'
  prefix stripped off. It probably assumes something like /dev/sda etc.,
  which is discouraged to use.

  Instead, grub should use "zpool status -P $pool" to get the full
  device path. This would probably result into a symlink, e.g. /dev
  /disk-by-id/$bla . If this is not sufficient, grub should use
  realpath() to get the final blockdev entry like /dev/sda1 .

  The current setup I use is:

  433 0 drwxr-xr-x 4 root root 80 Apr 28 20:22 /dev/chassis/SYS
  434 0 drwxr-xr-x 2 root root 200 Apr 28 23:06 /dev/chassis/SYS/HDD0
  435 0 lrwxrwxrwx 1 root root 12 Apr 28 23:16 /dev/chassis/SYS/HDD0/HDD0 -> 
../../../sda
  417 0 lrwxrwxrwx 1 root root 13 Apr 28 23:16 /dev/chassis/SYS/HDD0/HDD0p1 -> 
../../../sda1
  442 0 lrwxrwxrwx 1 root root 13 Apr 28 23:16 /dev/chassis/SYS/HDD0/HDD0p2 -> 
../../../sda2
  423 0 lrwxrwxrwx 1 root root 13 Apr 28 23:16 /dev/chassis/SYS/HDD0/HDD0p9 -> 
../../../sda9
  436 0 lrwxrwxrwx 1 root root 12 Apr 28 23:16 /dev/chassis/SYS/HDD0/disk -> 
../../../sda
  418 0 lrwxrwxrwx 1 root root 13 Apr 28 23:16 /dev/chassis/SYS/HDD0/p1 -> 
../../../sda1
  443 0 lrwxrwxrwx 1 root root 13 Apr 28 23:16 /dev/chassis/SYS/HDD0/p2 -> 
../../../sda2
  424 0 lrwxrwxrwx 1 root root 13 Apr 28 23:16 /dev/chassis/SYS/HDD0/p9 -> 
../../../sda9
  437 0 drwxr-xr-x 2 root root 80 Apr 28 20:22 /dev/chassis/SYS/HDD1
  438 0 lrwxrwxrwx 1 root root 12 Apr 28 23:16 /dev/chassis/SYS/HDD1/HDD1 -> 
../../../sdb
  439 0 lrwxrwxrwx 1 root root 12 Apr 28 23:16 /dev/chassis/SYS/HDD1/disk -> 
../../../sdb

  with 'zpool create ... rpool /dev/chassis/SYS/HDD0/HDD0p2'

  PS: The full version is 2.02~beta2-36ubuntu3.9 and ZoL
  0.6.5.6-0ubuntu15 (Ubuntu xenial 16.04).

  For simulation one may setup a VirtualBox VM, with Storage == Controller SAS 
(Type: LsiLogic SAS, Port Count: 8), and e.g. one VDI attached to it (/dev/sda) 
and e.g. netboot an install image. When it comes to the 'partitioning disks' 
dialog, start a shell and fetch/install ksh93 (i.e. ksh-udeb).
  Than the script http://iks.cs.ovgu.de/~elkner/tmp/ubuntu/bayLinks.sh can be 
used, to create the required dev symlinks (e.g. bayLinks.sh -mru). For 
convenience http://iks.cs.ovgu.de/~elkner/tmp/ubuntu/ubuntu-part.sh can be used 
to create the script for [re-]partitioning the drive[s] and setup zfs related 
stuff (whereby the 'zpool create' and consecutive stuff will fail because of 
the bug). E.g. /tmp/ubuntu-part.sh /dev/chassis/SYS/HDD0/HDD0 .

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

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to