Search

Using Windows XP in VirtualBox on Linux

As a person who uses Linux regularly, often I am asked about my opinions
about other operating systems, especially those coming from large companies
located in Redmond, Washington.
Here's the deal. Operating systems are tools. We use them to do jobs. It is
always a good idea to think critically about what tools you are using, and
verify if other tools can do the same job in a more efficient or flexible manner.

Having said that, using Linux as a Host OS for VirtualBox,
I will show you how to create a Windows virtual machine that can interact
with shared network folders in a Windows network as if it were an actual
machine instead of a virtual one. In this article, I will also show you how
to mount local Linux directories as network drives within your Windows Guest OS.

I'll start by assuming that you already have VirtualBox installed
(available here).

This tip assumes that you have legitimate installation media for Windows XP.
Start by selecting "New" to create a new virtual machine.

Indicate the Virtual Appliance name, and select the type of Operating
System. In this case, it will be Windows XP.

Select the amount of RAM that you want the virtual machine to use. I chose
1024 megabytes, as my system machine has 4GB of RAM.

Choose an exisiting virtual hard disk, or create a new one. I will assume
that you wish to create a new virtual disk image (VDI).

Choose either a dynamically expanding or fixed size virtual disk. I'm a fan
of dynamically expanding storage, as it takes up less room on your hard
drive if the virtual hard disk is not full.

Choose the size of your hard disk. In VirtualBox, expanding the size of
virtual disk is a relatively time-consuming endeavor, so give yourself some
breathing room here.

Verify your hard disk choices and choose "Finish".

Verify the rest of your choices, and click "Finish" again,

Your Guest OS should now be in your VirtualBox menu. Before installing, we
need to change some of settings, so highlight your virtual machine and click
on "Settings".

If you wish to install XP from an actual disk, the you need to enable the
drive through the host OS.
Under "Storage", select the CD icon under IDE controller, and select "Host
Drive" under "CD/DVD Device".

Insert the OS disk, start the virtual machine, and install Windows XP as if
it were a normal machine.

After installing the OS, I would recommend installing Guest Additions to
your Windows XP machine.
There is an entire chapter of the VirtualBox Manual dedicated to Guest Additions,
and I encourage you to read it, but here is
the manual's description of what Guest Additions can do.

The Guest Additions offer the following features:

Mouse pointer integration -
To overcome the limitations for mouse support that were described in the
section called "Capturing and releasing keyboard and mouse",
this provides you with seamless mouse support. You will only have one mouse
pointer and pressing the Host key is no longer required to "free" the mouse
from being captured by the guest OS. To make this work, a special mouse
driver is installed in the guest that communicates with the "real" mouse
driver on your host and moves the guest mouse pointer accordingly.

Better video support -
While the virtual graphics card which VirtualBox emulates for any guest
operating system provides all the basic features, the custom video drivers
that are installed with the Guest Additions provide you with extra high and
non-standard video modes as well as accelerated video performance.

In addition, with Windows and recent Linux, Solaris and OpenSolaris guests,
if the Guest Additions are installed, you can resize the virtual machine's
window, and the video resolution in the guest will be automatically adjusted
(as if you had manually entered an arbitrary resolution in the guest's
display settings).

For Linux and Solaris guests, the Xorg server version 1.3 or later is
required for automatic resizing (the feature has been disabled on Fedora 9
guests due to a bug in the X server they supply). The server version can be
checked with Xorg -version.

Finally, if the Guest Additions are installed, 3D graphics for guest
applications can be accelerated; see the section called "Hardware 3D
acceleration (OpenGL and Direct3D 8/9)".

Time synchronization -
With the Guest Additions installed, VirtualBox can ensure that the guest's
system time is better synchronized. This fixes the problem that an operating
system normally expects to have 100% of a computer's time for itself without
interference, which is no longer the case when your VM runs together with
your host operating system and possibly other applications on your host. As
a result, your guest operating system's timing will soon be off
significantly. The Guest Additions will re-synchronize the time regularly.
See the section called "Tuning the guest time synchronization parameters"
for how to configure the parameters of the time synchronization mechanism.

Shared folders -
These provide an easy way to exchange files between the host and the guest.
Much like ordinary Windows network shares, you can tell VirtualBox to treat
a certain host directory as a shared folder, and VirtualBox will make it
available to the guest operating system as a network share. For details,
please refer to the section called "Folder sharing".

Seamless windows -
With this feature, the individual windows that are displayed on the desktop
of the virtual machine can be mapped on the host's desktop, as if the
underlying application was actually running on the host. See the section
called "Seamless windows" for details.

Shared clipboard -
With the Guest Additions installed, the clipboard of the guest operating
system can optionally be shared with your host operating system; see the
section called "General settings".

OK, Now you should be convinced that installing Guest Additions is a good idea.
Luckily, installing Guest Additions is easy!
While your virtual machine is running, click the "Devices" menu and select
"Install Guest Additions."

A setup wizard should begin shortly. Choose to continue.

Twice during the install, Windows will freak out and warn you that the
drivers that are being installed haven't passed "Windows Logo testing". It's
OK. Choose to "Continue Anyway".

Now that Guest Additions have been installed, let's take advantage of the
feature that allows you to mount a Linux directory as a network share.
Select your Virtual Machine from the menu, and select "Settings"

Under "Shared Folders", click the

Add Shared Folder icon on the right side of the window.

Under "Folder Path", select "Other".

Browse to the directory that you wish to share, and select "Open".

Verify your selection, choose the name of the shared folder, choose whether
or not to have "read-only" access, and click "OK".

If you wish that your Guest OS can access and share files on your Windows
file sharing network, you will need to change the way that your virtual
machine interacts with the Internet.
Under "Settings"/"Network", change "NAT" to "Bridged Adapter".

Please understand, the choice to use Bridged Networking does
have security repercussions. The VirtualBox Manual explains
the benefits and limitations of the different networking modes that
are available, but this statement from the VirtualBox manual sums it up
rather well:

In bridged networking mode, all traffic goes through a physical interface of
the host system. It is therefore possible to attach a packet sniffer (such
as Wireshark) to the host interface and log all traffic that goes over it.
If, for any reason, you prefer two or more VMs on the same machine to
communicate privately, hiding their data from both the host system and the
user, bridged networking therefore is not an option.

I will assume that you are willing to accept the security risks that go with
using this networking mode, as well as the additional risks of allowing file
sharing within Windows.

Choose the directory that you wish to share, right-click it, and select
"Sharing and Security"

You may have to complete the Network setup wizard to enable File and Printer
Sharing.

Check "Share this folder on the network", the click "OK". It may ask you to
reboot your (virtual) machine again.

When you restart the computer, you will notice that your directory is listed
as a shared directory, and it will be accessible as a Samba share on your
Linux host machine, as well as all other machines on your network. Enjoy!