How to fix: Ubuntu 12.04 reboots after loading with elilo
- by Casey
I have an HP p6-2120 with
CPU: AMD A6-3620 APU with Radeon Graphics
RAM: 6GB
BIOS: HO2_710.ROM v7.10 [AMI v7.10 4/19/2012]
Disk: SATA1 (/dev/sda) - 1 TB (windows)
Disk: SATA2 (/dev/sdb) - 1 TB partitioned using "parted -a optimal /dev/sdb" as follows:
.. 1049KB 201MB FAT32 boot flag set
.. 201MB 60GB ext2 (/)
.. 68GB 78GB linux-swap(v1) (swap)
.. 78GB 790GB ext4 (/home)
.. - rest is "free" space reserved for other purposes (eventually)
ubuntu: 12.04.1 LTS [specifically: Release 12.04 (precise) 64-bit]
kernel: linux 3.2.0-29-generic
I created a bootable EFI USB from the ISO (64-bit) which I downloaded. I can run and install from the USB without any problems.
The BIOS is an EFI bios that appears to be capable of booting in either EFI or Legacy mode.
Initially, I did the "standard" install with NOTHING on disk2, and let the installer configure everything. The net result of this was that when I started the computer and forced it into "boot" menu mode, it DOES NOT recognize SATA2 as an EFI drive, and when I attempt to "legacy" boot from it, I get the message "ERROR: No Boot Disk has been detected." The "standard" install created one large partition that consumed the entire disk.
At that point, I manually partitioned the disk (using sudo parted -a optimal /dev/sdb) as described above. I selected the "other" install, and changed the /dev/sdb1 to "bios_grub", /dev/sdb2 as "/" (ext4), /dev/sdb3 as swap, and /dev/sdb4 as "/home". [Note: fearing that possibly elilo did not recognize ext4, I switched /dev/sdb2 to ext2 and re-insalled]
The net result was that the install appeared to trash the /dev/sdb1 partition so that it was NOT readable by anything.
I re-formated /dev/sdb1 as FAT32 and set the boot flag. I repeated the install ignoring the messages about no bios_grub partition.
After several attempts to get GRUB2 to work, I switched to elilo. I downloaded the most recent version and copied it (elilo-3.14-ia64.efi) to /dev/sdb1/efi/boot/bootx64.efi. (The BIOS boot loader did not recognize it either as elilo-3.14.ia64.efi or as elilo.efi. Based on the advice in one of the web-pages I found, I renamed it to bootx64.efi. This worked.)
In that same directory (/efi/boot), I copied the file pointed to the link in /dev/sdb2/vmlinuz to /efi/boot/vmlinuz, and the file pointed to the link in /dev/sdb2/initrd.img to /efi/boot/initrd.img. I created an elilo.conf file as follows:
timeout=5000
prompt
default=linux-boot
image=vmlinuz
label=linux-boot
read-only
initrd=initrd.img
root=/dev/sdb2
The /efi/boot directory contains 4 files:
bootx64.efi
elilo.conf
vmlinuz
initrd.img
When I power-cycle the computer and force the boot menu, drive2 shows up as an EFI bootable drive. When I select it, I get the elilo prompt. Pressing , it appears to load the kernal (I have tried it with verbose=5, and there is a long string of messages with the final one a command line to load the kernel and a series of several dots that fly by) then the screen goes blank, and it reboots the computer. [Note: I have also tried substituting the UUID as found in the /etc/fstab of the installed system for the root directory. This had no effect.]
This is a brief synopsis of several nights of fiddling with this. I would deeply appreciate any help you can give.