Table of Contents
Mount CIFS / SMB filesystem on AIX
Intro
These instructions explain how to mount a filesystem exported from windows or a server running Samba on to a AIX server, this is the client side setup, not how to set up an AIX server to export a UNIX filesystem to windows.
The AIX server needs the following package:-
bash-3.00# lslpp -l | grep cifs bos.cifs_fs.rte 6.1.2.0 COMMITTED Runtime for SMBFS
If you need to install it, mount b0045nim.brm.pri:/export/nim/lppsource to somewhere like /mnt/b0045nim and cd to /mnt/b0045nim/aixv61/installp/ppc (for AIX6.1). You can see the available cifs packages with:-
bash-3.00# ls | grep cifs bos.cifs_fs.6.1.0.0.I bos.cifs_fs.6.1.1.0.I bos.cifs_fs.rte.6.1.2.0.U
Method
Mounting a cifs filesystem is a 2 stage process. The access credentials need to be saved in /etc/cifs_fs/cifscred. This allows the stored credentials to store a password more securely than in /etc/filesystems which is world readable:-
bash-3.00# ls -l /etc/filesystems -rw-rw-r-- 1 root system 9933 28 Jul 2009 /etc/filesystems bash-3.00# ls -l /etc/cifs_fs/cifscred -rw-rw---- 1 root system 0 05 Jan 2007 /etc/cifs_fs/cifscred
Using fqdn's for the server names avoids having to have hosts file entries for addm servers. Without the fqdn or a hosts entry, this will not work:-
This won't work from a unix.brm.pri server:-
bash-3.00# nslookup svcedap27 ** server can't find svcedap27: NXDOMAIN
But this will:-
bash-3.00# nslookup svcedap27.addm.ads.brm.pri Non-authoritative answer: Name: svcedap27.addm.ads.brm.pri Address: 10.85.65.98
Create mount credentials
Use the mkcifscred command to do this:-
bash-3.00# mkcifscred -h server01.addm.ads.brm.pri -u username -p topsecretpassword bash-3.00#
Use mkcifscred, chcifcred, rmcifcred, and lscifcred to maniplulate the credentials:-
bash-3.00# lscifscred server: server01.addm.ads.brm.pri user: username bash-3.00# rmcifscred -h svlrcns01.addm.ads.brm.pri -u beataccess
Mount the shared directory
Mount the remote cifs filesystem with mkcifsmnt, specify the unix owner of the mounted filesystem with -u UID and -g GID. Annoyingly, these seem to have to be the UID and GID not the username and groupname.
bash-3.00# mkcifsmnt -A -f /mount/point -h server.addm.ads.brm.pri -d cifsshare -c username -w domain-wrkgrp-server -u 400 -g 400 bash-3.00# mount | grep beat svcedap27.addm.ads.brm.pri beat /oracle/beat/db01/ftptest2 cifs 10 May 14:25 wrkgrp=svcedap27
This adds a stanza to /etc/filesystems:-
/oracle/beat/db01/ftptest2: dev = beat vfs = cifs nodename = svcedap27.addm.ads.brm.pri/beataccess mount = true options = w,uid=400,gid=400,fmode=755,wrkgrp=svcedap27 account = false
Quick Crib
bash-3.00# mkcifscred -h server27.addm.ads.brm.pri -u username -p password bash-3.00# lscifscred server: server27.addm.ads.brm.pri user: username bash-3.00# pwd /oracle/beac/db01 bash-3.00# ls -l total 43546888 drwxr-xr-x 2 root system 256 10 May 15:17 ftpdev2 bash-3.00# mkcifsmnt -A -f /oracle/beac/db01/ftpdev2 -h server27.addm.ads.brm.pri -d beac -c username -w server27 bash-3.00# mount | grep beac /dev/beaclv /oracle/beac jfs2 22 Dec 13:06 rw,log=/dev/beaclog /dev/beacredoalv /oracle/beac/redoa jfs2 22 Dec 13:06 rw,cio,log=/dev/beaclog /dev/beacredoblv /oracle/beac/redob jfs2 22 Dec 13:06 rw,cio,log=/dev/beaclog /dev/beacarchlv /oracle/beac/archlogs jfs2 22 Dec 13:06 rw,log=/dev/beaclog /dev/beacdata1lv /oracle/beac/db01 jfs2 22 Dec 13:06 rw,cio,log=/dev/beaclog svlrcns01 /vol/Beac /oracle/beac/db01/ftpdev nfs3 22 Dec 13:06 rw server27.addm.ads.brm.pri beac /oracle/beac/db01/ftpdev2 cifs 10 May 15:33 wrkgrp=server27
Limitations
It seems that after a umount or reboot, mount -a does not remount the filesystem even if the filesystem is listed in /etc/filesystems.
Use:-
bash-3.00# chcifsmnt -f /mount/point