Skip to content

Moving to

WordPress! Good old friend. It’s time for us to go on our own ways.

I’m moving to my own jekyll/disqus based blog at

I won’t need hours to fix Java/Perl syntax  and planning to write heaps on SmartOS/Telstra/DevOps/Java.

SmartOS on VMWare and undefined VNIC

After I upgraded from Lion to Mountain Lion the MAC address of VMWare Fusion adaptor had changed for no good reason. That’s why SmartOS (illumos) was failing to plumb the network and dladm complains about unknown status.

To fix this check the newly generated MAC and update the /usbkey/config accordingly.

Check the MAC in OS after reboot. Now interfaces should come up automatically at boot time. 

dtrace: failed to grab pid ?!

There seems to be a reasonable security feature in Solaris that limits usage of diagnostics tools based on privileges(5) of source and target PIDs. Saying that, tools  such as dtrace(1M) and pstack(1) should have equal or more privileges(5) than the target PID they want to observe. Otherwise the process owner can use the target PID to run instrumented instructions with higher privileges which is obviously a security hole.

But this fair statement can cause some headache especially when processes start from sources other than a shell such as SMF.

Let’s examine this scenario. What prevents the owner of this process to look inside even after setting all dtrace permissions to zone and user.

What’s up? The reason is hiding somewhere in the SMF service manifest. Let’s have a look:

Looking at the PID of the service we notice it has extra sys_resource privilege assigned via SMF that we don’t have in our bash PID ($$).

That’s preventing bash PID to access SMF started service PID although they are owned by the same user. So what is this extra privilege?

That’s a necessary  for this service. So have to add the missing to the user:

Next time bash has sys_resource privilege and executes dtrace/pstack against SMF service successfully:


VirtualBox Import Appliance; VT-x is not available

When importing a virtual appliance from a VT-x machine into a non VT-x one, you may end up with this error:

VT-x is not available: verr_vmx_no_vmx

Well the key to fix this is to disable VT-x (i.e. hardware virtualization instructions) but the problem is that the new host machine’s virtualbox settings window is all disabled:

So how can I disable VT-x then? Then solution I found it to open the appliance vbox XML file and manually disable HardwareVirtualEx.

vim ~/VirtualBox\ VMs/windows/windows.vbox

Then search for HardwareVirtEx and set all enabled items to false.

Mount NTFS in Solaris 11

1. Grab these two files: FSWpart.tar.gz and FSWfsmisc.tar.gz

2. Rename files:

# mv  fswpart-tar-gz-remove.png FSWpart.tar.gz
# mv  fswfsmisc-tar-gz-remove.png FSWfsmisc.tar.gz

3. Install the packages.

# tar -zxvf FSWpart.tar.gz
# tar -zxvf FSWfsmisc.tar.gz
# pkgadd -d . FSWpart
# pkgadd -d . FSWfsmisc
Select “y” if prompted for conflict in files:
The following files are already installed on the system and are being used by another package:
* /etc/gnome-vfs-2.0 <attribute change only>
* /etc/gnome-vfs-2.0/modules <attribute change only>
* /usr/lib/gnome-vfs-2.0 <attribute change only>
* /usr/lib/gnome-vfs-2.0/modules <attribute change only>
* /usr/sbin/mkntfs
* /usr/sbin/ntfsclone
* /usr/sbin/ntfscp
* /usr/sbin/ntfslabel
* /usr/sbin/ntfsresize
* /usr/sbin/ntfsundelete
* - conflict with a file which does not belong to any package.
Do you want to install these conflicting files [y,n,?,q] y

4. Find the target partition

# iostat -En

5. Mount partitions in the devices into folders you like:

# mkdir /mnt/d
# mount -F ntfs /dev/dsk/c5t0d0p3 /mnt/d

6. Add mount targets to /etc/vfstab

/dev/dsk/c5t0d0p2 - /mnt/c ntfs - yes -
/dev/dsk/c5t0d0p3 - /mnt/d ntfs - yes -

Mac OS X “Host is Down” with Curl, Python, PIP,etc

If you’re connected to internet and still some CLI tools such as curl, python, easy_install and pip fail with errors such as:

curl: (7) Failed to connect to IP: Host is down

error: [Errno 64] Host is down

This is while host is ping from command line and browser connects too. First check you don’t have any proxy settings. (echo $http_proxy)

If you don’t have any proxy settings, and browser accesses the site, well then it might be because of some strange rules in LittleSnitch in the case you have one running. Try to stop LittleSnitch network monitor and give it a go.

Why two Monitors is so good for Productivity?

Just until recently I believed having multiple desktops could work same as two monitors but I proved myself wrong last week.

For most of us, daily work is a combination of routine stuff (emails, maintenance, phone-calls, meetings) and development. The problem is when this flood of routine tasks take most all of our time and attention.

By having two monitors one can easily partition this two stream and keep and eye on both. Here is how my desk looks like these days.

In one monitor I have my outlook, communicator, GTD and in the second one all dev tools (iTerm, IntelliJ, emacs, sql*plus, etc) in hand.

I also noticed how good x86 is for development rather than SPARC. Having so many cores on one SPARC is great for scalable production deployment but not necessarily suitable enough for development. I decided to run Solaris in my PC and connect monitor/keyboard to this darling little beast; MacBook Air.