Slackware 13.37 with elilo
I'm trying to setup slackware 13.37 on a laptop with windows 7 installed on it. I want to keep the windows 7 (just in case). I've tried following the guide on efi at docs.slackware.com but I'm having no success.
I do know that linux will run on this laptop, ubuntu 12.10 does install and run, and so does fedora 17. But Slackware is my linux.
When I boot up the laptop, I must hit escape key and let the bios act as a lilo boot selector. I do not have a legacy bios mode option in the bios.
When I hit escape, for a usb key for example, it will list :
So to boot my usb key with systemrescuecd on it, I have to select 'centon' and it works. If I were to select "UEFI: centon" it would not boot. I hope that helps clarify the state of this bios w.r.t. legacy and uefi.
My slackware 13.37 is fully residing on /dev/sda6 from a restore using fsarchiver from the systemrescuecd sitting on my centon thumbdrive. I have edited my fstab and mkinitrd.conf accordingly. I have successfuly chrooted into slackware and rebuilt my initrd.
I've been using elilo-3.14-all.tar.gz
/dev/sda1 /boot/efi vfat defaults 0 0
/dev/sda5 swap swap defaults 0 0
/dev/sda6 / ext4 defaults 1 1
contents of /boot/efi:
contents of /boot/efi/EFI:
Boot Microsoft slackware
contents of /boot/efi/EFI/Boot:
contents of /boot/efi (from "tree -fain . | grep "slackware")
./EFI/slackware/elilo.efi (per elilo's instructions, this is elilo-3.14-ia32.efi file renamed to elilo.efi)
contents of elilo.conf:
append="load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 SLACK_KERNEL=3.4.15"
contents of /etc/mkinitrd.conf
# separate multiples with a colon : mark
sda3 windows 7
sda4 windows data drive
sda8 fedora broken no longer boots after running fsarchiver due to uuid changes
sda9 ntfs recovery
At this point in time, I have no 'slackware' option in the BIOS' operating system list when I hit the escape key. It appears that it does not see my slackware efi setup.
I did try and compile elilo, but I get this message:
make -C fs
make: Entering directory `/home/test/downloads/elilo/elilo/fs'
/usr/bin/gcc -I. -I/home/test/downloads/elilo/elilo/fs/.. -I/usr/include/efi -I/usr/include/efi/ia32 -I/usr/include/efi/protocol -I/home/test/downloads/elilo/elilo/fs/../efi110 -O2 -fno-stack-protector -fno-strict-aliasing -fpic -fshort-wchar -Wall -DENABLE_MACHINE_SPECIFIC_NETCONFIG -DCONFIG_LOCALFS -DCONFIG_NETFS -DCONFIG_CHOOSER_SIMPLE -DCONFIG_CHOOSER_TEXTMENU -DCONFIG_ia32 -c localfs.c -o localfs.o
localfs.c:30:17: fatal error: efi.h: No such file or directory
make: *** [localfs.o] Error 1
make: Leaving directory `/home/test/downloads/elilo/elilo/fs'
make: *** [fs] Error 2
Does anyone have any ideas what else I need to do? Any help is greatly appreciated.
First off you could follow the advice at
for booting from a USB.
So to start off with:
Your usb must have a FAT 32 partition of type EF00
Create a folder /EFI/BOOT/ and put elilo (in there as BOOTX64.EFI)
Put in the kernel and initrd.img from /isolinux
I wonder though if you wouldn't be better off with slackware 14.0
Also are you sure you should be using elilo-3.14-ia32.efi ?
I used elilo-3.14-x86_64.efi. I tried elilo-3.14-ia64.efi but it would not boot.
thanks for the reply.
I tried to follow that guide, but that guide is very confusing to me. He talks about two methods of installation at a time, and bounces back and forth for me to read. I'm not knocking him/her I appreciate their efforts, but it simply doesnt work for me.
That said I was using the 32bit version as the Slackware 13.37 that I want to use is 32 bit version.
I'm not ready for Slackware 14 yet (I'm still building packages) so I can always upgrade later. And per the release notes, Slackware has been efi compatible for a few releases now, so that was my logic.
Also, maybe I'm wrong here, but your advice would mean having to boot up your computer with a thumb drive all the time? Is that what you do?
I have two hard drives with windows7 and the efi boot partition on sdb. I have linux on sda and was able to install GRUB2 to sda and boot from there.
Regarding creating the USB boot - there is so much that can go wrong that I think it is best to keep it simple at first. Use the huge kernel and initrd from the installation CD and first time round don't even include root=/dev/sda6 in elilo.conf to prove that the thing will boot. I am not convinced that you should be using the 32 bit elilo. You can always experiment and see what works for you.
At this stage you should do thing as in the document. Use /EFI/BOOT/BOOTX64.EFI on the usb stick and you should at least see an option for booting off the usb stick. ( I use F8 to get the boot list)
If your PC is not even seeing your efi it suggests to me either that it does not like the directory structure in your usb stick or you have the formatting of the stick wrong. An alternative to try would ( after very careful backing up ) put the kernel, initrd and elilo in the folder where your current windows boot efi is. (at you own risk)
I followed the instructions in that how-to exactly and the USB stick worked fine, however 2 days of trying to get it to work from the hard drive failed every time. I went so far as to implement my "known good" setup from the USB stick installer to the hard drive just as a proof of concept and my machine would never see it as UEFI. It didn't matter if I used gdisk and gpt fat partitions of type fd00. Just didn't work. I eventually realized my machine has a legacy bios option buried in the options and I went from there. I actually have lilo working on gpt disks? I don't understand it, but it boots perfectly so I'm sticking with it until this all becomes a little smoother. I did use the 64 bit version, I'm not sure it should really matter so long as it's appropriate for the hardware since it is independent and prior to the OS. Isn't ia32 for itanium though? I believe that was the original intention for elilo, was to boot itanium machines.
I am a little worried about this whole issue and hope the gurus are working on it. As far as I can see it the routine slackware installation will not even complete on the latest motherboards; LILO will not run. Much as I love Slackware and will continue to use it I am concerned that it is too difficult for new users to get it booting now and it may become dead in the water.
Well, I just reinstalled fedora 17 to see if I could get that to boot up Slackware and I simply cannot figure out what Fedora is doing.
They've got some hybrid grub going on, and their documentation site clearly states it's out of date for version 17, and I'm giving up on that option.
I tried opensuse, it installed but wouldn't boot.
So now I just made the USB boot thumbdrive per the instructions.
I used gparted on my slack 13.37 , formatted the drive as fat32, then had gparted set the boot flag on the thumbdrive. Voila! I can boot the thumbdrive, and I'm running setup right now on 64bit Slackware.
I really don't want to use 64bit, this is the only hardware I have that is 64bit, so I guess now, if this does succeed, I'll have a lot of program building to do :) But that's the least of my worries, that's just time to edit my buildsystem for the arch.
My question at this moment, is where to place the copies of the thumbdrive to on my system? The author of the doc does not say where to put them. I'm guessing I have to put the efi files for Slackware somewhere on the same fat32 partition that windows 7 and fedora had installed files too.
I'll update this as I progress.
Wish me luck
Ok I got this too install correctly with Slack 64 and uefi.
I renamed the file to bootx64.efi
I put the bootx64.efi, bzImage, elilo.conf (edited to reflect my sda6 partition of slack), and initrd.img (all from the usb key) on the fat32 partition that both windows and fedora used to install their efi files.
My bios did not "automagically" see my files I placed on the sda1/fat32 partition for my slackware.
I know bios' are all different, I just wanted to detail what I did here.
So I went into my bios, went to boot,
-then "Add new boot option:
-then "Add boot option" , I hit enter and typed slackware. I guessed that it was asking me for a name, I lucked out. The tiny help field on top right is very slim in details.
-then "Select Filesystem" . when I hit enter on that, a field comes up prefilled, beginning with characters PCI(1F|2)...... it wouldn't allow me to edit or delete anything, so I guess that this was my internal hard drive. This laptop does not have an internal cd/dvd and only has one drive. So since I couldnt changed anything I assumed it knew what it was doing. If I had mulitple drives, I can see this would be a nightmare to know which is the drive. Since I can't do anything on this option, I went to my last option.
- the "Path for boot option" I typed in "\EFI\Boot\bootx64.efi" . Of note, in the top right, the help says to use path in the following format: fs0:\path\filename.efi
However if I actually use the fs0: in the path, it will not work. So my bios entry is as above.
I did NOT have to put any files at all into slackware's "/" or "/etc" at all whatsoever. I only have my efi files on my /dev/sda1 partition, and that isn't even mounted at all at boot of my slackware. So again, /dev/sda1 is not referenced in my /etc/fstab.
Hope this helps.
It could be useful, just because you use the 64 elilo, I don't think you have to run a 64 but os. Just the CPU has to support 64.
My understanding is that "\EFI\Boot\bootx64.efi" is the default boot path anyway. Where is the Windows efi? Are you still able to boot windows?
I think that damgar is probably right. You can use the 64 bit elilo to boot 32 bit Slackware. Anyway multilib using Alien's files is relatively easy to setup.
My original post has it's location, I didn't change it all. Yes I can still boot the windows 7.
My bios let's me set Windows 7 as default boot option, or slackware now as the default.
In the event I want to boot the laptop, and not use default, as soon as I press power key, I see the bios boot splash, I hit the escape key, I get presented with a list of boot options, windows, slackware, thumb drive, etc and I simply arrow key to the choice I want and hit enter. Similar to regular lilo, imo.
I may do a restfs from fsarchiver of my 32bit slack 13.37 where I had fedora installed, and see if I can get that to work, now that I understand the bios and elilo now.
ok, no luck with 32 bit slackware 13.37 using a known good image that I've use for a long time.
I tried all the *.efi files (32bit/64bit, etc) and no luck.
Guess I'm on 64bit 14.0 for now on. :)
Unified Extensible Firmware Interface
thanks for that post onebuck.
I certainly was confused as my laptop's driver page shows win 7 32bit drivers or 64bit and the new slackwiki for the uefi booting not mentioning it (or arch or suse, :)
|All times are GMT -5. The time now is 04:18 AM.|