System Administration Guide: Devices and File Systems
Previous Next

What's New in Removable Media?

The following section describes new removable media features in the Solaris release.

For a complete listing of new Solaris features and a description of Solaris releases, see Solaris Express Developer Edition What’s New.

Changes and Improvements to Removable Media Management

Solaris Express 12/06: Previous features for managing removable media have been removed and replaced with services and methods that provide better removable media management.

For information about using vold in previous Solaris 10 releases, see System Administration Guide: Devices and File Systems.

The following new features are available:

  • New removable media services are enabled and disabled by using SMF.

    online         12:17:54 svc:/system/hal:default
    online         12:17:56 svc:/system/filesystem/rmvolmgr:default
    online         12:17:26 svc:/system/dbus:default
  • Removable media is now mounted automatically in the /media directory. However, symbolic links to /media are provided from previous media mount points, /cdrom and /rmdisk, for compatibility purposes.

    For example, a compact flash memory card (/dev/dsk/c4d0p0:1) is mounted as follows:

    $ ls /media/NIKON

    For example, a USB memory stick (/dev/dsk/c3t0d0s0) is mounted as follows:

    $ ls /media/U3

    For example, a diskette (/dev/diskette0) is mounted as follows:

    $ ls /media/floppy
  • The default removable media volume manager, rmvolmgr, is responsible for following activities:

    • Mounting and unmounting volumes.

    • The root instance of rmvolmgr starts at system boot. However, you can configure your session's configuration files to start an instance of rmvolmgr when you log in. When run within a user session, rmvolmgr only mounts devices owned by the current user or session and does not conflict with the root instance.

    • When rmvolmgr exits, it unmounts all media that it mounted.

    • For compatibility purposes, rmvolmgr creates symbolic links under the /cdrom, /floppy, /rmdisk directories to the actual mount points under /media.

    • A special rmvolmgr run mode is available for CDE compatibility.

  • The hardware abstraction layer (HAL) daemon, hald, provides a view of the device attached to a system. This view is updated automatically as hardware configuration changes, by hotplugging or other mechanisms.

    HAL represents a piece of hardware as a device object. A device object is identified by a unique device identifier (UDI) and carries a set of key-value pairs referred to as device properties. Some properties are derived from the actual hardware, some are merged from device information files (.fdi files) and some are related to the actual device configuration.

The following features are removed:

  • The vold daemon, the volfs file system, and the volfs service have been removed.

    svc:/system/filesystem/volfs
  • Logical device names for removable media under the /vol directory, such as /vol/dev/rdsk/... or /vol/dev/aliases/..., are no longer provided.

    To access removable media by its logical device name, the /dev device should be used. For example:

    /dev/rdsk/c0t6d0s2
  • Some vold device nicknames are no longer available. The following eject -l output identified the available device nicknames for each device and in this example, the mounted media pathname (/media/SOL_11_X86_4):

    $ eject -l
    /dev/dsk/c2t0d0s2    cdrom,cdrom0,cd,cd0,sr,sr0,SOL_11_X86_4,/media/SOL_11_X86_4
    /dev/diskette        floppy,floppy0,fd,fd0,diskette,diskette0,rdiskette,rdiskette0

    The comma-separated list shows the nicknames that can be used to eject each device.

  • Customizations that were made in vold.conf and rmmount.conf are no longer available because these configuration files no longer exist. For information about managing media customizations, see Customizing Removable Media Management.

  • Commands that begin with vol* commands except for volcheck and volrmmount.

Backward Compatibility

The following features provide backward compatibility with previous Solaris removable media features:

  • Removable media mount points have moved to the /media directory, which is used to mount removable media, such as CD-ROMs and USB devices. Symbolic links to /media from previous media mounts points, such as /cdrom and /rmdisk, are provided for compatibility purposes.

  • The rmformat command is still available. The output of this command is identical to what it looks in previous Solaris releases with vold disabled.

    For example:

    # rmformat
    Looking for devices...
         1. Logical Node: /dev/rdsk/c0t6d0s2
            Physical Node: /pci@1f,4000/scsi@3/sd@6,0
            Connected Device: TOSHIBA  DVD-ROM SD-M1401 1009
            Device Type: DVD Reader
            Bus: SCSI
            Size: 2.9 GB
            Label: <None>
            Access permissions: <Unknown>
  • The eject command is available but has been enhanced. For more information, see Ejecting Removable Media.

Mounting and Unmounting Removable Media

Most commands that begin with vol* are removed in this release. A modified version of rmmount and a new rmumount command are available to mount and unmount removable media.

These commands can be used to mount by device name, label, or mount point. For example, to mount an iPod:

% rmmount ipod

For example, to unmount the file systems on a DVD:

# rmumount cdrom
cdrom /dev/dsk/c0t6d0s5 unmounted
cdrom /dev/dsk/c0t6d0s0 unmounted

For more information, see rmmount(1M).

Mounting and Unmounting Diskettes

You can use the existing volcheck command to manually poll diskettes and mount them if a new diskette is detected.

If you manually reformat diskette after it is connected to the system, HAL is not automatically notified. Continue to use the volcheck command to notify the system and attempt to automount a new file system on a diskette.

Ejecting Removable Media

As in previous Solaris releases, use the eject command to unmount and eject removable media. However, the following eject options are available:

-f

Forces the device to eject even if the device is busy.

-l

Displays paths and nicknames of devices that can be ejected.

-t

A CD-ROM tray close command is provided to the device. Not all devices support this option.

For example, to eject by its volume label:

% eject mypictures

As in previous Solaris releases, you might need to issue the volcheck command before using the eject command to eject a diskette.

For more information, see eject(1).

Customizing Removable Media Management

For most customizations that were available in the vold.conf and rmmount.conf files, you will need to either use Desktop Volume manager preferences or modify the .fdi files.

  • For rmmount.conf actions, you will need to use either Desktop Volume Manager actions, gconf, or HAL callouts.

  • Previously, rmmount.conf actions could be run as root on behalf of ordinary users. Now, this is done by installing callout executables in the /usr/lib/hal directory.

Disabling Removable Media Features

You can disable some or all removable media features in this release:

  • To prevent volumes from mounting outside of user sessions, disable the rmvolmgr service. For example:

    # svcadm disable rmvolmgr
  • To prevent any volume management, disable the dbus, hal, and rmvolmgr services.

    # svcadm disable rmvolmgr
    # svcadm disable dbus
    # svcadm disable hal

vold is Managed by the Service Management Facility (SMF)


Note - Starting in the Solaris Express 12/06 release, vold is removed. For information about managing removable media with vold in Solaris 10 releases, see System Administration Guide: Devices and File Systems.


Solaris Express 11/05: The volume management daemon, vold, is now managed by the Service Management Facility (SMF). This means you can use the svcadm disable command to disable the following new volfs service, if appropriate:

# svcadm disable volfs

You can identify the status of the volfs service by using this command:

$ svcs volfs
STATE          STIME    FMRI
online         Sep_29   svc:/system/filesystem/volfs:default

For more information, see smf(5).

You can use the svccfg command to display and to set additional vold properties. For example, you could temporarily enable vold logging to help troubleshooting a problem. For example:

# svccfg
svc:> select system/filesystem/volfs
svc:/system/filesystem/volfs> setprop vold/log_debuglevel=3
svc:/system/filesystem/volfs> exit
# svcadm disable volfs
# svcadm enable volfs

You can also use the svccfg command to display a listing of settable vold properties.

# svccfg
svc:> select volfs
svc:/system/filesystem/volfs> listprop vold/*
vold/config_file            astring  
vold/log_debuglevel         count    3
vold/log_file               astring  
vold/log_nfs_trace          boolean  false
vold/log_verbose            boolean  false
vold/root_dir               astring  
vold/never_writeback_label  boolean  false
svc:/system/filesystem/volfs> exit

Improvements to Volume Management (vold)


Note - Starting in the Solaris Express 12/06 release, vold is removed. For information about managing removable media with vold in Solaris 10 releases, see System Administration Guide: Devices and File Systems.


Solaris Express 11/05: Removable media management is improved. Previously, vold did not create device links for removable devices that contain no media. Now, device links are properly created for devices that contain no media, similar to the following:

lrwxrwxrwx   1 root     root     28 Jun 13 13:09 /vol/dev/aliases/cdrom0 ->
 /vol/dev/rdsk/c2t2d0/nomedia

Now, you can use the cdrw and rmformat commands to list devices that have no media when vold is running.

You can revert back to the previous vold behavior by changing the following support nomedia entry in the /etc/vold.conf file as follows:

support media

Then, restart vold.

In addition, vold is now hot-plug aware. This improvement means that if you insert removable media, the media is automatically detected and mounted by vold. There should be no need to restart vold manually to recognize and mount a file system from any removable media device.

If you are using a legacy or non-USB diskette device, then you might need to issue the volcheck command before vold can recognize the media.

If the media is detected, but for some reason, is unmounted, then you'll need to run the following commands:

# volrmmount -i rmdisk0

Before you hot-remove a removable media device, eject the media first. For example:

# eject rmdisk0
Previous Next