[zfs-root] "device-mapper: reload ioctl on osprober-linux-sdaX failed: Device or resource busy" against devices owned by ZFS
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-
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
ProcVersionSign
Uname: Linux 5.3.0-18-generic x86_64
NonfreeKernelMo
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 : | #2 |
Launchpad Janitor (janitor) wrote : | #3 |
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 : | #5 |
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 : | #6 |
A try with
GRUB_
in /etc/default/grub fails to work around the issue. The error remains.
fermulator (fermulator) wrote : | #7 |
Please also see https:/
Compiler (pranav.bhattarai) wrote : | #8 |
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.
Compiler (pranav.bhattarai) wrote : | #9 |
A proof: https:/
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 : | #12 |
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 : | #13 |
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).
Robert Chilewski (chilewskirbuu) wrote : | #14 |
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 : | #15 |
@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;
Robert Chilewski (chilewskirbuu) wrote : | #16 |
@fermulator Thanks will keep that in Mind But I am doing Single Boot only.
Gijs Vermariën (gijs-vermarien) wrote : | #17 |
@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.
Brendan Dolan-Gavitt (brendandg) wrote : | #18 |
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).
Related logs from journalctl -b: os-probes/ 10zvol- test on /dev/sda5 os-probes/ 50mounted- tests on /dev/sda5 tests[6361] : debug: creating device mapper device /dev/mapper/ osprober- linux-sda5
os-prober[6348]: debug: running /usr/lib/
os-prober[6351]: debug: running /usr/lib/
50mounted-
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 os-prober/ mount
+ 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/
+ exit 1
"sudo dmsetup ls" / status / info report that "No devices found".