NFS is better than CIFS (at least for streaming video) or How and why to use NFS instead of CIFS on Mac OS X

For the longest time, I thought that my wifi connection was just too slow. Trying to play a movie with VLC player was just painful! I was trying to play movies and it would buffer for a long time and while it was playing, would stop for a little while, pixelate, and play again. I just finished gave up on it for a long time. I bought a new router, a Netgear Nighthawk 802.11ac router that was supposed to be much faster. Unfortunately I didn’t look at my MacBook Pro specs and see that my wireless on the laptop didn’t support 802.11ac! No problem though – still keeping the router. The range on the router is much better than my old Belkin Play N600.

Just for the heck of it yesterday I decided that maybe NFS would be better than CIFS. I worked at Sun Microsystems for 4 1/2 years. I should’ve known this!

I think I tried using NFS on Mac a while back and it didn’t work and I just gave up. The error I got was this one:

Screen Shot 2014-06-09 at 12.35.19 PM


I’m glad I revisited this. Because of this error, I just figured that Finder didn’t mount NFS. Since Mac OS X does include showmount however, I thought maybe it does it via command line.

Doing a quick google search, I found that to mount NFS, because Linux wants the server to use ports <1024 and Mac OS X wants >1024, you need to use the ” -o resvport” option when doing the mount via command line.

sudo mount -t nfs -o resvport /s

You don’t need to do it that way. Finder works just just fine. All you need to do is on the server side, add insecure as an option into /etc/exports like this:

/home/Monster *(rw,sync,no_subtree_check,insecure)

Then in Finder, you can use the familiar  ⌘K and give


Then, your network share should be mounted and you should have access to it. That said, you now are subject to POSIX file permissions.

Hope this helps!

list of vmkernel errors

You can get this from running: vmkerrcode -l

VMK_ReturnStatus table for VMware ESX Server, Build #64607
Name Dec Hex errno equiv Description
VMK_OK 0 0 OK Success
VMK_FAILURE 195887105 0xbad0001 EINVAL Failure
VMK_WOULD_BLOCK 195887106 0xbad0002 EAGAIN Would block
VMK_NOT_FOUND 195887107 0xbad0003 ENOENT Not found
VMK_BUSY 195887108 0xbad0004 EBUSY Busy
VMK_EXISTS 195887109 0xbad0005 EEXIST Already exists
VMK_LIMIT_EXCEEDED 195887110 0xbad0006 EFBIG Limit exceeded
VMK_BAD_PARAM 195887111 0xbad0007 EINVAL Bad parameter
VMK_METADATA_READ_ERROR 195887112 0xbad0008 EIO Metadata read error
VMK_METADATA_WRITE_ERROR 195887113 0xbad0009 EIO Metadata write error
VMK_IO_ERROR 195887114 0xbad000a EIO I/O error
VMK_READ_ERROR 195887115 0xbad000b EIO Read error
VMK_WRITE_ERROR 195887116 0xbad000c EIO Write error
VMK_INVALID_NAME 195887117 0xbad000d ENAMETOOLONG Invalid name
VMK_INVALID_HANDLE 195887118 0xbad000e EBADF Invalid handle
VMK_INVALID_ADAPTER 195887119 0xbad000f ENODEV No such SCSI adapter
VMK_INVALID_TARGET 195887120 0xbad0010 ENODEV No such target on adapter
VMK_INVALID_PARTITION 195887121 0xbad0011 ENXIO No such partition on target
VMK_INVALID_FS 195887122 0xbad0012 ENXIO No filesystem on the device
VMK_INVALID_MEMMAP 195887123 0xbad0013 EFAULT Memory map mismatch
VMK_NO_MEMORY 195887124 0xbad0014 ENOMEM Out of memory
VMK_NO_MEMORY_RETRY 195887125 0xbad0015 ENOMEM Out of memory (ok to retry)
VMK_NO_RESOURCES 195887126 0xbad0016 ENOMEM Out of resources
VMK_NO_FREE_HANDLES 195887127 0xbad0017 EMFILE No free handles
VMK_NUM_HANDLES_EXCEEDED 195887128 0xbad0018 ENFILE Exceeded maximum number of allowed handles
VMK_DEPRECATED_NO_FREE_PTR_BLOCKS195887129 0xbad0019 ENOSPC No free pointer blocks (deprecated)
VMK_DEPRECATED_NO_FREE_DATA_BLOCKS195887130 0xbad001a ENOSPC No free data blocks (deprecated)
VMK_CORRUPT_REDOLOG 195887131 0xbad001b EBADF Corrupt RedoLog
VMK_STATUS_PENDING 195887132 0xbad001c EAGAIN Status pending
VMK_STATUS_FREE 195887133 0xbad001d EAGAIN Status free
VMK_UNSUPPORTED_CPU 195887134 0xbad001e ENODEV Unsupported CPU
VMK_NOT_SUPPORTED 195887135 0xbad001f ENOSYS Not supported
VMK_TIMEOUT 195887136 0xbad0020 ETIMEDOUT Timeout
VMK_READ_ONLY 195887137 0xbad0021 EROFS Read only
VMK_RESERVATION_CONFLICT 195887138 0xbad0022 EAGAIN SCSI reservation conflict
VMK_FS_LOCKED 195887139 0xbad0023 EADDRINUSE File system locked
VMK_NOT_ENOUGH_SLOTS 195887140 0xbad0024 ENFILE Out of slots
VMK_INVALID_ADDRESS 195887141 0xbad0025 EFAULT Invalid address
VMK_NOT_SHARED 195887142 0xbad0026 ENOMEM Not shared
VMK_SHARED 195887143 0xbad0027 ENOMEM Page is shared
VMK_KSEG_PAIR_FLUSHED 195887144 0xbad0028 ENOMEM Kseg pair flushed
VMK_MAX_ASYNCIO_PENDING 195887145 0xbad0029 ENOMEM Max async I/O requests pending
VMK_VERSION_MISMATCH_MINOR 195887146 0xbad002a ENOSYS Minor version mismatch
VMK_VERSION_MISMATCH_MAJOR 195887147 0xbad002b ENOSYS Major version mismatch
VMK_IS_CONNECTED 195887148 0xbad002c EINVAL Already connected
VMK_IS_DISCONNECTED 195887149 0xbad002d ENOTCONN Already disconnected
VMK_IS_ENABLED 195887150 0xbad002e EINVAL Already enabled
VMK_IS_DISABLED 195887151 0xbad002f EINVAL Already disabled
VMK_NOT_INITIALIZED 195887152 0xbad0030 EINVAL Not initialized
VMK_WAIT_INTERRUPTED 195887153 0xbad0031 EINTR Wait interrupted
VMK_NAME_TOO_LONG 195887154 0xbad0032 ENAMETOOLONG Name too long
VMK_MISSING_FS_PES 195887155 0xbad0033 ENOTDIR VMFS volume missing physical extents
VMK_NICTEAMING_VALID_MASTER 195887156 0xbad0034 EINVAL NIC teaming master valid
VMK_NICTEAMING_SLAVE 195887157 0xbad0035 EEXIST NIC teaming slave
VMK_NICTEAMING_REGULAR_VMNIC 195887158 0xbad0036 EINVAL NIC teaming regular VMNIC
VMK_ABORT_NOT_RUNNING 195887159 0xbad0037 ECANCELED Abort not running
VMK_NOT_READY 195887160 0xbad0038 EIO Not ready
VMK_CHECKSUM_MISMATCH 195887161 0xbad0039 EIO Checksum mismatch
VMK_VLAN_NO_HW_ACCEL 195887162 0xbad003a EINVAL VLan HW Acceleration not supported
VMK_NO_VLAN_SUPPORT 195887163 0xbad003b EOPNOTSUPP VLan is not supported in vmkernel
VMK_NOT_VLAN_HANDLE 195887164 0xbad003c EINVAL Not a VLan handle
VMK_BAD_VLANID 195887165 0xbad003d EBADF Couldn’t retrieve VLan id
VMK_MIG_PROTO_ERROR 195887166 0xbad003e EINVAL Migration protocol error
VMK_NO_CONNECT 195887167 0xbad003f EIO No connection
VMK_SEGMENT_OVERLAP 195887168 0xbad0040 EINVAL Segment overlap
VMK_BAD_MPS 195887169 0xbad0041 EIO Error parsing MPS Table
VMK_BAD_ACPI 195887170 0xbad0042 EIO Error parsing ACPI Table
VMK_RESUME_ERROR 195887171 0xbad0043 EIO Failed to resume VM
VMK_NO_ADDRESS_SPACE 195887172 0xbad0044 ENOMEM Insufficient address space for operation
VMK_BAD_ADDR_RANGE 195887173 0xbad0045 EINVAL Bad address range
VMK_ENETDOWN 195887174 0xbad0046 ENETDOWN Network is down
VMK_ENETUNREACH 195887175 0xbad0047 ENETUNREACH Network unreachable
VMK_ENETRESET 195887176 0xbad0048 ENETRESET Network dropped connection on reset
VMK_ECONNABORTED 195887177 0xbad0049 ECONNABORTED Software caused connection abort
VMK_ECONNRESET 195887178 0xbad004a ECONNRESET Connection reset by peer
VMK_ENOTCONN 195887179 0xbad004b ENOTCONN Socket is not connected
VMK_ESHUTDOWN 195887180 0xbad004c ESHUTDOWN Can’t send after socket shutdown
VMK_ETOOMANYREFS 195887181 0xbad004d ETOOMANYREFS Too many references: can’t splice
VMK_ECONNREFUSED 195887182 0xbad004e ECONNREFUSED Connection refused
VMK_EHOSTDOWN 195887183 0xbad004f EHOSTDOWN Host is down
VMK_EHOSTUNREACH 195887184 0xbad0050 EHOSTUNREACH No route to host
VMK_EADDRINUSE 195887185 0xbad0051 EADDRINUSE Address already in use
VMK_BROKEN_PIPE 195887186 0xbad0052 EPIPE Broken pipe
VMK_NOT_A_DIRECTORY 195887187 0xbad0053 ENOTDIR Not a directory
VMK_IS_A_DIRECTORY 195887188 0xbad0054 EISDIR Is a directory
VMK_NOT_EMPTY 195887189 0xbad0055 ENOTEMPTY Directory not empty
VMK_NOT_IMPLEMENTED 195887190 0xbad0056 ENOSYS Not implemented
VMK_NO_SIGNAL_HANDLER 195887191 0xbad0057 EINVAL No signal handler
VMK_FATAL_SIGNAL_BLOCKED 195887192 0xbad0058 EINVAL Fatal signal blocked
VMK_NO_ACCESS 195887193 0xbad0059 EACCES Permission denied
VMK_NO_PERMISSION 195887194 0xbad005a EPERM Operation not permitted
VMK_UNDEFINED_SYSCALL 195887195 0xbad005b ENOSYS Undefined syscall
VMK_RESULT_TOO_LARGE 195887196 0xbad005c ERANGE Result too large
VMK_VLAN_FILTERED 195887197 0xbad005d ERANGE Pkts dropped because of VLAN (support) mismatch
VMK_BAD_EXCFRAME 195887198 0xbad005e EFAULT Unsafe exception frame
VMK_MODULE_NOT_LOADED 195887199 0xbad005f ENODEV Necessary module isn’t loaded
VMK_NO_SUCH_ZOMBIE 195887200 0xbad0060 ECHILD No dead world by that name
VMK_NO_SUCH_CARTEL 195887201 0xbad0061 ESRCH No cartel by that name
VMK_IS_A_SYMLINK 195887202 0xbad0062 ELOOP Is a symbolic link
VMK_CROSS_DEVICE_LINK 195887203 0xbad0063 EXDEV Cross-device link
VMK_NOT_A_SOCKET 195887204 0xbad0064 ENOTSOCK Not a socket
VMK_ILLEGAL_SEEK 195887205 0xbad0065 ESPIPE Illegal seek
VMK_ADDRFAM_UNSUPP 195887206 0xbad0066 EAFNOSUPPORT Unsupported address family
VMK_ALREADY_CONNECTED 195887207 0xbad0067 EISCONN Already connected
VMK_DEATH_PENDING 195887208 0xbad0068 ENOENT World is marked for death
VMK_NO_CELL_ASSIGNMENT 195887209 0xbad0069 EINVAL No valid scheduler cell assignment
VMK_CPU_MIN_INVALID 195887210 0xbad006a EINVAL Invalid cpu min
VMK_CPU_MINLIMIT_INVALID 195887211 0xbad006b EINVAL Invalid cpu minLimit
VMK_CPU_MAX_INVALID 195887212 0xbad006c EINVAL Invalid cpu max
VMK_CPU_SHARES_INVALID 195887213 0xbad006d EINVAL Invalid cpu shares
VMK_CPU_MIN_OVERFLOW 195887214 0xbad006e EINVAL Cpu min outside valid range
VMK_CPU_MINLIMIT_OVERFLOW 195887215 0xbad006f EINVAL Cpu minLimit outside valid range
VMK_CPU_MAX_OVERFLOW 195887216 0xbad0070 EINVAL Cpu max outside valid range
VMK_CPU_MIN_GT_MINLIMIT 195887217 0xbad0071 EINVAL Cpu min exceeds minLimit
VMK_CPU_MIN_GT_MAX 195887218 0xbad0072 EINVAL Cpu min exceeds max
VMK_CPU_MINLIMIT_LT_RESERVED 195887219 0xbad0073 ENOSPC Cpu minLimit less than cpu already reserved by children
VMK_CPU_MAX_LT_RESERVED 195887220 0xbad0074 ENOSPC Cpu max less than cpu already reserved by children
VMK_CPU_ADMIT_FAILED 195887221 0xbad0075 ENOSPC Admission check failed for cpu resource
VMK_MEM_MIN_INVALID 195887222 0xbad0076 EINVAL Invalid memory min
VMK_MEM_MINLIMIT_INVALID 195887223 0xbad0077 EINVAL Invalid memory minLimit
VMK_MEM_MAX_INVALID 195887224 0xbad0078 EINVAL Invalid memory max
VMK_MEM_MIN_OVERFLOW 195887225 0xbad0079 EINVAL Memory min outside valid range
VMK_MEM_MINLIMIT_OVERFLOW 195887226 0xbad007a EINVAL Memory minLimit outside valid range
VMK_MEM_MAX_OVERFLOW 195887227 0xbad007b EINVAL Memory max outside valid range
VMK_MEM_MIN_GT_MINLIMIT 195887228 0xbad007c EINVAL Memory min exceeds minLimit
VMK_MEM_MIN_GT_MAX 195887229 0xbad007d EINVAL Memory min exceeds max
VMK_MEM_MINLIMIT_LT_RESERVED 195887230 0xbad007e ENOSPC Memory minLimit less than memory already reserved by children
VMK_MEM_MAX_LT_RESERVED 195887231 0xbad007f ENOSPC Memory max less than memory already reserved by children
VMK_MEM_ADMIT_FAILED 195887232 0xbad0080 ENOSPC Admission check failed for memory resource
VMK_NO_SWAP_FILE 195887233 0xbad0081 ENOENT No swap file
VMK_BAD_PARAM_COUNT 195887234 0xbad0082 EINVAL Bad parameter count
VMK_BAD_PARAM_TYPE 195887235 0xbad0083 EINVAL Bad parameter type
VMK_UNMAP_RETRY 195887236 0xbad0084 ENOMEM Dueling unmaps (ok to retry)
VMK_INVALID_IOCTL 195887237 0xbad0085 ENOTTY Inappropriate ioctl for device
VMK_MAPFAULT_RETRY 195887238 0xbad0086 EBUSY Mmap changed under page fault (ok to retry)
VMK_EINPROGRESS 195887239 0xbad0087 EINPROGRESS Operation now in progress
VMK_ADDR_UNMAPPED 195887240 0xbad0088 EFAULT Address temporarily unmapped
VMK_INVALID_BUDDY_TYPE 195887241 0xbad0089 ENOMEM Invalid buddy type
VMK_LPAGE_INFO_NOT_FOUND 195887242 0xbad008a ENOMEM Large page info not found
VMK_LPAGE_INFO_INVALID 195887243 0xbad008b EINVAL Invalid large page info
VMK_SNAPSHOT_DEV 195887244 0xbad008c EIO SCSI LUN is in snapshot state
VMK_IN_TRANSITION 195887245 0xbad008d EIO SCSI LUN is in transition
VMK_TXN_FULL 195887246 0xbad008e ENOSPC Transaction ran out of lock space or log space
VMK_LOCK_NOT_FREE 195887247 0xbad008f EBUSY Lock was not free
VMK_NUM_FILES_EXCEEDED 195887248 0xbad0090 ENOSPC Exceed maximum number of files on the filesystem
VMK_MIGRATE_VMX_FAILURE 195887249 0xbad0091 EINVAL Migration determined a failure by the VMX
VMK_VSI_LIST_OVERFLOW 195887250 0xbad0092 EFBIG VSI GetList handler overflow
VMK_INVALID_WORLD 195887251 0xbad0093 EINVAL Invalid world
VMK_INVALID_VMM 195887252 0xbad0094 EINVAL Invalid vmm
VMK_INVALID_TXN 195887253 0xbad0095 EINVAL Invalid transaction
VMK_FS_RETRY_OPERATION 195887254 0xbad0096 EAGAIN Transient file system condition, suggest retry
VMK_VCPU_LIMIT_EXCEEDED 195887255 0xbad0097 EINVAL Number of running VCPUs limit exceeded
VMK_INVALID_METADATA 195887256 0xbad0098 EINVAL Invalid metadata
VMK_INVALID_PAGE_NUMBER 195887257 0xbad0099 EINVAL Invalid page number
VMK_NOT_EXEC 195887258 0xbad009a ENOEXEC Not in executable format
VMK_NFS_CONNECT_FAILURE 195887259 0xbad009b EHOSTDOWN Unable to connect to NFS server
VMK_NFS_MOUNT_NOT_SUPPORTED 195887260 0xbad009c EINVAL The NFS server does not support MOUNT version 3 over TCP
VMK_NFS_NFS_NOT_SUPPORTED 195887261 0xbad009d EINVAL The NFS server does not support NFS version 3 over TCP
VMK_NFS_MOUNT_DENIED 195887262 0xbad009e EPERM The mount request was denied by the NFS server. Check that the export exists and that the client is permitted to mount it
VMK_NFS_MOUNT_NOT_DIR 195887263 0xbad009f ENOTDIR The specified mount path was not a directory
VMK_NFS_BAD_FSINFO 195887264 0xbad00a0 EACCES Unable to query remote mount point’s attributes
VMK_NFS_VOLUME_LIMIT_EXCEEDED 195887265 0xbad00a1 EINVAL NFS has reached the maximum number of supported volumes
VMK_NO_MEMORY_NICE 195887266 0xbad00a2 ENOMEM Out of nice memory
VMK_MIGRATE_PREEMPTIVE_FAIL 195887267 0xbad00a3 ENOMEM VMotion failed to start due to lack of cpu or memory resources
VMK_CACHE_MISS 195887268 0xbad00a4 EFAULT Cache miss
VMK_STRESS_INDUCED_ERROR 195887269 0xbad00a5 EIO Error induced when stress options are enabled
VMK_TOO_MANY_LOCK_HOLDERS 195887270 0xbad00a6 EUSERS Maximum number of concurrent hosts are already accessing this resource
VMK_NO_JOURNAL 195887271 0xbad00a7 EIO Host doesn’t have a journal
VMK_RANK_VIOLATION 195887272 0xbad00a8 EDEADLK Lock rank violation detected
VMK_MODULE_FAILED 195887273 0xbad00a9 ENODEV Module failed
VMK_NO_MASTER_PTY 195887274 0xbad00aa ENXIO Unable to open slave if no master pty
VMK_NOT_IOABLE 195887275 0xbad00ab EFAULT Not IOAble
VMK_NO_FREE_INODES 195887276 0xbad00ac ENOSPC No free inodes
VMK_NO_MEMORY_FOR_FILEDATA 195887277 0xbad00ad ENOSPC No free memory for file data
VMK_NO_TAR_SPACE 195887278 0xbad00ae ENOSPC No free space to expand file or meta data
VMK_NO_FIFO_READER 195887279 0xbad00af ENXIO Unable to open writer if no fifo reader
VMK_NO_SUCH_DEVICE 195887280 0xbad00b0 EINVAL No underlying device for major,minor
VMK_MEM_MIN_GT_MEMSIZE 195887281 0xbad00b1 EINVAL Memory min exceeds memSize
VMK_NO_SUCH_VT 195887282 0xbad00b2 ENXIO No virtual terminal for number
VMK_TOO_MANY_ELEMENTS 195887283 0xbad00b3 E2BIG Too many elements for list
VMK_SHAREDAREA_MISMATCH 195887284 0xbad00b4 ENOSYS VMM<->VMK shared are mismatch
VMK_EXEC_FAILURE 195887285 0xbad00b5 ESRCH Failure during exec while original state already lost
VMK_VMNIXMOD_NOT_LOADED 195887286 0xbad00b6 ENOSYS vmnixmod kernel module not loaded
VMK_INVALID_MODULE 195887287 0xbad00b7 EINVAL Invalid module
VMK_UNALIGNED_ADDRESS 195887288 0xbad00b8 EINVAL Address is not aligned on page boundary
VMK_NOT_MAPPED 195887289 0xbad00b9 ENOMEM Address is not mapped in address space
VMK_NO_MESSAGE_SPACE 195887290 0xbad00ba ENOMEM No space to record a message
VMK_PDI_STACK_OVERFLOW 195887291 0xbad00bb EFBIG No space left on PDI stack
VMK_EXCEPTION_HANDLER_INVALID 195887292 0xbad00bc EINVAL Invalid exception handler
VMK_EXCEPTION_NOT_HANDLED 195887293 0xbad00bd EINVAL Exception not handled by exception handler
VMK_INVALID_MULTIWRITER_OBJECT 195887294 0xbad00be EDEADLK Can’t open sparse/TBZ files in multiwriter mode
VMK_STORAGE_RETRY_OPERATION 195887295 0xbad00bf EAGAIN Transient storage condition, suggest retry
VMK_HBA_ERROR 195887296 0xbad00c0 EIO Storage initiator error
VMK_TIMER_INIT_FAILED 195887297 0xbad00c1 EINVAL Timer initialization failed
VMK_MODULE_NOT_FOUND 195887298 0xbad00c2 ENOENT Module not found
VMK_NOT_SOCKET_OWNER 195887299 0xbad00c3 EINVAL Socket not owned by cartel
VMK_VSI_HANDLER_NOT_FOUND 195887300 0xbad00c4 ENOENT No VSI handler found for the requested node
VMK_INVALID_MMAPPROTFLAGS 195887301 0xbad00c5 EINVAL Invalid mmap protection flags
VMK_INVALID_MAPCONTIG_SIZE 195887302 0xbad00c6 EINVAL Invalid chunk size for contiguous mmap
VMK_INVALID_MAPCONTIG_MAX 195887303 0xbad00c7 EINVAL Invalid MPN max for contiguous mmap
VMK_INVALID_MAPCONTIG_FLAG 195887304 0xbad00c8 EINVAL Invalid mmap flag on contiguous mmap
VMK_NOT_LAZY_MMINFO 195887305 0xbad00c9 EINVAL Unexpected fault on pre-faulted memory region
VMK_MMINFO_WONT_SPLIT 195887306 0xbad00ca EINVAL Memory region cannot be split (remap/unmap)
VMK_NO_CACHE_INFO 195887307 0xbad00cb ENOENT Cache Information not available
VMK_CANNOT_REMAP_PINNED_MEMORY 195887308 0xbad00cc EINVAL Cannot remap pinned memory
VMK_NO_SUCH_CARTELGROUP 195887309 0xbad00cd ESRCH No cartel group by that name
VMK_SPLOCKSTATS_DISABLED 195887310 0xbad00ce EINVAL SPLock stats collection disabled
VMK_BAD_TAR_IMAGE 195887311 0xbad00cf EINVAL Boot image is corrupted
VMK_BRANCHED_ALREADY 195887312 0xbad00d0 EPERM Branched file cannot be modified
VMK_NAME_RESERVED_FOR_BRANCH 195887313 0xbad00d1 EPERM Name is reserved for branched file
VMK_CANNOT_BRANCH_UNLINKED 195887314 0xbad00d2 EPERM Unlinked file cannot be branched
VMK_MAX_RETRIES_EXCEEDED 195887315 0xbad00d3 EAGAIN Maximum kernel-level retries exceeded
VMK_OPTLOCK_STOLEN 195887316 0xbad00d4 EAGAIN Optimistic lock acquired by another host
VMK_NOT_MMAPABLE 195887317 0xbad00d5 ENODEV Object cannot be mmapped
VMK_INVALID_CPU_AFFINITY 195887318 0xbad00d6 EINVAL Invalid cpu affinity
VMK_DEVICE_NOT_PARTOF_LV 195887319 0xbad00d7 ENXIO Device does not contain a logical volume
VMK_NO_SPACE 195887320 0xbad00d8 ENOSPC No space left on device
VMK_VSI_INVALID_NODE_ID 195887321 0xbad00d9 EINVAL Invalid vsi node ID
VMK_TOO_MANY_USERS 195887322 0xbad00da EUSERS Too many users accessing this resource
VMK_EALREADY 195887323 0xbad00db EALREADY Operation already in progress
VMK_BUF_TOO_SMALL 195887324 0xbad00dc EINVAL Buffer too small to complete the operation
VMK_SNAPSHOT_DEV_DISALLOWED 195887325 0xbad00dd EACCES Snapshot device disallowed
VMK_LVM_DEVICE_UNREACHABLE 195887326 0xbad00de EIO LVM device unreachable
VMK_CPU_INVALID_RESOURCE_UNITS 195887327 0xbad00df EINVAL Invalid cpu resource units
VMK_MEM_INVALID_RESOURCE_UNITS 195887328 0xbad00e0 EINVAL Invalid memory resource units
VMK_ABORTED 195887329 0xbad00e1 ECANCELED IO was aborted
VMK_MEM_MIN_LT_RESERVED 195887330 0xbad00e2 ENOSPC Memory min less than memory already reserved by children
VMK_MEM_MIN_LT_CONSUMED 195887331 0xbad00e3 ENOSPC Memory min less than memory required to support current consumption
VMK_MEM_MAX_LT_CONSUMED 195887332 0xbad00e4 ENOSPC Memory max less than memory required to support current consumption
VMK_TIMEOUT_RETRY 195887333 0xbad00e5 ETIMEDOUT Timeout (ok to retry)
VMK_RESERVATION_LOST 195887334 0xbad00e6 EBUSY Reservation Lost
VMK_FS_STALE_METADATA 195887335 0xbad00e7 ENOENT Cached metadata is stale
VMK_NO_FCNTL_LOCK 195887336 0xbad00e8 ENOLCK No fcntl lock slot left
VMK_NO_FCNTL_LOCK_HOLDER 195887337 0xbad00e9 ENOLCK No fcntl lock holder slot left
VMK_NO_LICENSE 195887338 0xbad00ea EACCES Not licensed to access VMFS volumes
VMK_LVM_RETRY_OPERATION 195887339 0xbad00eb EAGAIN Transient LVM device condition, suggest retry
VMK_SNAPSHOT_LV_INCOMPLETE 195887340 0xbad00ec EAGAIN Snapshot LV incomplete
VMK_MEDIUM_NOT_FOUND 195887341 0xbad00ed EIO Medium not found
VMK_MAX_PATHS_CLAIMED 195887342 0xbad00ee ENOMEM Maximum allowed SCSI paths have already been claimed
VMK_NOT_MOUNTABLE 195887343 0xbad00ef ENODEV Filesystem is not mountable
VMK_MEMSIZE_GT_MEMSIZELIMIT 195887344 0xbad00f0 EINVAL Memory size exceeds memSizeLimit
VMK_GENERIC_LINUX_ERROR 732758016 0x2bad0000 EIO Generic service console error

How to upgrade from NIS+ to LDAP

This is from Arup Mitra.

1. Installing nisplus server

/usr/lib/nis/nisserver -v -r -d

******** ******** WARNING ******** ********

NIS+ might not be supported in a future release. Tools to aid

the migration from NIS+ to LDAP are available in the Solaris 9

operating environment. For more information, visit

******** ******** ******* ******** ********

This script sets up this machine “native9” as an NIS+

root master server for domain

Domain name :

NIS+ group :

NIS (YP) compatibility : OFF

Security level : 2=DES

Is this information correct? (type ‘y’ to accept, ‘n’ to change) y

This script will set up your machine as a root master server for

domain without NIS compatibility at security level 2.

Use “nisclient -r” to restore your current network service environment.

Do you want to continue? (type ‘y’ to continue, ‘n’ to exit this script) y

setting up domain information “” …

setting up switch information …

killing process keyserv …

restarting process keyserv …

killing NIS and NIS+ processes …

killing process ypbind …

killing process rpc.nisd …

killing process rpc.nispasswdd …

killing process nis_cachemgr …

stopping nscd …

setup NIS_GROUP environment variable …

rm /var/nis files …

running nisinit …

This machine is in the “” NIS+ domain.

Setting up root server …

All done.

starting root server at security level 0 to create credentials…

running nissetup to create standard directories and tables … created created created created created created created created created created created created created created created created created created created created created created created created created created

adding credential for…

Enter login password:

creating NIS+ administration group: …

adding principal to …

updating the keys for directories …

restarting NIS+ root master server at security level 2 …

killing process rpc.nisd …

restarting process rpc.nisd …

starting NIS+ password daemon …

starting NIS+ cache manager …

modifying the /etc/init.d/rpc file …

starting Name Service Cache Daemon nscd …

This system is now configured as a root server for domain

You can now populate the standard NIS+ tables by using the

nispopulate script or /usr/lib/nis/nisaddent command.

2. Populating NIS+ tables

# cd /source

# ls -al

total 32

drwxr-xr-x 2 root other 512 Apr 16 16:02 .

drwxr-xr-x 27 root root 512 Apr 14 19:49 ..

-rw-r–r– 1 root other 18 Apr 16 15:59 auto_home

-rw-r–r– 1 root other 69 Apr 16 16:00 auto_master

-rw-r–r– 1 root other 290 Apr 14 19:51 group

-r–r–r– 1 root other 128 Apr 14 19:52 hosts

-r–r–r– 1 root other 380 Apr 16 16:02 netmasks

-r–r–r– 1 root other 372 Apr 16 16:01 networks

-rw-r–r– 1 root other 109 Apr 15 14:49 passwd

-r–r–r– 1 root other 1807 Apr 16 16:02 protocols

-r–r–r– 1 root other 3869 Apr 16 16:02 services

-rw-r–r– 1 root other 80 Apr 15 14:48 shadow

# /usr/lib/nis/nispopulate -v -F

NIS+ domain name :

Directory Path : (current directory)

Is this information correct? (type ‘y’ to accept, ‘n’ to change) y

This script will populate the standard NIS+ tables for domain from the files in current directory:

auto_master auto_home ethers group hosts ipnodes networks passwd protocols services rpc netmasks bootparams netgroup aliases timezone auth_attr exec_attr prof_attr user_attr audit_user shadow

**WARNING: Interrupting this script after choosing to continue

may leave the tables only partially populated. This script does

not do any automatic recovery or cleanup.

Do you want to continue? (type ‘y’ to continue, ‘n’ to exit this script) y OK…

populating auto_master table from file ./auto_master…

adding standard key-value table auto_master…

adding ./auto_master to table

adding/updating “/net”

adding/updating “/home”

adding/updating “/xfn”

3 entries added/updated

auto_master table done. OK…

populating auto_home table from file ./auto_home…

adding standard key-value table auto_home…

adding ./auto_home to table

adding/updating “*”

1 entries added/updated

auto_home table done. OK…

**WARNING: file ./ethers does not exist!

ethers table will not be loaded. OK…

populating group table from file ./group…

adding standard table group…

adding ./group to table

adding/updating “root”

adding/updating “other”

adding/updating “bin”

adding/updating “sys”

adding/updating “adm”

adding/updating “uucp”

adding/updating “mail”

adding/updating “tty”

adding/updating “lp”

adding/updating “nuucp”

adding/updating “staff”

adding/updating “daemon”

adding/updating “sysadmin”

adding/updating “smmsp”

adding/updating “nobody”

adding/updating “noaccess”

adding/updating “nogroup”

17 entries added/updated

group table done. OK…

populating hosts table from file ./hosts…

adding standard table hosts…

adding ./hosts to table

adding/updating “localhost”

adding/updating “native9”

adding/updating “igs”

adding/updating “arup”

adding/updating “daredevil”

5 entries added/updated

hosts table done.

Populating the NIS+ credential table for domain

from hosts table.

dumping hosts table…

loading credential table…

Adding key pair for [email protected] (

…added arup

Adding key pair for [email protected] (

…added daredevil

Adding key pair for [email protected] (

…added igs

Adding key pair for [email protected] (

…added localhost

…native9 already exists

The credential table for domain has been populated.

The password used will be nisplus. OK…

**WARNING: file ./ipnodes does not exist!

ipnodes table will not be loaded. OK…

populating networks table from file ./networks…

adding standard table networks…

adding ./networks to table

adding/updating “loopback”

adding/updating “arpanet”

adding/updating “arpanet (arpa)”

3 entries added/updated

networks table done. OK…

populating passwd table from file ./passwd…

adding standard table passwd…

adding ./passwd to table

adding/updating “test1”

adding/updating “arup”

adding/updating “test2”

3 entries added/updated

passwd table done.

Populating the NIS+ credential table for domain

from passwd table.

dumping passwd table…

loading credential table…

Adding key pair for [email protected] (

…added test1

…arup already exists

Adding key pair for [email protected] (

…added test2

The credential table for domain has been populated.

The password used will be nisplus. OK…

populating protocols table from file ./protocols…

adding standard table protocols…

adding ./protocols to table

adding/updating “ip”

adding/updating “icmp”

adding/updating “igmp”

adding/updating “ggp”

adding/updating “ipip”

adding/updating “ipip (IP-IP)”

adding/updating “tcp”

adding/updating “cbt”

adding/updating “egp”

adding/updating “igp”

adding/updating “pup”

adding/updating “udp”

adding/updating “mux”

adding/updating “hmp”

adding/updating “xns-idp”

adding/updating “rdp”

adding/updating “idpr”

adding/updating “idpr-cmtp”

adding/updating “sdrp”

adding/updating “idrp”

adding/updating “rsvp”

adding/updating “gre”

adding/updating “mobile”

adding/updating “ospf”

adding/updating “ospf (OSPFIGP)”

adding/updating “pim”

adding/updating “ipcomp”

adding/updating “vrrp”

adding/updating “sctp”

adding/updating “hopopt”

adding/updating “ipv6”

adding/updating “ipv6-route”

adding/updating “ipv6-frag”

adding/updating “esp”

adding/updating “ah”

adding/updating “ipv6-icmp”

adding/updating “ipv6-nonxt”

adding/updating “ipv6-opts”

38 entries added/updated

protocols table done. OK…

populating services table from file ./services…

adding standard table services…

adding ./services to table

adding/updating “tcpmux 1/tcp”

adding/updating “echo 7/tcp”

adding/updating “echo 7/udp”

adding/updating “discard 9/tcp”

adding/updating “discard 9/tcp (sink)”

adding/updating “discard 9/tcp (null)”

adding/updating “discard 9/udp”

adding/updating “discard 9/udp (sink)”

adding/updating “discard 9/udp (null)”

adding/updating “systat 11/tcp”

adding/updating “systat 11/tcp (users)”

adding/updating “daytime 13/tcp”

adding/updating “daytime 13/udp”

adding/updating “netstat 15/tcp”

adding/updating “chargen 19/tcp”

adding/updating “chargen 19/tcp (ttytst)”

adding/updating “chargen 19/tcp (source)”

adding/updating “chargen 19/udp”

adding/updating “chargen 19/udp (ttytst)”

adding/updating “chargen 19/udp (source)”

adding/updating “ftp-data 20/tcp”

adding/updating “ftp 21/tcp”

adding/updating “ssh 22/tcp”

adding/updating “telnet 23/tcp”

adding/updating “smtp 25/tcp”

adding/updating “smtp 25/tcp (mail)”

adding/updating “time 37/tcp”

adding/updating “time 37/tcp (timserver)”

adding/updating “time 37/udp”

adding/updating “time 37/udp (timserver)”

adding/updating “name 42/udp”

adding/updating “name 42/udp (nameserver)”

adding/updating “whois 43/tcp”

adding/updating “whois 43/tcp (nicname)”

adding/updating “domain 53/udp”

adding/updating “domain 53/tcp”

adding/updating “bootps 67/udp”

adding/updating “bootpc 68/udp”

adding/updating “kerberos 88/udp”

adding/updating “kerberos 88/udp (kdc)”

adding/updating “kerberos 88/tcp”

adding/updating “kerberos 88/tcp (kdc)”

adding/updating “hostnames 101/tcp”

adding/updating “hostnames 101/tcp (hostname)”

adding/updating “pop2 109/tcp”

adding/updating “pop2 109/tcp (pop-2)”

adding/updating “pop3 110/tcp”

adding/updating “sunrpc 111/udp”

adding/updating “sunrpc 111/udp (rpcbind)”

adding/updating “sunrpc 111/tcp”

adding/updating “sunrpc 111/tcp (rpcbind)”

adding/updating “imap 143/tcp”

adding/updating “imap 143/tcp (imap2)”

adding/updating “ldap 389/tcp”

adding/updating “ldap 389/udp”

adding/updating “submission 587/tcp”

adding/updating “submission 587/udp”

adding/updating “ldaps 636/tcp”

adding/updating “ldaps 636/udp”

adding/updating “tftp 69/udp”

adding/updating “rje 77/tcp”

adding/updating “finger 79/tcp”

adding/updating “link 87/tcp”

adding/updating “link 87/tcp (ttylink)”

adding/updating “supdup 95/tcp”

adding/updating “iso-tsap 102/tcp”

adding/updating “x400 103/tcp”

adding/updating “x400-snd 104/tcp”

adding/updating “csnet-ns 105/tcp”

adding/updating “pop-2 109/tcp”

adding/updating “uucp-path 117/tcp”

adding/updating “nntp 119/tcp”

adding/updating “nntp 119/tcp (usenet)”

adding/updating “ntp 123/tcp”

adding/updating “ntp 123/udp”

adding/updating “netbios-ns 137/tcp”

adding/updating “netbios-ns 137/udp”

adding/updating “netbios-dgm 138/tcp”

adding/updating “netbios-dgm 138/udp”

adding/updating “netbios-ssn 139/tcp”

adding/updating “netbios-ssn 139/udp”

adding/updating “NeWS 144/tcp”

adding/updating “slp 427/tcp”

adding/updating “slp 427/udp”

adding/updating “mobile-ip 434/udp”

adding/updating “cvc_hostd 442/tcp”

adding/updating “ike 500/udp”

adding/updating “uuidgen 697/tcp”

adding/updating “uuidgen 697/udp”

adding/updating “exec 512/tcp”

adding/updating “login 513/tcp”

adding/updating “shell 514/tcp”

adding/updating “shell 514/tcp (cmd)”

adding/updating “printer 515/tcp”

adding/updating “printer 515/tcp (spooler)”

adding/updating “courier 530/tcp”

adding/updating “courier 530/tcp (rpc)”

adding/updating “uucp 540/tcp”

adding/updating “uucp 540/tcp (uucpd)”

adding/updating “biff 512/udp”

adding/updating “biff 512/udp (comsat)”

adding/updating “who 513/udp”

adding/updating “who 513/udp (whod)”

adding/updating “syslog 514/udp”

adding/updating “talk 517/udp”

adding/updating “route 520/udp”

adding/updating “route 520/udp (router)”

adding/updating “route 520/udp (routed)”

adding/updating “ripng 521/udp”

adding/updating “klogin 543/tcp”

adding/updating “kshell 544/tcp”

adding/updating “kshell 544/tcp (cmd)”

adding/updating “new-rwho 550/udp”

adding/updating “new-rwho 550/udp (new-who)”

adding/updating “rmonitor 560/udp”

adding/updating “rmonitor 560/udp (rmonitord)”

adding/updating “monitor 561/udp”

adding/updating “pcserver 600/tcp”

adding/updating “sun-dr 665/tcp”

adding/updating “kerberos-adm 749/tcp”

adding/updating “kerberos-adm 749/udp”

adding/updating “kerberos-iv 750/udp”

adding/updating “krb5_prop 754/tcp”

adding/updating “ufsd 1008/tcp”

adding/updating “ufsd 1008/udp”

adding/updating “cvc 1495/tcp”

adding/updating “ingreslock 1524/tcp”

adding/updating “www-ldap-gw 1760/tcp”

adding/updating “www-ldap-gw 1760/udp”

adding/updating “listen 2766/tcp”

adding/updating “nfsd 2049/udp”

adding/updating “nfsd 2049/udp (nfs)”

adding/updating “nfsd 2049/tcp”

adding/updating “nfsd 2049/tcp (nfs)”

adding/updating “eklogin 2105/tcp”

adding/updating “lockd 4045/udp”

adding/updating “lockd 4045/tcp”

adding/updating “dtspc 6112/tcp”

adding/updating “fs 7100/tcp”

139 entries added/updated

services table done. OK…

**WARNING: file ./rpc does not exist!

rpc table will not be loaded. OK…

populating netmasks table from file ./netmasks…

adding standard table netmasks…

adding ./netmasks to table

adding/updating “”

1 entries added/updated

netmasks table done. OK…

**WARNING: file ./bootparams does not exist!

bootparams table will not be loaded. OK…

**WARNING: file ./netgroup does not exist!

netgroup table will not be loaded. OK…

**WARNING: file ./aliases does not exist!

mail_aliases table will not be loaded. OK…

**WARNING: file ./timezone does not exist!

timezone table will not be loaded. OK…

**WARNING: file ./auth_attr does not exist!

auth_attr table will not be loaded. OK…

**WARNING: file ./exec_attr does not exist!

exec_attr table will not be loaded. OK…

**WARNING: file ./prof_attr does not exist!

prof_attr table will not be loaded. OK…

**WARNING: file ./user_attr does not exist!

user_attr table will not be loaded. OK…

**WARNING: file ./audit_user does not exist!

audit_user table will not be loaded. OK…

populating passwd table from file ./shadow…

adding standard table passwd…

adding ./shadow to table

adding/updating “test1”

adding/updating “arup”

adding/updating “test2”

3 entries added/updated

passwd table done.

Credentials have been added for the entries in the

hosts and passwd table(s). Each entry was given a default

network password (also known as a Secure-RPC password).

This password is:


Use this password when the nisclient script requests the

network password.

nispopulate failed to populate the following tables:

ethers ipnodes rpc bootparams netgroup mail_aliases timezone auth_attr exec_attr prof_attr user_attr audit_user

3. Testing that NIS+ master is operational

# ps -ef | grep rpc.nisd

root 509 1 0 16:05:14 ? 0:02 rpc.nisd

# /usr/bin/nisls



# /usr/bin/niscat passwd.org_dir




4. Adding a NIS+ client

a) On the master server:

# /usr/lib/nis/nisclient -v -d -c igs

******** ******** WARNING ******** ********

NIS+ might not be supported in a future release. Tools to aid

the migration from NIS+ to LDAP are available in the Solaris 9

operating environment. For more information, visit

******** ******** ******* ******** ********

You will be adding DES credentials in domain for


** nisclient will not overwrite any existing entries in the

** credential table.

Do you want to continue? (type ‘y’ to continue, ‘n’ to exit this script) y

checking domain…

checking permission…

checking info type for igs…

… principal igs already exist — skipped!

b) On the client host called igs:

#/usr/lib/nis/nisclient -v -i -h native9 -a -d

initializing client machine…

Initializing client igs for domain “”.

Once initialization is done, you will need to reboot your


Do you want to continue? (type ‘y’ to continue, ‘n’ to exit this script) y

killing NIS and/or NIS+ processes…

killing process ypbind…

killing process nis_cachemgr…

killing process rpc.nispasswdd…

stopping nscd …

setting up backup files…

setting up NIS+ server information…

setting up domain information “”…

setting up the name service switch information…

killing process keyserv…

running nisinit command …

nisinit -c -H …

credential exists for setting up security…

setting up security information for root…

At the prompt below, type the network password (also known

as the Secure-RPC password) that you obtained either

from your administrator or from running the nispopulate script.

Please enter the Secure-RPC password for root: nisplus

Please enter the login password for root: root_passwd_for_this_client_machine

Your network password has been changed to your login one.

Your network and login passwords are now the same.

killing process nis_cachemgr…

starting nscd …

removing the temporary backup file for /etc/nsswitch.conf…

Client initialization completed!!

Please reboot your machine for changes to take effect.

5. Change /etc/nsswicth.conf appropriately and reboot client machine

passwd: files nisplus

group: files nisplus

hosts: files nisplus

services: nisplus files

networks: nisplus files

protocols: nisplus files

rpc: nisplus files

ethers: nisplus files

netmasks: nisplus files

bootparams: nisplus files

publickey: nisplus

netgroup: files nisplus

automount: files nisplus

aliases: files nisplus

sendmailvars: files nisplus

6. Test from client_machine that you can login as a NIS+ user with proper home


7. Now install the built-in IDS 5.1 on solaris 9 server

/usr/sbin/directoryserver setup

8. Then run idsconfig

# /usr/lib/ldap/idsconfig

and follow instructions from URL: … dssetup-33

9. stop-slapd

10. Do the vlvindexing for six fields:

# /usr/sbin/directoryserver -s native9 vlvindex -n userRoot -T

and similarly for , ..

and so on

11 start-slapd

12. From the cosole of the IDS, we have to create a ou=nisPlus underneath , and again ou=nisPlus underneath the earlier


13. We need to look for a file called /var/nis/NIS+LDAPmapping.template and, if

present , we need to copy it to /var/nis/NIS+LDAPmapping

14. We need to look for a file called /etc/default/rpc.nisd , and we need to do

a few changes there. But before that we backup /etc/default/rpc.nisd

The four main changes are:

line 117, make sure authentication is simple

line 123,

line 146, needs to read nisPlusLDAPproxyuser=cn=directory manager

line 154 is your directory manager password, you need to change that

15. We manually update the schema in IDS 5.1 for attribute nisPlusObject

a) Pease have a copy of 99user.ldif file first

b) Please add these lines in


objectClasses: ( NAME ‘nisplusObjectContainer’

DESC ‘Abstraction of an NIS+ object’ STRUCTURAL MUST ( cn $ nisplusObject )

X-ORIGIN ‘user defined’ )

attributeTypes: ( NAME ‘nisplusObject’ DESC

‘An opaque representation of an NIS+ object’ SYNTAX

SINGLE-VALUE X-ORIGIN ‘user defined’ )

16. pkill -9 rpc.nisd

17. In order to automatically dump all data from nis+ to ldap and then exit out:

# rpc.nisd -D -x nisplusLDAPinitialUpdateAction=to_ldap

-x nisplusLDAPinitialUpdateOnly=yes

It is also advisable to :

tail -f access

tail -f errors

on two separate consoles to look for possible errors and problems. These are

our only clues as to what is going wrong

PS: Thing to note is that if those tables possibly not proper in NIS+, they

might give different errors in access log, but otherwise all data come

across fine, and then rpc.nisd exits out.

18. Check in ldap that all data have come across by appropriate ldapsearch

19. We may also build a native ldap client on a different solaris 9 client

and test the ldap data on server by logging in with home directories

20. Now, to keep both NIS+ & LDAP always in synch , start rpc.nisd normally:


21. In order to test if they are really in synch:

a) Modify NIS+ hosts table by:

/usr/lib/nis/nisaddent -d hosts > /tmp/hosts

vi /tmp/hosts and insert an additional host entry there

/usr/lib/nis/nisaddent -rvf /tmp/hosts hosts

b) # niscat hosts.org_dir , and check if that entry came into nis+

b) Check the access log that immediately the new nis+ entries are pushed to


c) ldapsearch for the appropriate hosts entry by:

ldapsearch -b “” ipHostNumber=*

and observe that it appeared into ldap automatically