SUSE 11 SP3 ELILO, GPT does not boot

HI,
I am more familiar with GRUB. However, I had one IBM server with more than 4 TB - one partition (GPT) so the SUSE will use EFI with LILO as boot manager. Just now, the server could not boot so I went to Rescue mode and I can’t see the files after I mount the driver. I boot it with Opensuse live CD and I can see the file on the drive. I think it must be a specific way I need to mount GPT drive in rescue mood. I inspected elilo.conf and /boot files which it seems to be correct. Does it mean I lost the boot sector? How do I recover it? I found the instruction for GRUB and not LILO. Any help will be appreciated.

Thank you in advance,

John Chow

Hi
Did you create a small (say 200MB) partition of type ef00 with vfat and
during the install set this via (YaST expert partitioner) to /boot/efi?

Also check the efivars for booting with;

efibootmgr -v


Cheers Malcolm °¿° LFCS, SUSE Knowledge Partner (Linux Counter #276890)
SUSE Linux Enterprise Desktop 12 SP1|GNOME 3.10.4|3.12.51-60.25-default
If you find this post helpful and are logged into the web interface,
please show your appreciation and click on the star below… Thanks!

Yes, there is 500 MB under /boot/efi. The efibootmgr can’t be excute under rescue environment. Anyway, I fixed the corrupted partition, and I was able to view the partition by using parted command. On the IBM X3650, you have to use Boot Manager associate with /boot/efi as one of boot sequence. After all, I was able to bring it online. In different scenarios afterward, what about it can not boot and you can see the files under partition. How would you fix it the LILO boot manager or partition?

Thanks in advance,

John

[QUOTE=malcolmlewis;31227]Hi
Did you create a small (say 200MB) partition of type ef00 with vfat and
during the install set this via (YaST expert partitioner) to /boot/efi?

Also check the efivars for booting with;

efibootmgr -v


Cheers Malcolm °¿° LFCS, SUSE Knowledge Partner (Linux Counter #276890)
SUSE Linux Enterprise Desktop 12 SP1|GNOME 3.10.4|3.12.51-60.25-default
If you find this post helpful and are logged into the web interface,
please show your appreciation and click on the star below… Thanks![/QUOTE]

I have used SLES 11.3 x86-64 for a while on servers using EFI and ELILO for booting, not grub.

recommend you have only one hard drive installed in your system, that way it shows up as device /dev/sda
and not something other than sda

the first partition of the hard drive should be formatted as FAT32, or VFAT.
The EFI of the system will read that file system.
You should have the folder structure of efi/SuSE/ there with these files

elilo.conf
elilo.list
elilo.efi
vmlinuz-3.0.101-68-default
initrd-3.0.101-68-default

the numbers 3.0.101-68 will be different for you, I am running sles 11.4 so my numbers refer to a later kernel version.

look at your elilo.list file and make sure it points to the correct syntax of the initrd and vmlinuz files.
here is the exact contents of my elilo.list file, just 4 lines:

elilo.conf
elilo.efi
vmlinuz-3.0.101-68-default
initrd-3.0.101-68-default

provided this boot partition is not corrupted and that elilo.efi file is not corrupted,
it will then read go off the elilo.list and elilo.conf files.

here is my elilo.conf file

# This file has been transformed by /sbin/elilo.
# Please do NOT edit here -- edit /etc/elilo.conf instead!
# Otherwise your changes will be lost e.g. during kernel-update.
#
# Modified by YaST2. Last modification on Tue Feb  2 16:39:27 EST 2016
timeout = 80
##YaST - boot_efilabel = "SUSE Linux Enterprise Server 11 SP4"
default = SLES11_SP4_1
prompt

image = vmlinuz-3.0.101-68-default
###Don't change this comment - YaST2 identifier: Original name: linux###
    label = SLES11_SP4_1
    append = "splash=verbose showopts  "
    initrd = initrd-3.0.101-68-default
    root = /dev/disk/by-id/scsi-35000c5003335b7ff-part2

image = vmlinuz-3.0.101-68-default
###Don't change this comment - YaST2 identifier: Original name: failsafe###
    label = Failsafe
    description = "Failsafe (3.0.101-68-default)"
    append = "showopts ide=nodma apm=off noresume edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe   "
    initrd = initrd-3.0.101-68-default
    root = /dev/disk/by-id/scsi-35000c5003335b7ff-part2

the big thing is where it has root = /dev/disk…
for you with only one hard drive in the system, which will be device /dev/sda,
edit that root line in both locations in your elilo.conf file to be

    root = /dev/sda2

now my hard drive has 2 partitions, partition 1 being /dev/sda1 is the EFI boot partition formatted as FAT32 having the files i just described,
and partition 2 is the root partition, I don’t have a swap partition.
Whatever partition number is your root partition is the number you want to use, so for instance if your partition 2 is swap, and partition 3 is your / partition {your root partition} then do root = /dev/sda3

if you can boot the dvd and do rescue system and get a prompt where you can look at and edit these files, that’s generally all that needs to be done for the EFI boot method.
And in combination with the install dvd doing an automatic repair on the boot partition, fixing elilo.efi if it is bad, you should be able to fix it.

one last thing for successful boot: the /etc/fstab file on the root partition.
here is first 2 lines of mine

/dev/disk/by-id/scsi-35000c5003335b7ff-part2    /       ext3    acl 1 1
/dev/disk/by-id/scsi-35000c5003335b7ff-part1    /boot/efi       vfat    umask=0002,utf8=true 0 0

I have mine set to mount “by device-id”
what i described above is all about mounting “by device-name” which is much more simple but has it’s drawbacks.
Provided you have only your operating system hard drive in the system, so you know it will be device /dev/sda
then edit your /etc/fstab file if necessary.
Mine refers to my specific hard drive, yours will have a different scsi id which i have know idea what that can be.
But all you need to do is this

/dev/sda2    /       ext3    acl 1 1
/dev/sda1    /boot/efi       vfat    umask=0002,utf8=true 0 0

in your /etc/fstab file and that will allow for a successful boot.
Once running, you can go into yast - system - partitioner and change the fstab options for that disk back to mount by-device-id,
then look at your /etc/fstab file and it will have the correct syntax for the scsi id of your drive, which you can then manually edit back in to /boot/efi/efi/SuSE/elilo.conf and /etc/elilo.conf.

on your ibm server, if it has a raid card where you have to create a volume even if using one disk drive,
I have run into problems over the years on some servers where the scsi id of that drive/volume gets created by the raid card, and changes if your raid card prompts you during boot saying configuration has changed press f to import or c to configure.
then the server fails to boot because what is in my elilo.conf file which is /dev/disk/by-id/scsi-#### so longer matches what the raid card is presenting the drive as, it’s a different scsi-####.
So i end up doing the procedure described above.
The way around this repeated problem is to mount by device-uuid or by device-path.