Follow the instructions below to install or upgrade a Ubuntu (or any flavor) system with a Pentium M processor that doesn't announce its PAE support.
Installing
Without forcepae
The ISO install images use syslinux to boot the Linux kernel. The boot fails because syslinux jumps to the 16-bit entry point of the kernel which does a CPU check. Grub bypasses the 16-bit code and jumps directly to the 32-bit entry point. Thus, the boot will be successful if syslinux is replaced with Grub.
- Download ISO of ubuntu flavor you wish to use, for example, xubuntu. I will use the name xubuntu.iso, for convenience.
- partition and format USB stick, in this example, /dev/sdb and /dev/sdb1. The USBStick has to be larger then the iso. Use mkvfat for formatting of /dev/sdb1.
- Eject and insert the USB to have the automounter mount the USB drive. Make note of the location.
- Use grub to install grub to the USB stick
- grub-install --no-floppy --root-directory=/media/ubuntu/2341-af31/ (obviously this will have to match the mounted path)
grub-mkconfig > /media/ubuntu/2341-af31/boot/grub/grub.cfg
Open grub.cfg in your favorite editor and remove all the menuentry sections to replace it with the following.
menuentry "Xubuntu (32bit)" { iso_path=/xubuntu-13.10-dvd-i386.iso export iso_path search --set --file $iso_path loopback loop $iso_path root=(loop) configfile /grub/loopback.cfg loopback --delete loop }
Save, unmount and reboot from the USB stick.
What will happen is, the USB stick will be booted as usual by grub, grub will then do a loopback mount of the iso, as is (so no modification to it required). The beauty of this all is, you can add MORE iso's and just add menu entries for them. So xubuntu 32bit, 64bit, gnomebuntu, you name it, you can add it. The only requirement is that the iso does actually support grub booting (e.g. has the /grub/loopback.cfg). Not all iso's have this!
Upgrading
Install a PAE kernel (to verify your system is PAE capable)
First, run
apt-get install linux-image-generic-pae
Reboot and then run
uname -a
This should output a line where the version number (eg. 3.11.0-17) ends with "-generic" and is 3.11.x or above.
Add the PAE flag to processor information
To add the PAE flag to the processor information stored in /proc/cpuinfo, run the following:
cat /proc/cpuinfo | sed 's/flags\t*:/& pae/' > /tmp/cpuinfo_pae sudo mount -o bind /tmp/cpuinfo_pae /proc/cpuinfo sudo mount -o remount,ro,bind /proc/cpuinfo
After you have ran those commands, run
grep flags /proc/cpuinfo
If the flag was correctly added, the command returns a line that starts with "flags :" and contains the flag "pae".