Booting without Grub

Hello,

I’ve already installed some linux distributions on my SSD and using the EFI bootmanager. Now I’ve installed openSUSE without Grub and added it to the EFI bootmanager. But it doesn’t work.

Is there a way to boot openSUSE without Grub?

Regards

You can still use LILO I believe and for EFI you have you use grub2-efi not grub. but the short answer is you gotta have a boot loader of some kind. Grub 2 is the current one supported by openSUSE

I’m using the bootloader of the UEFI firmware of my computer for all my other linux distributions without installing a separate bootloader like Grub. I hope there is also a way to use it with openSUSE.

Is there a way to check the kernel options CONFIG_CMDLINE and CONFIG_INITRAMFS_SOURCE? and I don’t find the kernel sources. The direction /usr/src/linux doesn’t exist.

Maybe chain load but with EFI I think you need an entry in the efi/boot partition (mounted as /boot/efi) and I think you must install grub2-efi to get that. Could be wrong never tried it. In any caase you can tell efi to set any installed OS to be the default boot. Definitely different then MBR booting

But in any case you need to follow the recomendation of the OS you are booting from to boot to another.

I somewhere saw a report about doing that, but I don’t have a link.

You would need to copy the kernel in your EFI partition, and give it a name ending in “.efi”. You would also need to copy the “initrd”, and I think there’s a command line argument to load that – maybe “initrd=name-of-initrd-file”.

You would need to be using 64-bit opensuse.

My best advice: install “elilo”. You can just load the elilo files yourself into your EFI partition, and use it to load opensuse. That will give you a way of getting the system up and running, until you work out how to do it directly. The “elilo” web page should give enough info on how to do that.

Is there a way to check the kernel options CONFIG_CMDLINE and CONFIG_INITRAMFS_SOURCE? and I don’t find the kernel sources. The direction /usr/src/linux doesn’t exist.

You probably didn’t install kernel sources. I think you have to at least install “kernel-devel” to get the directory “/usr/src/linux”.

On Wed 12 Nov 2014 08:16:03 PM CST, gogalthorp wrote:

You can still use LILO I believe and for EFI you have you use grub2-efi
not grub. but the short answer is you gotta have a boot loader of some
kind. Grub 2 is the current one supported by openSUSE

Hi
There are a couple of alternatives, elilo and gummiboot will boot
UEFI…


Cheers Malcolm °¿° LFCS, SUSE Knowledge Partner (Linux Counter #276890)
SUSE Linux Enterprise Desktop 12 GNOME 3.10.1 Kernel 3.12.28-4-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!

I’ve solved the problem.

  1. Determine the UUID of the root partion (e.g. sda4):

# blkid /dev/sda4
/dev/sda4: LABEL="suse-root" UUID="e94cd679-0561-4de4-b78e-0c504ded69fe" TYPE="ext4" PARTUUID="e8c51e94-700b-4ef0-891f-a62f06b1ff4c"

  1. Edit kernel configuration:

CONFIG_CMDLINE="root=UUID=e94cd679-0561-4de4-b78e-0c504ded69fe video=intelfb rootfstype=ext4"
CONFIG_INITRAMFS_SOURCE="/boot/initramfs-sda4.cpio"

  1. Build kernel image and initramfs:

# make && make modules_install
# make install

  1. Extract initramfs (*.cpio.xz → *.cpio):

# xz -dc /boot/initrd-3.16.6-2-desktop > /boot/initramfs-sda4.cpio

  1. Copy kernel image to EFI partition (e.g. sda1):

# mount /dev/sda1 /mnt/sda1
# cp vmlinuz-3.16.6-2-desktop /mnt/sda1/efi/boot/bootx64-sda4.efi

  1. Add the image to your UEFI boot menu (EFI uses “” as path separator):

# modprobe efivars
# efibootmgr -c -d /dev/sda -p 1 -L "suse" -l '\efi\boot\bootx64-sda4.efi'

Thanks for your help.