VirtualBox : Use Raw Disk to load Windows under Linux

Here I explain how to use a Physical disk partition for a guest OS under VirtualBox. This is also called Raw Disk partition use for VirtualBox. My use case was to run WindowsXP as guest OS from a physical installation under Linux and still be able to boot up the system in same Windows installation when needed. My system is running Ubuntu 11.04 on core2 duo, 3GB memory, two hard disks (one with Ubuntu and other with WindowsXP installation), with VirtualBox 4.0.4. Process is simple but took quite a while to get all information/steps collected and tested. In nutshell, first we need to know the partition that we will use, then the user who is going to use it needs to have access to it. After that an mbr has to be created and finally a vmdk file is created to use the Raw Disk. Keep reading for the full process. Continue reading this post »

Apple iPad (3rd generation)

Finally bowed to Apple’s appeal. Pre-ordered our very first iPad! Very excited and waiting for delivery. More info once I get my hands on.

Unboxing Pics:

Updates:

  • 2011-03-16 09:39 GOT IT!!!!!
  • 2011-03-13 23:53 Got mail from Apple that it is shipped from China for delivery by UPS on 16th.
  • 2011-03-13 07:43 Checked the status and it is now being prepared for shipment!!
  • 2011-03-08 16:54 Got order confirmation email from Apple :-)
  • 2011-03-08 15:05 Ordered and personalized.
  • 2011-03-08 14:50 Decided to take the plunge and started to search for deals and finally found one from employee purchase plan.

Apple and iPad are trademarks of Apple. Obviously everyone knows that but just wanted to keep lawyers away.

Moving away from Microsoft Windows to Linux full time

What would one need to move off of Windows in corporate world? A replacement for Microsoft Office Suit. Linux has LibreOffice as replacement for MS Word, Excel, Power Point etc. If you are a power user of these tools then it will be difficult to migrate to LibreOffice but hey that is a start. If for Outlook, your organization provides access via WebMail interface, then you are in clear with using any email client on Linux that supports Pop or IMAP by making use of DavMail. Though Evolution support a direct access to WebMail or even MAPI, but Evolution itself is very thick and sometimes slow. Then came out Ubuntu 11.10 which provides Thunderbird as the default email client with integration to desktop and Unity. Perfect.

Here is the list of replacements that are available on Linux. I will cover setup for DavMail and Thunderbird in another post. Continue reading this post »

bash : grep for pattern from certain location in the file

Syntax for grep to search for a pattern in a file is very well-known. But there are times when one has to grep for the pattern from a certain location or after a certain offset in the file. For example if we are searching for a pattern in a log file which could appear multiple times. Each time we grep, it will provide us all the matching lines from top to bottom of the file and then we have to find which lines were new since our last run. Using dd, the file can be sliced and then grep can be applied for the pattern on that slice. Lets see an example. Continue reading this post »

dilbert : Working from home

So my boss would not let me work from  home. And then I had the rude awakening when I found the reason behind the whole concept of working in office!

Dilbert Work from Home

Go to the main site by clicking the image and you can read comments by others. I specifically would like to quote one from kattywumpus which did happen to me personally.

A third form were all possible distractions must be documented, do you have a Dog, how close is the nearest coffee shop, and etc..

snmp : find network information of a system centrally

Anyone can login to a system and run ifconfig or netstat or other similar commands to find the network information of a system. But what will be even better? Do it remotely without logging in to each and every system. How? Using snmpwalk one can retrieve all this information provided that subject has both snmpd running, snmpd supporting network information and the querying host is allowed to make SNMP queries. Lets see how.

Interface table is covered by basic SNMP (just like system information, udp, tcp  socket information, address translation and snmp stats etc). Here is how to query the interface table to get the IP address and Subnet mask information.

unixite@sanbox:~/ > snmpwalk -v1 -c public sandboxS:161 1.3.6.1.2.1.4.20.1.1
iso.3.6.1.2.1.4.20.1.1.1.2.3.4 = IpAddress: 1.2.3.4
iso.3.6.1.2.1.4.20.1.1.127.0.0.1 = IpAddress: 127.0.0.1
iso.3.6.1.2.1.4.20.1.1.192.168.1.10 = IpAddress: 192.168.1.10
iso.3.6.1.2.1.4.20.1.1.10.0.0.2 = IpAddress: 10.0.0.2
unixite@sanbox:~/ > snmpwalk -v1 -c public sandboxS:161 1.3.6.1.2.1.4.20.1.3
iso.3.6.1.2.1.4.20.1.3.1.2.3.4 = IpAddress: 255.0.0.0
iso.3.6.1.2.1.4.20.1.3.127.0.0.1 = IpAddress: 255.0.0.0
iso.3.6.1.2.1.4.20.1.3.192.168.1.10 = IpAddress: 255.255.255.0
iso.3.6.1.2.1.4.20.1.3.10.0.0.2 = IpAddress: 255.255.0.0

First one here retrieves the IP addresses on the system while second one get the subnet masks. -c public has to be changed to right community string and also the version if your supports a different one. My system name here is sandboxS and snmpd is listening on default port 161. If not then you can change the port to match yours.

php : find if IP address is in Network range

Using pear Net_IPv4 module one can find if a given IP address is in provided Network range or on the subnet.

<?php
        // check if IP falls in provided subnet
        include("Net/IPv4.php");

        $ipAddr  = "192.168.1.8";
        $netAddr = "192.168.1.0/29"; // 192.168.1.0 - 192.168.1.7

        $objIP = new Net_IPv4();

        echo $objIP->ipInNetwork($ipAddr, $netAddr) ? "$ipAddr is in $netAddr\n" : "$ipAddr is not in $netAddr\n";
?>

This requires pear Net_IPv4 module which can be installing in one of the following ways.

pear install Net_IPv4
php pyrus.phar install pear/Net_IPv4

perl : find if IP address is in Network range

Using NetAddr::IP one can find if a given IP address is in provided Network range or on the subnet. This can take many different representations of the subnet address. For example you can throw at it the CIDR (e.g. 192.168.1.0/29) or explicit start and end addresses (e.g. 192.168.1.0-192.168.1.7) or even with network mask (e.g. 192.168.1.0 mask 255.255.255.248). Following example shows all of these possible cases.

#!/usr/local/bin/perl

use NetAddr::IP;

my $ipAddr  = "192.168.1.8";
my $netAddr = "192.168.1.0/29"; # 192.168.1.0 - 192.168.1.7

my $network  = NetAddr::IP->new($netAddr);
#my $network  = NetAddr::IP->new("192.168.1.0", "255.255.255.248");
#my $network  = NetAddr::IP->new("192.168.1.0", "29");
#my $network  = NetAddr::IP->new("192.168.1.0-192.168.1.7");
my $ip = NetAddr::IP->new($ipAddr);

if ($ip->within($network)) {
        print $ip->addr() . " is in same subnet\n";
}
else {
        print $ip->addr() . " is outside the subnet\n";
}

There are multiple ways the input for network can be provided (four ways are shown above with 3 commented).

bash : search multiple file patterns using single find command

One reader asked how find can be used to find various file patterns. For example in a directory which could be littered with various logs and other files, how do I use a single find command to find all shell scripts, perl scripts and say php scripts. Simple answer is to use multiple -name arguments combined with -o (or ORed) and if needed with -a (or ANDed). Other find conditions (like -mtime, -type etc) can be combined as well. Continue reading this post »

perl : Remove empty lines from an array

Using grep the empty lines can be removed from an array in perl. Here is how.

### Remove any empty lines
@dataArray = grep(/\S/, @dataArray);

Continue reading this post »