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".

PAE/PentiumM (last edited 2015-01-31 14:16:18 by moergaes)