Howto: Run a WUBI installation under coLinux (Ubuntu installer for Windows)[]
The Installation from Wubi can simple use as basic installation for coLinux. Here are the steps.
Install Wubi[]
- Goto http://wubi-installer.org/ and download the installer
- I used Ubuntu 8.10 (2009-01-04) for this description here.
- Install Xubuntu in normal way, choose your language and packets
- I used minimal, 3.8 GB filesystem and 200 MB swap
- Test the running Wubi and boot Ubuntu
- Login as root, set root password, check that you can login as root.
- Check that you have installed a console editor (for example
nano
).
Where are the files we need?[]
C:\ubuntu\disks\root.disk
Contains the root filesystemC:\ubuntu\disks\swap.disk
Contains the swapc:\ubuntu\disks\boot\
Contains boot files, native kernels, initrd and bootloader. We don't need for coLinux.
All files leave untouched.
Create coLinux start script[]
- Boot Windows and create a new file "ubuntu.cmd" in your coLinux install directory (c:\colinux or "c:\program files\colinux"). Put this code into the file:
REM change to coLinux install path cd c:\colinux REM start coLinux colinux-daemon kernel=vmlinux cocon=100x60 ^ cobd0=C:\ubuntu\disks\root.disk ^ cobd1=C:\ubuntu\disks\swap.disk ^ root=/dev/cobd0 text ^ eth0=slirp ^ cofs0=. cofs1=C:\ubuntu\disks\boot
- If you use notepad, then check that the file does ends with ".cmd" or ".bat" and not with ".txt"!
- The
^
lets continue long lines in next line under Windows. - Replace the path
c:\colinux
with your current coLinux install directory. - Change the console size after
cocon=...
as you like. Or remove it completely. - The entry
cofs1
is optional. It points to /boot and is not real used. (see fstab later) - The word
text
as boot parameter says, that GDM (graphic login) should not run. This is a text only mode.
First boot[]
- Please reboot Windows before you first try to start coLinux. This helps you, not loosing data from last changes, in case coLinux does not start and crash your system (sometimes)!
- Start the script
ubuntu.cmd
- Ubuntu will start with lot of errors, for example:
error: "vm.mmap_min_addr" is an unknown key ... mount: special device /host/ubuntu/disks/boot does not exist ... FATAL: Could not load /lib/modules/2.6.22.18-co-0.8.0/modules.dep: No such file or directory $Loading AppArmor module: Failed. ... /dev/mem: mmap: Bad address
- Don't worry. In the end you should get a login prompt like this:
Ubuntu 8.10 ubuntu tty1 ubuntu login:
Adjust fstab entries[]
fstab Wubi default[]
The default installation would have this entries:
# /etc/fstab: static file system information. # # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 /host/ubuntu/disks/root.disk / ext3 loop,errors=remount-ro 0 1 /host/ubuntu/disks/boot /boot none bind 0 0 /host/ubuntu/disks/swap.disk none swap loop,sw 0 0
- Make a backup of current fstab "
cp /etc/fstab /etc/fstab.orig
"
fstab for coLinux only[]
- Change the entries for Root, Swap and boot as follow:
# /etc/fstab: static file system information for coLinux. # # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 /dev/cobd0 / ext3 errors=remount-ro 0 1 cofs1 /boot cofs defaults 0 0 /dev/cobd1 none swap sw 0 0
boot is optional and never used. You can comment out or remove it.
Hint: Keys Win+V inserts the copy&paste buffer from Windows.
fstab for dual boot[]
- If you wish to boot Wubi and coLinux with same fstab, then add the coLinux entries behind the defaults.
# /etc/fstab: static file system information. # # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 /host/ubuntu/disks/root.disk / ext3 loop,errors=remount-ro 0 1 /host/ubuntu/disks/boot /boot none bind 0 0 /host/ubuntu/disks/swap.disk none swap loop,sw 0 0 # # Mount points under coLinux /dev/cobd0 / ext3 errors=remount-ro 0 1 /dev/cobd1 none swap sw 0 0
Under coLinux the files "/host/ubuntu/..." would not found and mount will skip these. Under native Ubuntu the "/dev/cobd..." does not known by kernel and will skip. You will see some warnings.
Installing modules[]
- I assume, that cofs0 points to your coLinux installation and the modules exist as archive vmlinux-modules.tar.gz there. Mount cofs0 and install modules as follow:
mount cofs0 -t cofs /mnt tar xzf /mnt/vmlinux-modules.tar.gz -C / depmod
Second boot[]
- Now, type
reboot
. After next start, mostly errors should solved and the swap will use. - Here are my outputs from commands
free
andmount
:
root@ubuntu:~# free total used free shared buffers cached Mem: 255952 70716 185236 0 4156 48432 -/+ buffers/cache: 18128 237824 Swap: 195304 0 195304 root@ubuntu:~# mount /dev/cobd0 on / type ext3 (rw,errors=remount-ro) tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755) /proc on /proc type proc (rw,noexec,nosuid,nodev) sysfs on /sys type sysfs (rw,noexec,nosuid,nodev) varrun on /var/run type tmpfs (rw,nosuid,mode=0755) varlock on /var/lock type tmpfs (rw,noexec,nosuid,nodev,mode=1777) udev on /dev type tmpfs (rw,mode=0755) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev) devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620) cofs1 on /boot type cofs (rw) securityfs on /sys/kernel/security type securityfs (rw)
Fine tune[]
From here we tune up the boot scripts to not have to many errors.
Hardware clock[]
Disable the access to hardware RTC by editing the file /etc/default/rcS
and change or add this entry:
HWCLOCKACCESS=no
Setting up console font and keymap ... has long delay[]
Edit file /etc/init.d/console-setup
and add a bypass for coLinux near line 14. Add the line that is marked with '+':
set -e +uname -r | grep -qe "-co-" && exit 0 test -f /bin/setupcon || exit 0 if [ -f /lib/lsb/init-functions ]; then
suppress ACPI errors[]
Edit file /etc/init.d/acpi-support
and add a bypass for coLinux near line 12. Add the line that is marked with '+':
--- /etc/init.d/acpi-support.orig +++ /etc/init.d/acpi-support @@ -9,6 +9,7 @@ test -f /lib/lsb/init-functions || exit 1 . /lib/lsb/init-functions +uname -r | grep -qe "-co-" && exit 0 test -d /var/lib/acpi-support || exit 0 shopt -s nullglob
udev: renamed network interface eth0 to eth2[]
On my system udev renamed eth0 to eth2. To solve this, first I have changed in the file /etc/udev/rules.d/70-persistent-net.rules
the NAME="eth2"
into NAME="eth0"
.
This helps for a while. But here is a better way:
- Edit file
/etc/udev/rules.d/75-persistent-net-generator.rules
if it exists and set a bypass for coLinux in same way as xen or UML does it. Add the with + marked lines after the entry Xen (near line 26. If the file doesn't exist, create it by copying/lib/udev/rules.d/75-persistent-net-generator.rules
, it should already contain the necessary lines. Make sure that the LABEL defining the end of generation instructions is set near the end of the file, otherwise you'll mess the system...)
# ignore Xen virtual interfaces SUBSYSTEMS=="xen", GOTO="persistent_net_generator_end" +# Do not rename coLinux network devices +DRIVERS=="conet", GOTO="persistent_net_generator_end" + # read MAC address ENV{MATCHADDR}="$attr{address}"
- Then edit file
/etc/udev/rules.d/70-persistent-net.rules
and remove all lines with "(conet)" in comments, if any. You will mostly find a lot of them. Please remove them all.
- Such lines will never be created again, with the changed persistent-net-generator.rules (see above).
- Only users of Dualboot should leave lines, that have no "(conet)" in comment.
- After next reboot eth0 should be the slirp and network will be set automatically from the buildin dhcp.
ifconfig eth0
shows this now:
eth0 Link encap:Ethernet HWaddr 00:ff:b3:da:79:80 inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0 ...
UTF-8[]
FLTK and NT console don't support UTF-8. It's good idea to disable UTF-8 in the default configuration. I have a German installation, so I used "de_DE" in my examples. Replace de_DE with your language code.
- Create the locale with this command:
locale-gen de_DE
- Edit the file
/etc/default/locale
and remove the UTF-8 from LANG. I changed it fromLANG="de_DE.UTF-8"
intoLANG="de_DE"
. - Edit the file
/etc/environment
and remove the UTF-8 from LANG.
If you later login with Putty, you can enable UTF-8 inside Putty by exporting the variable LANG with "de_DE.UTF-8" (in menu "Connection" - "Data") and set the "Character set translation on received data" to UTF-8 (in menu "Window" - "Translation").
Fix up long timeout from GDM on shutdown[]
GDM is not running, so we not need to wait for killing this task.
Edit file /etc/init.d/gdm
and add a bypass for coLinux before the message "Stopping GNOME Display Manager". Add the line that is marked with '+':
--- /etc/init.d/gdm.orig +++ /etc/init.d/gdm @@ -83,6 +83,7 @@ fi ;; stop) + uname -r | grep -qe "-co-" && exit 0 log_begin_msg "Stopping GNOME Display Manager..." start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE --name gdm ... log_end_msg 0
"vm.mmap_min_addr" is an unknown key[]
Edit file /etc/sysctl.d/10-process-security.conf
and comment out the line with entry "vm.mmap_min_addr = 65536
".
/dev/mem: mmap: Bad address[]
This is harmless and I don't have fixed it.
Trouble shooting[]
System maintain mode[]
System maintain mode you can activate for Ubuntu 8.10 by adding the word single
into coLinux config line as boot parameter.
View into your boot menu from file c:\ubuntu\disks\boot\grub\menu.lst
(under Windows) to find the boot parameter on your Ubuntu version in the section with title "recovery mode".
More Links[]
Support Request 2485983: Booting a WUBI image from c:\ drive in CoLinux