Pages

Thursday, September 29, 2005

Troubleshooting: Solaris {vold} refuses to mount & ejects CD/DVD

Problem:

While Volume Management Daemon (vold) is running, Solaris rejects all CD/DVD media and ejects 'em as soon as they were inserted in the CD/DVD drive. However manual mounting of the same media works, with no issues.

Solution:

vold needs the removable media device server smserver, to be running in order to manage the removable media devices. So, make sure smserver is enabled, and on-line.
# svcs -l smserver
fmri svc:/network/rpc/smserver:default
name removable media management
enabled false
state disabled

next_state none
state_time Thu Sep 29 20:25:19 2005
restarter svc:/network/inetd:default
contract_id
dependency require_all/restart svc:/network/rpc/bind (online)

smserver is not running, and the following lines from truss output confirms that client (vold) is not able to communicate with the smserver.
/9:     open("/var/run/smedia_svc", O_RDONLY)           = 35
/9: door_call(35, 0xD244DCA0) Err#9 EBADF
/9: close(35) = 0

The above series of calls can be easily mapped to the Solaris source code hosted at OpenSolaris web site, starting from call to smedia_get_handle in medium.c, and then tracing the calls further {in source code}.

Comments in smediad.c source file helps understanding the implementation a bit.

So to resolve this issue, simply bring smserver online. Let's continue with the above example.
# svcadm -v enable smserver
svc:/network/rpc/smserver:default enabled.

# svcs -p smserver
STATE STIME FMRI
online 21:17:43 svc:/network/rpc/smserver:default

Now vold is able to communicate with smserver and did its job of mounting the removable media (CD).

Excerpt from truss output:
/10:    open("/var/run/smedia_svc", O_RDONLY)           = 36
/10: door_call(36, 0xD244DDB8) = 0
/10: close(36) = 0

Here's the df output:
# df -h | grep cdrom
/vol/dev/dsk/c1t0d0/wgr614v5 239M 239M 0K 100% /cdrom/wgr614v5
________________
Technorati tag: |

2 comments:

  1. This solved my problem. After upgrading from Sol 8 to Sol 10, the CD/DVD would always eject and not mount.

    Doing svcadm -v enable smserver fixed it.

    Will this survive a reboot?
    allen.cohen@gd-ais.com

    ReplyDelete
  2. > Will this survive a reboot?

    Yes, it would.

    ReplyDelete