Public bug reported:
root@q-1-d.sv1:~# lsb_release -rd
Description:Ubuntu 16.04.1 LTS
Release:16.04
root@q-1-d.sv1:~# apt-cache policy grub2-common
grub2-common:
Installed: 2.02~beta2-36ubuntu3.2
Candidate: 2.02~beta2-36ubuntu3.2
Version table:
*** 2.02~beta2-36ubuntu3.2 500
500 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64
Packages
100 /var/lib/dpkg/status
2.02~beta2-36ubuntu3 500
500 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 Packages
I followed https://github.com/zfsonlinux/zfs/wiki/Ubuntu-16.04-Root-on-ZFS to
make a ZFS native root disk system.
Installation went fine, systems works like a champ... but then, after a
while, it's time to apt-get update ; apt-get upgrade to update my
kernel. That apt-get install fails because grub can't detect it's root
file system:
root@q-2-d.sv1:~# grub-probe /
grub-probe: error: unknown filesystem.
Strange, this use to work. Add in a -vv and I see:
grub-core/kern/fs.c:56: Detecting zfs...
grub-core/osdep/hostdisk.c:415: opening the device `/dev/sda1' in open_device()
grub-core/fs/zfs/zfs.c:1192: label ok 0
grub-core/osdep/hostdisk.c:394: reusing open device `/dev/sda1'
grub-core/fs/zfs/zfs.c:1007: check 2 passed
grub-core/fs/zfs/zfs.c:1018: check 3 passed
grub-core/fs/zfs/zfs.c:1025: check 4 passed
grub-core/fs/zfs/zfs.c:1035: check 6 passed
grub-core/fs/zfs/zfs.c:1043: check 7 passed
grub-core/fs/zfs/zfs.c:1054: check 8 passed
grub-core/fs/zfs/zfs.c:1064: check 9 passed
grub-core/fs/zfs/zfs.c:1086: check 11 passed
grub-core/fs/zfs/zfs.c:1112: check 10 passed
grub-core/fs/zfs/zfs.c:1128: str=com.delphix:hole_birth
grub-core/fs/zfs/zfs.c:1128: str=com.delphix:embedded_data
grub-core/fs/zfs/zfs.c:1137: check 12 passed (feature flags)
grub-core/fs/zfs/zfs.c:1875: zio_read: E 0: size 2048/2048
grub-core/fs/zfs/zfs.c:1898: endian = -1
grub-core/fs/zfs/zfs.c:595: dva=8, b00258
grub-core/osdep/hostdisk.c:394: reusing open device `/dev/sda1'
grub-core/fs/zfs/zfs.c:442: checksum fletcher4 verification failed
grub-core/fs/zfs/zfs.c:447: actual checksum 0059d95adad1 6322fba304b3
00430f321ad7f439 21e873b51c15e3bc
grub-core/fs/zfs/zfs.c:452: expected checksum 00035ca143fb 062fc3a48ff8
0005b49e0d96b07e 03841abf1fed586a
grub-core/fs/zfs/zfs.c:1919: incorrect checksum
grub-core/kern/fs.c:78: zfs detection failed.
Now here's the fun part. Rebooting the system will fix the checksum
issue for a short amount of time. Here is what it looks like
immediately after a reboot:
root@q-1-d.sv1:~# grub-probe /
zfs
grub-core/kern/fs.c:56: Detecting zfs...
grub-core/osdep/hostdisk.c:415: opening the device `/dev/sda1' in open_device()
grub-core/fs/zfs/zfs.c:1192: label ok 0
grub-core/osdep/hostdisk.c:394: reusing open device `/dev/sda1'
grub-core/fs/zfs/zfs.c:1007: check 2 passed
grub-core/fs/zfs/zfs.c:1018: check 3 passed
grub-core/fs/zfs/zfs.c:1025: check 4 passed
grub-core/fs/zfs/zfs.c:1035: check 6 passed
grub-core/fs/zfs/zfs.c:1043: check 7 passed
grub-core/fs/zfs/zfs.c:1054: check 8 passed
grub-core/fs/zfs/zfs.c:1064: check 9 passed
grub-core/fs/zfs/zfs.c:1086: check 11 passed
grub-core/fs/zfs/zfs.c:1112: check 10 passed
grub-core/fs/zfs/zfs.c:1128: str=com.delphix:hole_birth
grub-core/fs/zfs/zfs.c:1128: str=com.delphix:embedded_data
grub-core/fs/zfs/zfs.c:1137: check 12 passed (feature flags)
grub-core/fs/zfs/zfs.c:1875: zio_read: E 0: size 2048/2048
grub-core/fs/zfs/zfs.c:1898: endian = -1
grub-core/fs/zfs/zfs.c:595: dva=8, c001c0
grub-core/osdep/hostdisk.c:394: reusing open device `/dev/sda1'
grub-core/fs/zfs/zfs.c:2678: endian = -1, blkid=0
grub-core/fs/zfs/zfs.c:2020: endian = -1
grub-core/fs/zfs/zfs.c:2051: endian = -1
grub-core/fs/zfs/zfs.c:1875: zio_read: E 0: size 16384/4096
grub-core/fs/zfs/zfs.c:1898: endian = -1
grub-core/fs/zfs/zfs.c:595: dva=8, c001b8
grub-core/osdep/hostdisk.c:394: reusing open device `/dev/sda1'
grub-core/fs/zfs/zfs.c:2020: endian = 1
grub-core/fs/zfs/zfs.c:2046: endian = 1
grub-core/fs/zfs/zfs.c:1875: zio_read: E 0: size 16384/4096
grub-core/fs/zfs/zfs.c:1898: endian = 1
grub-core/fs/zfs/zfs.c:595: dva=8, c001a0
grub-core/fs/zfs/zfs.c:2682: alive
grub-core/fs/zfs/zfs.c:2493: looking for 'features_for_read'
grub-core/fs/zfs/zfs.c:2020: endian = 1
grub-core/fs/zfs/zfs.c:2046: endian = 1
grub-core/fs/zfs/zfs.c:1875: zio_read: E 0: size 16384/4096
grub-core/fs/zfs/zfs.c:1898: endian = 1
grub-core/fs/zfs/zfs.c:595: dva=8, 200
grub-core/osdep/hostdisk.c:394: reusing open device `/dev/sda1'
grub-core/fs/zfs/zfs.c:2503: zap read
grub-core/fs/zfs/zfs.c:2516: fat zap
grub-core/fs/zfs/zfs.c:2020: endian = 1
grub-core/fs/zfs/zfs.c:2046: endian = 1
grub-core/fs/zfs/zfs.c:1875: zio_read: E 0: size 16384/4096
grub-core/fs/zfs/zfs.c:1898: endian = 1
grub-core/fs/zfs/zfs.c:595: dva=8, bb0c48
grub-core/osdep/hostdisk.c:394: reusing open device `/dev/sda1'
grub-core/fs/zfs/zfs.c:2276: fzap: length 18
grub-core/fs/zfs/zfs.c:2520: returned 0
grub-core/fs/zfs/zfs.c:2020: