PDA

View Full Version : Fedora7 + VirtualBox + SeamlessRDP = Sweetness! (Seamless virtualization)



sh8kin7
2nd November 2007, 03:41 AM
I have to say this is pretty sweet. I don't know if any of you have gotten this to work, but I thought I'd contribute it anyways since I documented it, just in case anyone was interested. It is actually pretty cool, I think anyways. ;)

Basically, this allows you to use RDP to launch Windows Apps themselves in their own window seamlessly without the need to have them contained in a virtual desktop. So what you get is an environment where you can load Windows Apps as if they were part of your Linux environment. This may be a solution for some of you who have that one Windows app you can't live without. Plus, it's fun!

Anyways, keep in mind these are my notes for my setup. It is pretty straight forward, but I'm sure there may be some differences in some of your setups that may not work as they did for me. I'll try to help where I can, but can't promise anything. (work, time, etc.)


Sh8kin7's Fedora7, VBox, Seamless Virtualization Steps:

#These are the steps I used to configure VirtualBox and SeamlessRDP on Fedora7

1. Install VirtualBox.

Download RPM from VirtualBox Website. (www.virtualbox.org)
rpm -Uvh <file>.rpm

2. Add any users of virtualbox to the vboxusers group

usermod -a -G vboxusers <user>


3. Create the virtual machine and install windows XP.

Run the command "VirtualBox"
Create the VM
Install WinXP

4. Install parprouted

Download from http://hazardous-area.org/parprouted/
Follow instructions in README.


5. Create tap1 interface.

Copy and paste this script into a file and run it as root.

./tapctrl start



-----------Script Begin-------------



#!/bin/bash
# Name: tapctrl
# Usage: tapctrl start|stop
# Provides: tap for virtualbox over external network including wireless
# Short-Description: set up tap device for sharing wifi interface with vbox
# Description: create a virtual tap interface, give it an IP address, set up iptables to masquerade through the default
# device and set up proxy arp with parprouted daemon to enable correct routing
# Original Author: Jack Knight - Open Source Migrations Ltd, UK (http://www.osml.co.uk)
# Modified by Jimmy Bonds for use in Fedora 7
# NOTE: Must have VirtualBox and parprouted package installed first.
##############################
# Set up variables here:
DESC="Virtualbox IP tap"
PATH=/sbin:/bin:/usr/sbin:/usr/bin
TUNDEVICE=tap1 # Arbitrary, but must match device used in virtualbox network device setting
LANDEVICE=eth0 # Adjust to match your network device - may be eth0, eth1 ath0, wlan1 etc.
IPADDR=172.16.254.254 # arbitrary, but make sure you pick something from an unused subnet
NMASK=255.255.255.0 # Network Mask to use with the IP.
USERNAME=<username> # User using VirtualBox. Must be in vboxusers group.
case "$1" in start|restart|force-reload)
echo -n "Starting $DESC: "
VBoxTunctl -t $TUNDEVICE -u $USERNAME
ip link set $TUNDEVICE up
/sbin/ifconfig $TUNDEVICE $IPADDR netmask $NMASK
arp -Ds $IPADDR $TUNDEVICE pub
iptables -t nat -A POSTROUTING -o $LANDEVICE -j MASQUERADE
iptables -t nat -P POSTROUTING ACCEPT # allow other if's to work
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/conf/$TUNDEVICE/proxy_arp
/usr/local/sbin/parprouted $LANDEVICE $TUNDEVICE ;;
stop)
echo -n "Stopping $DESC: "
iptables --table nat -F

killall /usr/local/sbin/parprouted
ip link set $TUNDEVICE down ;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N start|stop" >&2
exit 1
;;
esac
exit 0


------------Script End-------------


6. Under the settings for your WinXP VM, under Network, drop the dropdown box to select
"Host Interface" and under "Interface Name" type in "tap1"

6a. Under the "Shared Folders" settings select a directory you'd like to use to share
files between the host and guest.

6b. Under the "Remote Display" settings click the "Enable VRDP Server" checkbox.


7. Start the VM and when XP comes up configure the network adapter with a static IP.

Use:
IP: 172.16.254.7
Mask: 255.255.255.0
GW: 172.16.254.254 # This must be the same IP that you used for your tap1 IF.

For DNS use an address found in your /etc/resolv.conf file


8. Download and extract seamlessrdp on your XP VM. Extract to C:\seamlessrdp\

http://www.cendio.com/files/thinlinc/seamlessrdp/seamlessrdp.zip


9. Map the shared folder on your VM that you set up on step 6a.

\\vboxsvr\shared_folder

*You can use the GUI, or command line ("net use X:\\vboxsvr\shared_folder /Persistent:Yes")


10. In your VM, run "regedit" and navigate to:

HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Policies\Explorer

Create a new DWORD value named "NoDesktop" and set its value to "1"

Exit out of regedit.

11. In your VM, run "control userpasswords2"

Uncheck "Users Must Enter A Username and Password" checkbox, click apply.

A popup box will ask you what username you want logged in automatically.
Enter the username you want to use.

12. Install VirtualBox Guest Additions.

Click the devices menu at the top of your VM window and select "Install Guest Additions".
Follow the prompts.

13. Enable RDP in Windows and setup a password if you haven't done so yet.


14. Turn off your VM and Exit out of VirtualBox.

15. Configure VirtualBox to run in the background via a terminal session.

VBoxManage startvm "WinXP" -type vrdp # replace "WinXP" with the name of your VM.

16. Run your VM seamlessly twice. The first time you will see the whole desktop, just log out
using "Alt + Esc" and run this command again. The reason is because XP won't listen
for Remote Connections until you've logged in once. Command:

rdesktop -A -s "C:\seamlessrdp\seamlessrdpshell.exe C:\Windows\explorer.exe" <IP of VM>:3389 -u <user> -p <pass>


You should be all set. You should see the Windows Task Bar and Start Button. Just launch your XP apps from there and
they should appear seamlessly.

To Shut the VM down type:

VBoxManage controlvm "WinXP" poweroff

Enjoy.

rbo83
4th December 2007, 02:29 PM
Do you know if unsupported windows printer drivers can be used under an xp virtualized guest, enabling guests to print to these unsupported printers ? Or do we have to install virtualization on a windows host to allow linux guests to use these unsupported printers in windows ?

darkscript
17th December 2007, 07:18 AM
yes, they indeed can if you use usb passthrough, the machine would be given full control over usb just as if it were running usb from a normal xp machine