LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   slack/windows dual boot with efi/gpt (https://www.linuxquestions.org/questions/slackware-14/slack-windows-dual-boot-with-efi-gpt-4175442332/)

BCarey 12-20-2012 12:21 PM

slack/windows dual boot with efi/gpt
 
I just got my first laptop with efi/gpt and have a question about making it dual-boot with the pre-installed windows 8. I enabled the legacy mode on the laptop, and the wiki at http://docs.slackware.com/howtos:sla..._uefi_hardware, suggests that I can proceed with the install as usual. I used windows native tools to shrink the windows partition, cgdisk to create the partitions I need for slackware, and went ahead with the install as usual up to the step of installing lilo.

So now I am not sure if I should install lilo to the MBR (which is what I usually do) or to the linux root partition. Or do I still need to use elilo. Based on the wiki it sounds like I should install to MBR, but since it does not specifically reference dual-boot, I wonder if this will kill the windows boot.

Any advice would be appreciated.

Thanks,
Brian

folkenfanel 12-20-2012 04:23 PM

"There is no spoon. There is no MBR either"
 
Hello.

There is no MBR. (unless you repartitioned the disk with a MBR).

To boot with EFI from a GPT disk, you need to have (besides your normal data partitions), an EFI system partition with the EFI bootloader. You might use ELILO if you use 64-bit Slackware (I tried to boot 32-bit Slackware with ELILO and failed; besides ELILO can't boot Windows). I advice you to use GRUB2, which is capable to boot any OS.

The Windows boot won't be killed, but it will be zombified and return if you kill it. (Windows 8 seems to need to see "Windows Boot Manager" as an entry in your EFI). So I advice you to keep that ugly thing, but set it to last boot priority, which is what I did.

BCarey 12-21-2012 08:10 AM

I understand that there is no MBR per se, but the how-to says that if you enable the legacy support/BIOS emulation (which I did) that you can proceed as normal. What does that mean, then?

Brian

AlleyTrotter 12-21-2012 09:11 AM

Quote from RodsBooks
"To protect GPT disks against errant older disk tools, GPT keeps an MBR partition table on the first sector of the disk"
On my system I installed lilo to the mbr as always. When and if I make a mistake in my elilo.conf The boot justs fails thru to a lilo boot.
It seems that is the way it is supposed to work?
Please be aware that I do not dual boot
John

BCarey 12-21-2012 10:05 AM

Quote:

Originally Posted by AlleyTrotter (Post 4854378)
Quote from RodsBooks
"To protect GPT disks against errant older disk tools, GPT keeps an MBR partition table on the first sector of the disk"
On my system I installed lilo to the mbr as always. When and if I make a mistake in my elilo.conf The boot justs fails thru to a lilo boot.
It seems that is the way it is supposed to work?
Please be aware that I do not dual boot
John

So you install lilo during the setup and then install elilo? What purpose does elilo serve in this situation?

Brian

BCarey 12-21-2012 10:07 AM

I've never used grub. Is there a sense (reading the tea leaves) that Slackware might be moving toward grub2 in the future if efi/gpt becomes ubiquitous?

Brian

AlleyTrotter 12-21-2012 01:35 PM

Quote:

Originally Posted by BCarey (Post 4854412)
So you install lilo during the setup and then install elilo? What purpose does elilo serve in this situation?

Brian

elilo will boot using the UEFI firmware
if there is an error in the UEFI setup then:
lilo will boot using the legacy mode of the firmware.
without lilo installed the system will just hang at an error message.
(voice of experience getting UEFI set up on my new system).
Not sure how much of a difference there is between BIOS/EFI/UEFI/WINDOWSBOOT apparently UEFI has superseded the old MBR bios boot.
Larger disk / files more partitions etc.
Personal taste: having tried several boot loaders elilo is much simpler than efiShell, grub, refind, or kernel-stub methods. I hope Slackware sticks with the new (e)lilo myself.
John

BCarey 12-22-2012 02:33 PM

This is by far the most frustrating experience I've had with linux in many years, and is raising existential questions for me.

I have activated the "legacy mode" of the laptop, booted from the slack dvd, installed slackware and lilo. I can boot the huge kernel from the dvd and from lilo (although sometimes it hangs at one of the udevadm commands, and seems to throw udev-related errors). The generic kernel, on the other hand, does not boot, but throws many errors that fly by quickly and hangs often at a udevadm command.

I have installed elilo, and again can use it to boot the huge kernel but not the generic kernel. Also, the huge kernel does not boot consistently but sometimes hangs at one of the udevadm commands.

Booting into my system from the slack dvd with the huge kernel works sometimes but not always.

So it works, kind of, sometimes, but not consistently.

BTW, this is a brand new computer. I guess it could have hardware problems, and am running memtest right now.

Brian

AlleyTrotter 12-23-2012 12:44 PM

I feel you're frustration
I hammered on my keyboard for about a week before success
Anyone who thinks UEFI is not a power play by Microsoft and Apple to get rid of Linux should think again.
Installing slackware from 15 floppies was much easier than installing it under UEFI.
If you can't get a consistent boot from the huge kernel you may have other problems.

When in your UEFI setup mode under the boot screen is there an option for UEFIShell?
If so try that and when you get a prompt type
help bcfg
This will describe a method from the shell to create a slot in the nvram for your linux boot.
If like my system there was no uefi shell installed you can download and install a uefi shell from
http://tianocore.git.sourceforge.net
Install and use that no need to build as it runs before the OS
or
You could download and install efibootmgr to your usb boot stick. This would also allow you to add a slot to the nvram for linux
https://linux.dell.com/efibootmgr/

All the above along with a stub-kernel will work on my motherboard which is a:
AsRock z77 extreme4 with UEFI firmware version 2.7
My initial breakthrough was with a 3.6.6 stub kernel using the huge config and setting all EFI configs to yes and setting the CMDLINE_CONFIG to root=/dev/sda ro then copying it to my efi partition named as Shellx64.efi and selecting boot to shell in the UEFI boot setup screen. After that the knowledge just seemed to fall into place.

John
Sorry for being so windy.
Just reread your post and see you are sometimes getting UEFI to boot. So maybe my longwindedness is of no help.

BCarey 12-23-2012 02:44 PM

I really appreciate your help, John. Without your encouragement the laptop would have been thrown out the window by now.

For whatever reason the huge kernel seems to be booting with some consistency now. I will start playing with some newer kernels and configurations now.

One irritating thing is that the computer seems to ignore the boot order that I set up and insists on booting into windows unless I go into setup each time I boot and manually choose to boot from either the elilo.efi or from the internal hard drive. If it were my laptop I wouldn't care so much, but since it is for someone else it becomes one of those things that suggests to the end user that linux is more difficult, if you know what I mean.

Anyway, I'll keep going and report back here if I manage to make it work better.

Have you ever gotten it to work with a generic kernel, or a newer kernel configured basically as the generic kernel?

Brian

AlleyTrotter 12-23-2012 05:18 PM

Quote:

Originally Posted by BCarey (Post 4855659)
Anyway, I'll keep going and report back here if I manage to make it work better.
Have you ever gotten it to work with a generic kernel, or a newer kernel configured basically as the generic kernel?
Brian

Yes. I used the script slackware provides to make the initrd and put that and the generic kernel into the efi partition added an entry to elilo.conf and it worked fine.
Code:

image=vmlinuz-generic-3.2.29
  label=generic
  initrd=initrd.gz
  read-only
  root=/dev/sda2

My own system is using a 3.7.1 kernel built using a modified config-generic-3.6-rc4.x64 from testing. I usually build in the necessary file systems for booting (ext4 in my case) and don't bother using an initrd.
John

arubin 12-24-2012 09:35 AM

It might be worth looking at rEFInd and replacing the default bootx64.efi with it. It finds other boot efis automatically and puts them in a menu.

You might also look at compiling a generic 3.3 kernel with Pat's config in testing but with enabling the efi-stub. This will enable you to boot directly from a kernel placed in the rEFInd efi folder.

Alan

urka58 12-25-2012 03:45 PM

Quote:

Originally Posted by BCarey (Post 4855659)
One irritating thing is that the computer seems to ignore the boot order that I set up and insists on booting into windows unless I go into setup each time I boot and manually choose to boot from either the elilo.efi or from the internal hard drive. If it were my laptop I wouldn't care so much, but since it is for someone else it becomes one of those things that suggests to the end user that linux is more difficult, if you know what I mean

When you launch efibootmgr what does it return? I mean is the boot order matching what you set?
Ciao

PS did you disable Secure Boot?

BCarey 12-26-2012 09:07 AM

With the holidays I haven't been able to mess with it over the last couple of days. I'll get back to you as soon as I can, because I appreciate the help.

Brian

BCarey 12-31-2012 11:01 AM

I've made some progress, but have some new issues. Here is an update.

I have finally manged to keep the Windows efi booter from taking over at the beginning. I moved the /boot/efi/EFI/Microsoft directory to a different location. Now the computer follows the BIOS order I set up, booting the DVD if present and otherwise launching lilo.

I have rebuilt a kernel (3.4.24) based on Pat's generic config and adding the EFI stub and now I can boot without a bunch of errors.

I haven't yet gotten elilo to work, but haven't really tried yet with the new kernel.

I'm building 3.7.1 to try with that.

My big problem right now is with resuming from hibernation. It goes into the resume mode where you see it loading the image pages, then the screen starts to get brighter and brighter and then hangs, and the X session never comes back. Suspend to RAM no longer works either. I'm going to finish building the 3.7.1 kernel before trying to solve this problem.

I don't know what you mean "launch efibootmgr".

I have been playing with refind but haven't gotten it to work yet.

Brian


All times are GMT -5. The time now is 07:58 PM.