On Thu, Feb 28, 2013 at 08:15:08AM -0700, Ryan Barry wrote:
Run with LIBGUESTFS_ATTACH_METHOD=appliance
Fails with:
inspect_os: mount_ro: /dev/sda on / (options: 'ro'): mount: /dev/sda is already
mounted or /sysroot busy at
/usr/share/perl5/vendor_perl/Sys/VirtConvert/GuestfsHandle.pm line 194.
util-linux prints this when the mount syscall returns -EBUSY.
The man page for mount(2) gives these reasons:
EBUSY
source is already mounted.
[probably not]
Or, it cannot be remounted read-only, because it still holds files
open for writing.
[while we are mounting r/o, we're not *re*mounting, and in any case
we shouldn't have any files open for write]
Or, it cannot be mounted on target because target is still busy (it
is the working directory of some thread, the mount point of another
device, has open files, etc.).
[Could some other process have /sysroot open? The only candidate
is udev.]
I also looked at the Linux kernel code to see if there are any other
reasons why do_mount would return -EBUSY. The only obvious ones are:
- remounting read-only with files open for write
- mounting the same filesystem a second time on the same mountpoint
- mountpoint has open files, current working directories, chroots
or sub-mounts
None of these seem as if they are likely reasons.
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming blog:
http://rwmj.wordpress.com
Fedora now supports 80 OCaml packages (the OPEN alternative to F#)