Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 16 Feb 2010 09:36:58 -0800
From:      "Kevin Oberman" <oberman@es.net>
To:        Joe Marcus Clarke <marcus@marcuscom.com>
Cc:        gnome@freebsd.org
Subject:   Re: Problems with gnome-mount and UFS volumes
Message-ID:  <20100216173658.AE7821CC09@ptavv.es.net>
In-Reply-To: Your message of "Tue, 16 Feb 2010 02:04:02 EST." <1266303842.9582.21.camel@shumai.marcuscom.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
> From: Joe Marcus Clarke <marcus@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@es.net			Phone: +1 510 486-8634
Key fingerprint:059B 2DDF 031C 9BA3 14A4  EADA 927D EBB3 987B 3751



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100216173658.AE7821CC09>