Problems with gnome-mount and UFS volumes
Kevin Oberman
oberman at es.net
Tue Feb 16 17:37:02 UTC 2010
> From: Joe Marcus Clarke <marcus at marcuscom.com>
> Date: Tue, 16 Feb 2010 02:04:02 -0500
>
> On Mon, 2010-02-08 at 15:56 -0800, Kevin Oberman wrote:
> > I use a UFS formatted USB disk for my VirtualBox container. When I plug
> > it in, gnome-mount mounts it fine, but I can never unmount it. It
> > unmounts fine, but remounts again immediately. No errors (and I would not
> > expect any). I remember when this was a problem for MSDOSFS disks, but
> > some magic was done to prevent this. It does not seem to work for UFS,
> > though.
> >
> > Is there a reasonable way to prevent this from happening? I'd really like
> > t be able to unplug this disk when I shut down the VirtualBox container.
> >
> > Running the latest versions of all of the gnome ports and hald.
> >
> > I would normally attach lshal output, but, since everything runs cleanly
> > and without error, I don't know that it is needed. If so, let me know.
>
> How is the device remounted? That is, when the device gets remounted,
> what does the output of mount(8) look like?
Here is the sequence of events I see:
1. Plug in disk
2. HAL reports the error "org.freedesktop.Hal.UnknownError. An unknown
error occurred" I get two pop-ups with this, si I assume it is failing
twice.
2a. The device is mounted. (I assume this is a problem with trying to
mount the multiple different instances of the device in /dev, /dev/ufs,
and /dev/ufsid).
3. mount(8) shows:
/dev/ufs/WindowsVBd on /media/WindowsVB (ufs, local,nosuid, soft-updates)
4. Request umount of device
5. Device unmounts correctly
6. Device immediately re-mounts as in 2 and 2a, including errors
7. mount now shows:
/dev/ufs/WindowsVBd on /media/WindowsVB_ (ufs, local, nosuid, soft-updates)
The only difference is the '_' added to the mount point as the prior
mount point was not deleted when the disk was unmounted.
The things I wonder about is confusion due to the three /dev entries,
two of which start with '/dev/ufs' and the 'd' appended to the /dev/ufs
name due to the fact that it is the 'd' partition of the slice.
Here are the relevant entries from lshal:
udi = '/org/freedesktop/Hal/devices/storage_model_MK4019GAX'
block.device = '/dev/da1' (string)
block.freebsd.cam_path = '3,0,0' (string)
block.is_volume = false (bool)
block.major = 0 (0x0) (int)
block.minor = 152 (0x98) (int)
block.storage_device = '/org/freedesktop/Hal/devices/storage_model_MK4019GAX' (string)
freebsd.device_file = '/dev/da1' (string)
freebsd.driver = 'da' (string)
freebsd.unit = 1 (0x1) (int)
info.capabilities = {'block', 'storage'} (string list)
info.category = 'storage' (string)
info.parent = '/org/freedesktop/Hal/devices/usb_device_4b4_6830_DEF10A1E481F_if0_scsi_host_scsi_device_lun0' (string)
info.product = 'MK4019GAX' (string)
info.subsystem = 'block' (string)
info.udi = '/org/freedesktop/Hal/devices/storage_model_MK4019GAX' (string)
info.vendor = 'TOSHIBA' (string)
storage.automount_enabled_hint = true (bool)
storage.bus = 'usb' (string)
storage.drive_type = 'disk' (string)
storage.firmware_revision = '0000' (string)
storage.hotpluggable = true (bool)
storage.lun = 0 (0x0) (int)
storage.media_check_enabled = false (bool)
storage.model = 'MK4019GAX' (string)
storage.no_partitions_hint = false (bool)
storage.originating_device = '/org/freedesktop/Hal/devices/usb_device_4b4_6830_DEF10A1E481F_if0' (string)
storage.removable = false (bool)
storage.removable.support_async_notification = false (bool)
storage.requires_eject = false (bool)
storage.vendor = 'TOSHIBA' (string)
udi = '/org/freedesktop/Hal/devices/volume_part2_size_40007729664'
block.device = '/dev/da1s1' (string)
block.is_volume = true (bool)
block.major = 0 (0x0) (int)
block.minor = 153 (0x99) (int)
block.storage_device = '/org/freedesktop/Hal/devices/storage_model_MK4019GAX' (string)
info.capabilities = {'block', 'volume'} (string list)
info.category = 'volume' (string)
info.parent = '/org/freedesktop/Hal/devices/storage_model_MK4019GAX' (string)
info.product = 'Volume' (string)
info.subsystem = 'block' (string)
info.udi = '/org/freedesktop/Hal/devices/volume_part2_size_40007729664' (string)
volume.block_size = 512 (0x200) (uint64)
volume.fstype = '' (string)
volume.fsusage = 'partitiontable' (string)
volume.ignore = true (bool)
volume.is_disc = false (bool)
volume.is_mounted = false (bool)
volume.is_mounted_read_only = false (bool)
volume.is_partition = true (bool)
volume.label = '' (string)
volume.mount_point = '' (string)
volume.num_blocks = 78140097 (0x4a852c1) (uint64)
volume.partition.media_size = 40007729664 (0x950a58200) (uint64)
volume.partition.number = 2 (0x2) (int)
volume.partition.scheme = 'mbr' (string)
volume.partition.start = 32256 (0x7e00) (uint64)
volume.partition.type = '0x0' (string)
volume.size = 40007729664 (0x950a58200) (uint64)
volume.uuid = '' (string)
udi = '/org/freedesktop/Hal/devices/volume_size_40007729664'
block.device = '/dev/ufs/WindowsVB' (string)
block.is_volume = true (bool)
block.major = 0 (0x0) (int)
block.minor = 156 (0x9c) (int)
block.storage_device = '/org/freedesktop/Hal/devices/storage_model_MK4019GAX' (string)
info.capabilities = {'block', 'volume'} (string list)
info.category = 'volume' (string)
info.parent = '/org/freedesktop/Hal/devices/volume_part2_size_40007729664' (string)
info.product = 'Volume' (string)
info.subsystem = 'block' (string)
info.udi = '/org/freedesktop/Hal/devices/volume_size_40007729664' (string)
volume.block_size = 512 (0x200) (uint64)
volume.fstype = '' (string)
volume.fsusage = 'partitiontable' (string)
volume.ignore = true (bool)
volume.is_disc = false (bool)
volume.is_mounted = false (bool)
volume.is_mounted_read_only = false (bool)
volume.is_partition = false (bool)
volume.label = '' (string)
volume.mount_point = '' (string)
volume.num_blocks = 78140097 (0x4a852c1) (uint64)
volume.size = 40007729664 (0x950a58200) (uint64)
volume.uuid = '' (string)
udi = '/org/freedesktop/Hal/devices/volume_label_WindowsVB'
block.device = '/dev/ufs/WindowsVBd' (string)
block.is_volume = true (bool)
block.major = 0 (0x0) (int)
block.minor = 158 (0x9e) (int)
block.storage_device = '/org/freedesktop/Hal/devices/storage_model_MK4019GAX' (string)
info.capabilities = {'block', 'volume'} (string list)
info.category = 'volume' (string)
info.interfaces = {'org.freedesktop.Hal.Device.Volume'} (string list)
info.parent = '/org/freedesktop/Hal/devices/volume_size_40007729664' (string)
info.product = 'WindowsVB' (string)
info.subsystem = 'block' (string)
info.udi = '/org/freedesktop/Hal/devices/volume_label_WindowsVB' (string)
org.freedesktop.Hal.Device.Volume.method_argnames = {'mount_point fstype extra_options', 'extra_options', 'extra_options'} (string list)
org.freedesktop.Hal.Device.Volume.method_execpaths = {'hal-storage-mount', 'hal-storage-unmount', 'hal-storage-eject'} (string list)
org.freedesktop.Hal.Device.Volume.method_names = {'Mount', 'Unmount', 'Eject'} (string list)
org.freedesktop.Hal.Device.Volume.method_signatures = {'ssas', 'as', 'as'} (string list)
volume.block_size = 512 (0x200) (uint64)
volume.freebsd.ufsid = '4aa57672516741c2' (string)
volume.fstype = 'ufs' (string)
volume.fsusage = 'filesystem' (string)
volume.fsversion = '2' (string)
volume.ignore = false (bool)
volume.is_disc = false (bool)
volume.is_mounted = true (bool)
volume.is_mounted_read_only = false (bool)
volume.is_partition = false (bool)
volume.label = 'WindowsVB' (string)
volume.mount.valid_options = {'ro', 'noexec', 'noatime'} (string list)
volume.mount_point = '/media/WindowsVB_' (string)
volume.num_blocks = 78140097 (0x4a852c1) (uint64)
volume.size = 40007729664 (0x950a58200) (uint64)
volume.uuid = '' (string)
--
R. Kevin Oberman, Network Engineer
Energy Sciences Network (ESnet)
Ernest O. Lawrence Berkeley National Laboratory (Berkeley Lab)
E-mail: oberman at es.net Phone: +1 510 486-8634
Key fingerprint:059B 2DDF 031C 9BA3 14A4 EADA 927D EBB3 987B 3751
More information about the freebsd-gnome
mailing list