I recently discovered (courtesy of Ubuntu Geek Portable Ubuntu, a Portable Windows application which uses Cooperative Linux [version 0.7.3] to run a Linux kernel as a Windows process! I was very pleased, but found a few small glitches in the installation and upgrade from Ubuntu 8.04 LTS to the latest Jaunty 9.04 release which I’ll document here.
Upgrade to Jaunty
First, as mentioned above, Portable Ubuntu comes with 8.04. I upgraded to 9.04 by replacing all references to hardy
in /etc/apt/sources.list
with jaunty
, and ran apt-get dist-upgrade [the default version doesn’t include aptitude]. This upgrade went perfectly; I was a little nervous about skipping a version completely, but it worked just fine.
Enlarging the root filesystem
I had to enlarge the main partition soon afterwards: to do that, shut down Portable Ubuntu, and open a DOS prompt in the images folder. Run:
fsutil file createnew more_space.img SIZE_TO_ADD_IN_BYTES
copy /b rootfs.img+more_space.img rootfs_.img
move rootfs_.img rootfs.img
del more_space.img
Boot Portable Ubuntu, and run
sudo resize2fs -f /dev/cobd0
.
TAP for Host<->coLinux communication
As mentioned on the networking page, the default slirp networking is not very efficient, although it is perfect for portability. I added a TAP device by downloading the coLinux modified TAP driver, extracting to an empty directory, and running
tapcontrol.exe install OemWin2k.inf TAP0801co
At first I was worried that this might interfere with my Tap device for OpenVPN (driver version 0.9), but it didn’t. To configure this device, I renamed the device to “coLinux_Tap”, set it as always connected (coLinux_Tap Properties -> configure -> Advanced -> Media Status == “Always Connected”), and assigned a static IP address of 192.168.3.1.
I downloaded the daemon package from colinux for version 0.7.3, and extracted colinux-net-daemon.exe
into my Portable_Ubuntu folder. This step is very important; without it, the tap device in colinux will not connect to the tap device in windows.
The next step was to actually create an eth1 in coLinux which would be intended for use with the Tap device. I added the following line to configs\portable_ubuntu.conf
:
eth1=tuntap,"coLinux_Tap",
Finally, I booted Portable_Ubuntu, and added the following to /etc/network/interfaces
auto eth1
iface eth1 inet static
address 192.168.3.2
network 192.168.3.0
netmask 255.255.255.0
broadcast 192.168.3.255
Once I did this, I had my tap device ready for local communication. In order to have X use it, I edited .profile
to export DISPLAY=192.168.3.1:0
instead of the default (which was the slirp IP).
PulseAudio
The only remaining problem was PulseAudio. I had to edit the pulseaudio-0.9.6\default.pa
file, and modify the first two lines to read
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.3.2
load-module module-esound-protocol-tcp auth-ip-acl=127.0.0.1;192.168.3.2
3 responses to “Working Portable Ubuntu with Jaunty (9.04)”
Thats so nice of you to share the information. I was just wondering is it possible bring the Portable Ubuntu and existing windows on the same network and be able to address the two with different IPs. I was thinking of running LAMPP in Portable Ubuntu while test the it on IE7 and Mozilla Firefox on windows.
Thanks
Vayam
Glad you’re enjoying
too bad this it’s running as slow as a VM (as far as gui application)