-   Slackware (
-   -   ELILO - how to dual boot Windows (

trainee 12-05-2013 06:15 PM

ELILO - how to dual boot Windows
I have just installed Slackware 14.1 on a Sony Vaio (with UEFI). I created a partition and installed Slackware on it. But now, the computer boot right into Slackware from the beginning with no prompting. Do you know how I can access elilo, and configure it so that I can dual boot to either Windows or Slackware?


trainee 12-05-2013 08:11 PM

This is not an answer (at least, in the sense of using ELILO to dual boot), but a workaround. I installed rEFind and was able to boot Windows again.

Added later: Yes, reFIND helped me got Windows back, but ultimately, it still does not help dual booting. It messed up after one Windows boot, and I could not get it to work again (even after following the instruction of the author of the software). In the end, my current situation is: created a USB stick for my Slackware. If I need to boot Linux, I use the USB stick. If not, I boot by hard drive. Is there anything you can help me with this?

onebuck 12-06-2013 12:05 PM

Member Response


To use UEFI, or not to use UEFI? Unless your computer came with a preinstalled version of Windows that requires UEFI, switching to Legacy Boot (aka, traditional BIOS) is an option. Just switch to Legacy Boot in the UEFI menus. With most systems you can get into the UEFI menu by pressing the ESC key as the system boots. Then boot the Slackware installer and remove any existing partitions using cgdisk to start over. You may use either the GPT partitioning scheme, or the traditional MBR partitioning scheme, but there's really no advantage to switching back to MBR if your system already has a GPT partitioned hard drive. But... if you want to do that, you can. To wipe out an existing GPT, use the gdisk command. For example, to wipe /dev/sda: gdisk /dev/sda Enter 'x' to enable the entended options. Enter 'z' to zap (wipe out) the existing GPT. Answer 'Y' to add questions. But I do want to use UEFI, and keep my existing Windows installation! Great! First things first. You'll need to enter the UEFI menus and disable Secure Boot, since Slackware does not currently work if Secure Boot is enabled. Windows will continue to work fine without it. Then, you will probably need to shrink your main Windows partition, since otherwise it is unlikely that you'll have any free space to install Linux. To do this, boot the machine into Windows. Move the mouse into the upper right corner, and select the search function (magnifying glass icon). Enter diskmgmt.msc to start up the Disk Management tool. The disk partitions will be displayed as a bar chart at the bottom of the window. Mouse over the main Windows partition (probably the largest NTFS partition) and right click to bring up a menu. Select "Shrink Volume..." from this menu. Shrink the partition to make enough free space for Slackware's root, swap, and other partitions. Reboot the machine, and start the Slackware installer from USB or DVD. You might have to hit ESC and select your boot device from the boot manager menu. Now you're ready to install!
Be sure to read the whole document. :)

jtsn 12-07-2013 03:35 AM

ELILO unlike LILO isn't a boot manager, so you have to install one. Your options are rEFInd, GRUB 2 and SYSLINUX 6.x.

The easiest choice is rEFInd, because it's able to autodetect everything (including ELILO). Another hindrance is that you have to use Windows to set your preferred boot manager, otherwise it resets the firmware to its own one. The rEFInd documentation contains the instructions.

onebuck 12-07-2013 06:19 AM

Member Response


elilo - install EFI boot loader


elilo [options]

This manual page documents briefly the elilo command, which was written specifically for the Debian distribution to simplify configuring and using the elilo.efi bootloader. There are two parts to elilo, the bootloader itself and this utility which installs or updates a bootload configuration. The primary function of elilo is to copy files necessary for booting Debian GNU/Linux from the main filesystem to a subdirectory /EFI/debian on the boot partition. These include elilo.efi, elilo.conf, and the kernel and ramdisk images referenced by elilo.conf. In addition, elilo can create a default configuration file, /etc/elilo.conf, and can invoke efibootmgr to create an entry in the EFI Boot Manager menu such that a system will autoboot in to Debian GNU/Linux on power up. elilo requires a couple of extra parameters in elilo.conf that elio.efi does not currently support. These are needed so that a normal run of elilo with no parameters can find the elilo.efi binary and boot partition in order to rebuild it. They are: install=<path to elilo.efi> boot=<boot partition>


efibootmgr -- manipulate the EFI Boot Manager

efibootmgr [-a] [-A] [-b XXXX] [-B XXXX] [-c] [-d DISK] [-e 1|3|-1] [-E NUM] [-l NAME] [-L LABEL] [-n XXXX] [-N] [-o XXXX,YYYY,ZZZZ ...] [-O] [-p PART] [-q] [-v] [-V] DESCRIPTION

efibootmgr is a userspace application used to modify the Intel Extensible Firmware Interface (EFI) Boot Manager. This application can create and destroy boot entries, change the boot order, change the next running boot option, and more. Details on the EFI Boot Manager are available from the EFI Specification, v1.02 or later, available from: (link to URL Note: efibootmgr requires that the kernel module efivars be loaded prior to use. 'modprobe efivars' should do the trick.
rEFInd is not a boot loader;

This page describes rEFInd, my fork of the rEFIt boot manager for computers based on the Extensible Firmware Interface (EFI) and Unified EFI (UEFI). Like rEFIt, rEFInd is a boot manager, meaning that it presents a menu of options to the user when the computer first starts up, as shown below. rEFInd is not a boot loader, which is a program that loads an OS kernel and hands off control to it. Many popular boot managers, such as the Grand Unified Bootloader (GRUB), are also boot loaders, which can blur the distinction in many users' minds. rEFInd, though, relies on a separate boot loader to finish the handoff to an OS; it just presents a pretty menu and gives you options for how to proceed prior to booting an OS. All EFI-capable OSes include boot loaders, so this limitation isn't a problem. If you're using Linux, you should be aware that several EFI boot loaders are available, so choosing between them can be a challenge. In fact, the Linux kernel can function as an EFI boot loader for itself, which gives rEFInd characteristics similar to a boot loader for Linux. See my Web page on this topic for more information.
Hope this helps to clear things up.

arubin 12-09-2013 09:43 AM

I prefer rEFInd and find that it reliably boots Slackware or Windows.

Alternatively you can try Grub2. I wrote a howto for Grub2 which is here. I suggest trying it all out on a USB stick before moving the files to the EFI partition. The howto is over a year old now but should still work. Grub2 is now installed on 14.1 so you needn't bother with that step.

I found that Grub2 sometimes failed inexplicably in booting Windows. ReFInd is the only solution that has worked for me consistently. I suspect that EFI is a bit buggy and it is a little difficult to predict what will work for you.

onebuck 12-09-2013 06:04 PM

Member Response

rEFInd is not a bootloader! Nothing more than a menu to provide selection for proper firmware to allow the hardware to be prepared to use a bootloader;

rEFInd is a boot manager

arubin 12-10-2013 02:44 AM


rEFInd is not a bootloader
Though you can use it as I do with a stub-enabled kernel in the EFI partition in which case you do not need any other bootloader. The generic kernel in 14.1 is stub-enabled so all I had to do when I installed 14.1 was copy the kernel over and edit refind.conf (I'm not sure if even that edit was necessary).

jtsn 12-10-2013 05:25 AM


Originally Posted by arubin (Post 5078335)
Though you can use it as I do with a stub-enabled kernel in the EFI partition in which case you do not need any other bootloader. The generic kernel in 14.1 is stub-enabled so all I had to do when I installed 14.1 was copy the kernel over and edit refind.conf (I'm not sure if even that edit was necessary).

rEFInd also has various EFI file system drivers (Ext2, Ext4, Reiser, Btrfs) bundled, so it can read and execute your EFI-enabled Linux kernel (and initrd) directly from your Linux file systems (like /boot). It also can execute ELILO from other places than the ESP, which then - enabled by rEFInd's file system drivers - can read and boot a Linux kernel traditional ELF format from /boot. So you can make your setup more straightforward and compatible.

It's called Extensible Firmware Interface for a reason.

Long story short: rEFInd adds a lot of options and boot possibilities to your usually rudimentary EFI firmware and is recommended for EFI-based multi-boot setups.

All times are GMT -5. The time now is 09:27 PM.