[opensuse] UEFI dual boot
Hi, seems I'm still very new to UEFI and currenty way of bootloading. I've got a machine with UEFI (but w/o secure boot) which currently only has 13.1 installed. Now I've added 13.2rc1 to another partition. (During installation the bootloader refused to do anything with EFI because of an architecture conflict for x86-64; confusing but not that relevant here.) So I've got 13.1 and 13.2 both installed now but normal boot up shows only the 13.1 boot entry still. Now I've checked grub2 config on 13.1 which does not contain 13.2 (even after a grub2-mkconfig run the os prober didn't find 13.2). Then I checked the grub2 config on the 13.2 partition and in that I see two boot entries (one for 13.2 and one for 13.1). So all I would need to do is make UEFI load grub2 from the 13.2 partition I guess but I fail to understand how to do that. Is that defined via efibootmgr in that strange string? Boot0000* openSUSE HD(1,800,4e000,7e36557b-6396-4f70-9287-7d7b8e00c927)File(\EFI\opensuse\grubx64.efi) or is grubx64.efi just loading some magically marked partition like the boot flag in MBR? (I have GPT here obviously.) How to do that? Any input? Thanks, Wolfgang -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
Le 12/10/2014 09:19, Wolfgang Rosenauer a écrit :
Hi,
seems I'm still very new to UEFI and currenty way of bootloading.
So I've got 13.1 and 13.2 both installed now but normal boot up shows only the 13.1 boot entry still.
uefi bios, no more grub, is responsponsible for choosing the booting system. You probably have 13.2 in the boot bios menu (key vary from system). that said, usually, grub *can* boot the other system https://en.opensuse.org/openSUSE:UEFI see also efibootmgr (8) - manipulate the EFI Boot Manager jdd -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
Am 12.10.2014 um 10:00 schrieb jdd:
Le 12/10/2014 09:19, Wolfgang Rosenauer a écrit :
Hi,
seems I'm still very new to UEFI and currenty way of bootloading.
So I've got 13.1 and 13.2 both installed now but normal boot up shows only the 13.1 boot entry still.
uefi bios, no more grub, is responsponsible for choosing the booting system. You probably have 13.2 in the boot bios menu (key vary from system).
I guess I _could_ add the other install to EFI but it's not my preferred solution and actually I still don't understand how I'd do this (if it's really possible or intentional). As pasted before Boot0000* openSUSE HD(1,800,4e000,7e36557b-6396-4f70-9287-7d7b8e00c927)File(\EFI\opensuse\grubx64.efi) This only tells EFI to use grubx64.efi to take over, right? But where is defined what grubx64.efi actually does? That is the main open question for me.
that said, usually, grub *can* boot the other system
read this already but it's not really giving answers for detailed questions. Just some rough overview which I already understand. Thanks, Wolfgang -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
Le 12/10/2014 12:18, Wolfgang Rosenauer a écrit :
I guess I _could_ add the other install to EFI but it's not my preferred solution and actually I still don't understand how I'd do this (if it's really possible or intentional).
with efibootmgr
As pasted before Boot0000* openSUSE HD(1,800,4e000,7e36557b-6396-4f70-9287-7d7b8e00c927)File(\EFI\opensuse\grubx64.efi) This only tells EFI to use grubx64.efi to take over, right? But where is defined what grubx64.efi actually does? That is the main open question for me.
it's tells *one* grub install, the one on the defined partition. If you have an other the two of them are shown in the boot menu I don't have an efi boot at hand to show you an example. for example, when I first installed openSUSE on my laptop, windows was still booting, but opensuse showed in the bios and I could add it in the boot manager. You must have one and only one efi partition to boot, but as many boot file in it as memory can fit the problem is that there are as many implementations of the efi system as computers. Some can only use special boot entry to boot. I already installed many efi systems, but on one of them I had to install ubuntu (asked by the owner) with legacy boot, not efi. jdd -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
Hi, answer to myself. I fixed it but still don't get the full picture. As grub2 on the 13.2 installation somehow can cope with my 13.1 partition, I had to make sure that I install the EFI stuff from within 13.2. Now everything works. Installation though was a pain since e.g. /boot/efi mountpoint does not get created on 13.2 if grub2-efi is chosen in the running system. So I had to add the mountpoint myself and only then yast2 was able to configure grub2 correctly :-( Wolfgang -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
On Sun 12 Oct 2014 12:18:28 PM CDT, Wolfgang Rosenauer wrote:
Am 12.10.2014 um 10:00 schrieb jdd:
Le 12/10/2014 09:19, Wolfgang Rosenauer a écrit :
Hi,
seems I'm still very new to UEFI and currenty way of bootloading.
So I've got 13.1 and 13.2 both installed now but normal boot up shows only the 13.1 boot entry still.
uefi bios, no more grub, is responsponsible for choosing the booting system. You probably have 13.2 in the boot bios menu (key vary from system).
I guess I _could_ add the other install to EFI but it's not my preferred solution and actually I still don't understand how I'd do this (if it's really possible or intentional). As pasted before Boot0000* openSUSE HD(1,800,4e000,7e36557b-6396-4f70-9287-7d7b8e00c927)File(\EFI\opensuse\grubx64.efi) This only tells EFI to use grubx64.efi to take over, right? But where is defined what grubx64.efi actually does? That is the main open question for me.
that said, usually, grub *can* boot the other system
read this already but it's not really giving answers for detailed questions. Just some rough overview which I already understand.
Thanks, Wolfgang
Hi If your going to dual boot openSUSE, you will probably need to rename the first install, don't think openSUSE will handle it... Then use efibootmgr to add an efivar entry. You can just copy the files over into a new directory and then use the efibootmgr to create a new entry. eg mkdir -p /boot/efi/EFI/SuSE cp -ar /boot/efi/EFI/opensuse/grubx64.efi /boot/efi/EFI/SuSE/grubx64.efi efibootmgr -c -L "openSUSE 13.1" -l "\\EFI\\SuSE\\grubx64.efi" efibootmgr -v You can change the boot order, what to boot next, delete entries, re-add them. The kicker is how new the efi is. My HP ProBook 4430s (non secure boot) is a bit flakey, yet the HP ProBook 4440s's I have are much better, plus do secure boot. The efi file just calls the kernel (just like grub), I guess in a way it's the mbr in the bios with additional features... -- Cheers Malcolm °¿° LFCS, SUSE Knowledge Partner (Linux Counter #276890) openSUSE 13.1 (Bottle) (x86_64) GNOME 3.10.1 Kernel 3.11.10-21-desktop up 23:39, 3 users, load average: 0.38, 0.35, 0.31 CPU AMD Athlon(tm) II X4 635@2.9GHz | GPU Nvidia GeForce 8800 GT -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
On Sun, 12 Oct 2014 09:19:12 +0200
Wolfgang Rosenauer
So I've got 13.1 and 13.2 both installed now but normal boot up shows only the 13.1 boot entry still. Now I've checked grub2 config on 13.1 which does not contain 13.2 (even after a grub2-mkconfig run the os prober didn't find 13.2).
Your 13.2 system is probably using "btrfs", and that seems to confuse os-prober. In any case, here is how I have been handling this kind of situation. Method 1: Install the second system also as UEFI. But give it a different name (something other than "opensuse"). You do this with "Distributor" option. On my current (factory) desktop, the file "/etc/default/grub" contains the line: GRUB_DISTRIBUTOR=factory and you can actually set that in Yast bootloader. The result is that my firmware supposedly knows of both "opensuse" and "factory" as bootable systems and I can use the firmware boot menu by hitting F12 during reboot. That last bit doesn't actually work because of a flawed UEFI implementation for this hardware (a Dell inspiron 660). Method 2: Install the second system to use grub2 rather than grub2-efi. When I did this, I set the installer to boot from "/boot". That would not have actually worked with GPT, but it did what I wanted. Namely grub2 was there, and grub.cfg was generated. Next, I added an entry to my UEFI grub configuration, so as to invoke the newly installed system with a "configfile" command. Here's what I have added to /etc/grub.d/40_custom ----- begin here --- menuentry "configfile for linux on /dev/sdb2" { set bootdir='hd2,gpt2' search --fs-uuid --set=bootdir 8100ac3-afd8-4dff-ad41-149f33dc5b79 configfile (${bootdir})/boot/grub2/grub.cfg } ----- end here --- (There are 5 lines there -- the email client wanted to mess that up with linewrap. I hope it shows correctly). Note that the second of those lines (the "set bootdir") might not work with multiple drives. The way the firmware counts drives depends on whether there is a USB plugged in. The third line needs to be adjusted to use the UUID of the partition containing "/boot". Note, also, that the above assumes secure-boot is disabled. There's an extra step needed if secure-boot is enabled. I'm currently using both method 1 and method 2 in combination. That way, I can use the grub2 menu instead of having to go back to the firmware menu. -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
participants (4)
-
jdd
-
Malcolm
-
Neil Rickert
-
Wolfgang Rosenauer