cifs in opensolaris 2008.11
I decided to upgrade my home storage server to opensolaris 2008.11 yesterday. I built it on nevada 60 and then 62 (zfs boot) almost two years ago and upgraded it to nevada 97 a few months ago.
I had installed 2008.11 in vmware at work, and was pretty impressed at the whole package. I had been playing with some of the new tech on my older versions (IPS, in-kernel cifs), and I figured now was the time to start over with the boot drive since 2008.11 seems like a pretty stable point.
I use the storage server to serve out mp3s to another box which has itunes on it, so first thing to get working was file sharing. 2008.11 comes with the smb client, but no server. To install the server:
-bash-3.2$ pfexec pkg install SUNWsmbs
-bash-3.2$ pfexec pkg install SUNWsmbskr
Now let's see if it's running:
-bash-3.2$ svcs -a | grep smb
disabled 21:20:49 svc:/network/smb/client:default
maintenance 15:24:09 svc:/network/smb/server:default
Uh oh.. Why?
-bash-3.2$ svcs -xv
svc:/network/smb/server:default (smbd daemon)
State: maintenance since Sat Jan 03 15:24:09 2009
Reason: Start method exited with $SMF_EXIT_ERR_FATAL.
See: http://sun.com/msg/SMF-8000-KS
See: man -M /usr/share/man -s 1M smbd
See: /var/svc/log/network-smb-server:default.log
Impact: This service is not running.
-bash-3.2$ cat /var/svc/log/network-smb-server:default.log
[ Jan 3 15:24:05 Disabled. ]
[ Jan 3 15:24:05 Rereading configuration. ]
[ Jan 3 15:24:06 Enabled. ]
[ Jan 3 15:24:08 Executing start method ("/usr/lib/smbsrv/smbd start"). ]
smbd: NetBIOS services started
smbd: kernel bind error: No such file or directory
smbd: daemon initialization failed
[ Jan 3 15:24:09 Method "start" exited with status 95. ]
Hmm. After a little digging I came to understand that the kernel drivers weren't installed properly. Must be a 2008.11 bug. In any case:
-bash-3.2$ pfexec /usr/sbin/rem_drv smbsrv
Invalid argument
Cannot remove major number binding for 260
-bash-3.2$ pfexec /usr/sbin/add_drv smbsrv
Seemed to work.
-bash-3.2$ pfexec /usr/sbin/svcadm disable smb/server
-bash-3.2$ pfexec /usr/sbin/svcadm enable smb/server
-bash-3.2$ svcs -a | grep smb
disabled 15:38:54 svc:/network/smb/client:default
online 15:50:41 svc:/network/smb/server:default
Great. Now let's finish up:
-bash-3.2$ pfexec /usr/sbin/smbadm join -w soho
Successfully joined workgroup 'soho'
Now, I added a line to /etc/pam.conf as specified here so that when we set a password, the proper cifs password is also created.
Now set the password for your user:
-bash-3.2$ passwd oliver
Enter existing login password:
New Password:
Re-enter new Password:
passwd: password successfully changed for oliver
and then set your zfs share to work on cifs:
-bash-3.2$ pfexec /usr/sbin/zfs set sharesmb=on tank/media
There we have it! Much nicer than futzing around in smb.conf.


Post new comment