Last week I needed to create a virtual floppy disk to load drivers for a Windows XP Virtual Machine (VM) during the boot process. This is not a scenario that crops up too often – but in this case I wanted to restore a physical Windows Home Server backup into a VM.
I downloaded the 30 day trail version of WinImage and created a virtual floppy with the drivers that I needed as follows.
Click New and then accept the defaults for a virtual floppy:
If you want to create folders in your virtual floppy click Image then Create folder:
To add files click the Inject icon:
Browse to the location of the files you want added to the virtual floppy and select them to add them:
Here you can see that I have multiple folders created each with a different set of drivers:
To save your virtual floppy click File and then Save As:
Type a file name for the virtual floppy and add the .flp file extension to the file name.
This allowed me to take the vSphere Windows XP drivers from a VM that was backed up on WHS and put them in a virtual floppy. With the virtual floppy I was able to boot the WHS restore CD in VMware vSphere are restore a physical Windows XP WHS backup to a VM.
It’s a handy way of moving WHS backups to a VM so that you can “retire” a backup from WHS to vSphere and make room for other machines to back up.
Today I had to troubleshoot a virus infection on Windows XP for a relative … the virus stopped any executable file from opening and also disabled Antivirus software, made changes to Automatic Updates, Firewall and proxy settings.
The first thing that I did was to run a virus scan using an Ubuntu Live CD as detailed here.
The scan cleaned some files but alas the infection remained.
So I downloaded the free version of Malware Bytes on another computer and copied it to a jump drive. Because the infected computer would not open .exe files I changed the file extension of the Malware Bytes setup file to .com by renaming it.
I had to open My Computer and then click Tools, Folder Options followed by the View tab and then un-check the Hide extensions for known file types check-box to be able to change the file extension:
With the Malware Bytes download renamed I could install it on the infected system.
I then had to change the file extension of mbam.exe located in C:\Program FIles\Malwarebytes’ Anti-Malware\ to mbam.com to run the software.
This helped deal with the infection quite well but the browsers had proxy settings that prevented them from connecting to the internet.
In Firefox 4.x I clicked Options, Advanced, Network [tab] then the Settings [button] followed by the No proxy radio button.
In Internet Explorer I clicked Tools, Internet Options, Connections [tab] then the LAN settings [button] followed by the Automatically detect settings check-box. I also unchecked the Use a proxy server for your LAN check-box.
The next issue to deal with was the Windows Security Center alerts for Windows Update and the Firewall – both of which were set to be monitored by the user.
Security Center told me that Automatic Updates are not yet configured for this computer and when I clicked on the button to enable them I was told We’re sorry. The security center could not change your automatic updates settings.
I changed the settings through the Control Panel but the Security Center alert would not go away. I found the solution here – simply click Start and then Run and enter the following one at a time and then click OK. Wait for the confirmation before entering the next command:
This took care of the alerts for Automatic Updates – the next step was to re-enable the Windows Firewall.
To do this I clicked the Recommendations button under Firewall in the Security Center. I then unchecked the I have a firewall solution that I will monitor myself button and clicked the Enable now button for the Windows Firewall.
I also reinstalled AntiVirus software (which sadly was not enough to prevent the infection in the first place).
In my previous post I looked at using the seamless-mode function of rdesktop to open a Windows XP application window on the Ubuntu desktop. While this worked quite nicely for running a single application there are various workarounds for opening more than one remote application or session. The most promising of these is the Fontis IT version of rdesktop which features “connection sharing” whereby a single rdesktop connection can be used to launch multiple applications.
I followed the directions on the Fontis site for installing rdesktop but found that I had some visual issues with the CVS build, so I installed the older version that has been tested with the patches. If you want to install the latest build from CVS you will find the instructions on the Fontis site here.
Before installing rdesktop I needed to install the following packages:
With that out of the way we can set about downloading and extracting rdesktop:
tar xzvf rdesktop_src.tar.gz
Next we need to download and compile the patches for rdesktop:
patch -p1 < rdesktop.patch
At this point we have rdesktop ready for use on Ubuntu so let’s look at setting up Windows XP Pro next.
On your Windows XP Pro system we need to download the updated server component. Unzip the file and copy the contents to C:\seamlessrdp.
Make sure that you enable Remote Desktop in XP by clicking Start, Control Panel, System, then the Remote tab followed by the Allow users to connect remotely to this computer checkbox.
Now we are all set to run multiple XP application windows in Ubuntu. This command will open a “master” seamless RDP session:
./rdesktop -A -s "c:\seamlessrdp\seamlessrdpshell.exe
C:\Program Files\Internet Explorer\iexplore.exe" <XP Pro IP address>
If this “master” application (in this case Internet Explorer) is closed you will find that you are unable to remote into XP again as you will still be logged in. But before we tackle that let’s quickly look at how to run another Windows application.
Open a new terminal window and issue this command:
./rdesktop -l "calc"
Now you will have Internet Explorer and Calc open in Ubuntu.
While this is certainly functional I wanted to make the seamless rdesktop experience a bit nicer. So I created a very basic application in Visual Studio 2010 Express which I always run as my master session application in XP. This application gives me shortcuts to my most used applications and it has the close button disabled so that I cannot accidentally close my master seamlessRDP session. It also has a menu that lets me terminate the rdesktop session by issuing the “shutdown -l -t 00″ command on XP to log me off.
After that I just needed a script and a launcher to run rdesktop on Ubuntu with the correct parameters to run my application.
I created a file called Remote Apps.sh in my home folder:
./rdesktop -A -s "C:\seamlessrdp\seamlessrdpshell.exe
Here RAM.exe is the name of the application that I made in Visual Studio and <username> is my login name on Ubuntu.
To create a Launcher on the desktop right click the desktop in Ubuntu and then select Create Launcher. Type in a name for the Lanucher and then click the Browse button and select the Remote Apps script in your home folder and click OK.
Here are a few screen-shots of the finished product:
I have looked at various solutions for running Windows applications within (or from) an Ubuntu machine. I’m not a great fan of WINE, because of the layer of complexity that it can add to simply running an application and Remote desktop to Windows is fine but it does not integrate Windows applications.
While there are plenty of expensive (and rather good) solutions for the enterprise like XenApp I was happy to stumble across SeamlessRDP – which is good enough for my needs at home (as well as being free).
SeamlessRDP works through Remote Desktop protocols but instead of giving you a full screen desktop connection it gives you a windowed application instead.
As you can see (above) SeamlessRDP gives you a Windows application window (in this case Internet Explorer) within an Ubuntu window.
To achieve this I have copied the SeamlessRDP files to c:\seamlessrdp on my Windows XP Professional virtual machine. I also enabled Remote Desktop in XP by clicking Start, Control Panel, System, then the Remote tab followed by the Allow users to connect remotely to this computer checkbox.
If you need to add users other than Administrator then also click the Select Remote Users button to add them to the remote desktop users. Also make sure that all of your remote desktop user accounts have passwords configured. Once remote desktop is setup log off from XP so that you can test a seamlessRDP connection.
The next step is to install rdesktop on Ubuntu. Open a terminal window (click Applications, Accessories and then Terminal) and enter the following commands:
sudo apt-get update
sudo apt-get install rdesktop
To run Internet Explorer seamlessly on Ubuntu enter the following command in the terminal:
rdesktop -A -s "c:\seamlessrdp\seamlessrdpshell.exe C:\Program Files\Internet
Explorer\iexplore.exe" <IP of Virtual Machine>:3389 -u username -p password
Change the above command with the IP address of your XP Pro virtual machine and the username and password of a remote desktop user on your XP machine.
The -A switch in rdesktop enables seamlessRDP mode. This means that you get an application window forwarded instead of the whole desktop. SeamlessRDP requires a shell which we invoke with the -s switch. This runs both seamlessrdpshell.exe (which we copied to XP earlier) and the application that we wish to launch on our XP virtual machine. In this case we specified the path to Internet Explorer.
The -u and -p switches do not have to be used, but if you leave them out you will be prompted for your credentials as per any regular remote desktop session.
I have found that this works very nicely but there are some caveats. The first is that by default in XP only one user can be logged in at a time. Running one application at a time might not sound too bad until you realize that closing the application window in Ubuntu does not log the user off in Windows XP.
There are a number of things that you can do to workaround these issues.
You can install a hacked termsrv.dll file to enable multiple concurrent remote desktop sessions in Windows XP Profressional which I have covered previously here.
You can run Task Manager (C:\WINDOWS\system32\taskmgr.exe) or a command prompt (C:\WINDOWS\system32\cmd.exe) and run additional applications from there.
You can write simple batch files for the applications that you want to run on XP that will log you off from XP when the application closes. For example:
cd \Program Files\Internet Explorer
There is also an unofficial version of rdesktop made by Fontis IT Consulting that has seamlessRDP that allows you to call rdesktop several times to open several applications in the same user session.
All in all this looks like a great solution for applications that I do not use regularly or do not want to install on multiple windows systems. Even better, I get to run them on Ubuntu!
It’s bad enough getting a virus on your PC these days especially if the virus disables your current Anti-virus software of choice. Fortunately it is easy enough to boot into an Ubuntu Live CD session and start to remove the infection from there.
First you will want to download the current 32 bit Ubuntu release and burn it to a CD. If you boot from your Ubuntu CD and get a black / blank screen then see this blog post.