[zfs-root] "device-mapper: reload ioctl on osprober-linux-sdaX failed: Device or resource busy" against devices owned by ZFS

Bug #1848496 reported by Tom Reynolds on 2019-10-17
142
This bug affects 29 people
Affects Status Importance Assigned to Milestone
os-prober (Ubuntu)
Undecided
Unassigned
zfs-linux (Ubuntu)
Undecided
Unassigned

Bug Description

On a 19.10 (pre-release, 20191016 daily) zfs installation, running 'os-prober' (as 'update-grub' does by default) triggers the following error message:

x@x:~$ sudo os-prober; echo $?
device-mapper: reload ioctl on osprober-linux-sda5 failed: Device or resource busy
Command failed.
0
x@x:~$

The exit code is 0, so update-grub does not fail as a result.

Partitions on the only available storage (automatically setup by installer):

x@x:~$ sudo fdisk /dev/sda -l
Disk /dev/sda: 10 GiB, 10737418240 bytes, 20971520 sectors
Disk model: VBOX HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: AB7BECFB-5946-48B2-9C59-D2B1261E29A5

Device Start End Sectors Size Type
/dev/sda1 2048 1050623 1048576 512M EFI System
/dev/sda2 1050624 1153023 102400 50M Linux filesystem
/dev/sda3 1153024 2070527 917504 448M Linux swap
/dev/sda4 2070528 6264831 4194304 2G Solaris boot
/dev/sda5 6264832 20971486 14706655 7G Solaris root
x@x:~$

ProblemType: Bug
DistroRelease: Ubuntu 19.10
Package: os-prober 1.74ubuntu2
ProcVersionSignature: Ubuntu 5.3.0-18.19-generic 5.3.1
Uname: Linux 5.3.0-18-generic x86_64
NonfreeKernelModules: zfs zunicode zavl icp zcommon znvpair
ApportVersion: 2.20.11-0ubuntu8
Architecture: amd64
CurrentDesktop: ubuntu:GNOME
Date: Thu Oct 17 14:19:59 2019
InstallationDate: Installed on 2019-10-17 (0 days ago)
InstallationMedia: Ubuntu 19.10 "Eoan Ermine" - Release amd64 (20191016.5)
SourcePackage: os-prober
UpgradeStatus: No upgrade log present (probably fresh install)

Tom Reynolds (tomreyn) wrote :
description: updated
Tom Reynolds (tomreyn) wrote :

Related logs from journalctl -b:
os-prober[6348]: debug: running /usr/lib/os-probes/10zvol-test on /dev/sda5
os-prober[6351]: debug: running /usr/lib/os-probes/50mounted-tests on /dev/sda5
50mounted-tests[6361]: debug: creating device mapper device /dev/mapper/osprober-linux-sda5
kernel: device-mapper: table: 253:0: linear: Device lookup failed
kernel: device-mapper: ioctl: error adding target to table

Running "sudo sh -x /usr/lib/os-probes/50mounted-tests /dev/sda5" shows that it fails with:

+ logger -t 50mounted-tests debug: creating device mapper device /dev/mapper/osprober-linux-sda5
+ dmsetup create -r osprober-linux-sda5
+ echo 0 14706655 linear /dev/sda5 0
device-mapper: reload ioctl on osprober-linux-sda5 failed: Device or resource busy
Command failed.
+ dm_device=
+ [ ]
+ do_unmount
+ [ ]
+ [ -e ]
+ rmdir /var/lib/os-prober/mount
+ exit 1

"sudo dmsetup ls" / status / info report that "No devices found".

Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in os-prober (Ubuntu):
status: New → Confirmed
Changed in zfs-linux (Ubuntu):
status: New → Confirmed
emk2203 (emk2203) wrote :

In my setup, I have 2 partitions after the Ubuntu partition (sda5). While update-grub runs through, the os-prober seems to abort and never finds the following Windows 10 partition.

emk2203 (emk2203) wrote :

A try with
    GRUB_OS_PROBER_SKIP_LIST="16144709171658112187@/dev/sda5"
in /etc/default/grub fails to work around the issue. The error remains.

fermulator (fermulator) wrote :

Please also see https://github.com/zfsonlinux/zfs/issues/9801 - it has a full set of technical details related to this topic.

Compiler (pranav.bhattarai) wrote :

I just installed Ubuntu 19.10 and update & upgraded everything.

And this error is what causing a weird issue while booting.

Laptop boots like, Pruple Screen > Dell logo > Purple > actually starts booting.

fermulator (fermulator) on 2020-03-10
summary: - [zfs-root] device-mapper: reload ioctl on osprober-linux-sda5 failed:
- Device or resource busy
+ [zfs-root] "device-mapper: reload ioctl on osprober-linux-sdaX failed:
+ Device or resource busy" against devices owned by ZFS
information type: Public → Public Security
information type: Public Security → Private Security
information type: Private Security → Public

Just ran into this error today.
Recently upgraded to 19.10 and decided to try the ZFS instead of mdadm mirroring.
All was going well; until I tried to install cifs-utils for a Samba link to my office --> error (exact as in title).
This worked fine on my previous 18.04 load.
The link in #7 says a fix would 'be nice to have'; but not being able to load cifs for xfreerdp is a big problem for me.
Have not yet found any work-around.
suggestions?

Just to let you know, this error is now preventing me from updating to the 20.04 release (forced).
I have twin 500GB drives as ZFS boot device. The upgrade/install of 20.04 shows this error several times and ultimately fails.
Do I have to wait for 20.04.01 in July?

Richard Laager (rlaager) wrote :

brian-willoughby (and pranav.bhattarai):

The original report text confirms that "The exit code is 0, so update-grub does not fail as a result." That matches my understanding (as someone who has done a lot of ZFS installs maintaining the upstream Root-on-ZFS HOWTO) that this is purely cosmetic.

If you're not actually running other operating systems, you can simply remove the os-prober package to make the errors go away.

I'm not saying it shouldn't be fixed. But it's not actually breaking your systems, right?

fermulator (fermulator) wrote :

Agree w/ @rlaager, this SHOULD NOT be functionally impacting in any way. The update-grub command is not actually failing, just spewing errors during os-prober. We want to clean it up (it is cosmetic).

device-mapper: reload ioctl on osprober-linux-sda7 failed: Device or resource busy
Command failed.
done

apt purge os-prober worked for me not getting any errors when updating grub now thanks

one more thing knocked of the list YAY!

fermulator (fermulator) wrote :

@chilewskirbuu that is a reasonable workaround - NOTE: it would break dual-boot though, so WARNING: don't use that as a workaround unless you are sure you are not using dual boot;

@fermulator Thanks will keep that in Mind But I am doing Single Boot only.

@fermulator at the moment this is bug breaks dualboot anyway, since it will not probe my Windows os before failing and stopping. So I have to resort to using f12 to select the disk. I suppose it will be worse for people with dual boot on one drive, but they will not be able to install ZoL as easily via the installer.

Is there any workaround that allows os-prober to find the Windows partitions? Or, failing that, a way to just run the part of os-prober that prints out the appropriate grub config section (I know what the partition is so if there's a way to just run something like "os-prober-windows /dev/sdb1" that would be perfect).

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

Duplicates of this bug

Other bug subscribers

Remote bug watches

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