Hangs at: veryfying DMI Pool Data but boots from DVD: maybe EFI or secure boot related?

Hi,
i have 3 harddisks, one has opensuse 13.1 (non-EFI) installed, the next has Windows 7 (EFI) installed, i just installed Tumbleweed (EFI) on the third disk.
When i put any of the first two hard disks on top in the bios boot order (that is what i needed to do before because one had an EFI bootloader and the other not) the installed OS boots as it should (or the boot loader).
But now, when i put the third hard disk (with tumbleweed installed) on top of the boot order, the pc hangs at:
Verifying DMI Pool Data…

I do not know if this is EFI related, but when i boot the installation DVD first (which boots in EFI mode) and then choose: boot from harddisk, the (EFI) bootloader on the third hard disk gets loaded instantly.
Is this maybe EFI related (i cannot directly select for each harddisk if it boots in EFI mode or not, i quess it is auto detected because it works for windows), could there be an error in the boot sector (or GPT) of the third harddisk? How can i repair it (i use grub2-efi).
Another thing i just remember, during the installation of tumbleweed there was a bullet point in the pre installation summary: secure boot activated, could this be related to this? Can i disable it somewhere?

Ok, i think i know what is the problem now , and i am also pretty sure that i have a solution but iam not experienced enough to do this without help.

The problem is the old hybrid efi implementation on my motherboard, it allows the selection of the boot mode for dvd/cd media only! For harddisks it auto selects the mode based on the size of the harddisk!
If it is over 2TB in size it chooses EFI, else it boots in BIOS mode.
Ok, my windows HD has 3TB and the tumbleweed HD has 2TB and is below the threshold and such never gets booted in EFI mode, hence resulting in the hang during the verifying of the DMI pool data.
This also explains why booting via the install DVD works, because i can force the EFI mode here.

So, the windows HD has an EFI Boot partition, like the new tumbleweed HD. My plan is to use the windows EFI partition to boot into the grub2-EFI bootloader on the tumbleweed partition. And in the end i want to have the Option to dual boot windows or tumbleweed.
Is this possible? What do i have to do, can i just copy the files from the tumbleweed HD boot partition over to the windows EFI partition?
How to do this?

Ok i tried it by myself, and it basically worked but it is a bit messy.
What i did the following:

  1. i booted into tumbleweed using the installation DVD (selecting boot from harddisk from the menu)
  2. using “sudo fdisk -l” i found out, that the windows efi partition is on /dev/sdd1
  3. i mounted the windows efi partition to a temporary directory: “mount /dev/sdd1 /boot2”
  4. in /boot2/EFI i found two directorys: Boot and Microsoft
  5. after some googleing i took the risk and deleted the “Boot” directory (in it was only a bootx64.efi file, from my unterstanding this points to the real OS loader in Microsoft)
  6. i copied the related direcotrys over from /boot/efi/EFI (which are: boot (lower case b !) and opensuse)
  7. then i unmounted /boot2 and remounted /dev/sdd1 to the host /boot/efi: “sudo mount /dev/sdd1 /boot/efi”
  8. i started YAST and choosed bootloader, to read everything in and the just hit OK which in my unterstanding rewrote everything in /boot/efi
  9. i put the windows partion back on top of the boot order in the bios
  10. now grub2 is loaded instead of the windows loader, as i wanted.

But there are some problems:
a: To finish all of this i have to change the default /boot/efi point from /dev/sdc1 (which is the EFI partition on the tumbleweed HD) to the windows EFI partition at /dev/sdd1 or i will get problems with kernel updates and such. Where can i do that, is there a file to edit or a program to run? Is there everything else to do?
b: i noticed that there are two windows boot entrys: there is one pointing to /dev/sdd1 (this one works) and another to /dev/sdc1 this one does not work, how can i remove it

Generally you should have only one efi boot partition. it should contain a directory for each installed OS. You can not chain between legacy and EFI mode OS’s they all must be the same boot method. Simply copying the files may not work since the files are custom made to point to the next stage of the boot. The install should have used the efi boot partition on the boot drive which I assume is the Windows drive. Since 13.1 is legacy boot I don’t see how you can chain to it without changing the boot order

/etc/fstab as usual

b: i noticed that there are two windows boot entrys: there is one pointing to /dev/sdd1 (this one works) and another to /dev/sdc1 this one does not work, how can i remove it

Remove \EFI\Windows directory on /dev/sdc1 and run “update-bootloder --refresh”.

Could you please show output of “efibootmgr -v” (in code tags); I read your description several times and I still cannot fully understand what happened.

What system do you have (manufacturer, model, BIOS version)?

sudo efibootmgr -v shows this:

BootCurrent: 0002
Timeout: 3 seconds
BootOrder: 0003,0000,0001,0002
Boot0000* EFI DVD/CDROM PcieRoot(0x0)/Pci(0x1f,0x2)/Sata(5,0,0)
Boot0001* OsLoader0000  PcieRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Ata(0,0,0)/HD(1,GPT,346d40d3-4bf9-40ea-957f-ebf222c137b3,0x800,0x4e000)/File(\EFI\BOOT\BOOTX64.EFI)
Boot0002* OsLoader0001  PcieRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Ata(0,1,0)/HD(1,GPT,4b172220-20b4-493b-947a-08b6775434be,0x800,0x32000)/File(\EFI\BOOT\BOOTX64.EFI)
Boot0003* opensuse-secureboot   HD(1,GPT,4b172220-20b4-493b-947a-08b6775434be,0x800,0x32000)/File(\EFI\opensuse\shim.efi)

btw: here is the output of fdisk -l:

Festplatte /dev/sda: 1,8 TiB, 2000398934016 Bytes, 3907029168 Sektoren
Einheiten: Sektoren von 1 * 512 = 512 Bytes
Sektorgröße (logisch/physikalisch): 512 Bytes / 512 Bytes
E/A-Größe (minimal/optimal): 512 Bytes / 512 Bytes
Festplattenbezeichnungstyp: dos
Festplattenbezeichner: 0x134ee843

Gerät      Boot   Anfang       Ende   Sektoren Größe Kn Typ
/dev/sda1           2048   50348031   50345984   24G 82 Linux Swap / Solaris
/dev/sda2       50348032 3907028991 3856680960  1,8T 83 Linux


Festplatte /dev/sdb: 1,8 TiB, 2000398934016 Bytes, 3907029168 Sektoren
Einheiten: Sektoren von 1 * 512 = 512 Bytes
Sektorgröße (logisch/physikalisch): 512 Bytes / 4096 Bytes
E/A-Größe (minimal/optimal): 4096 Bytes / 4096 Bytes


Festplatte /dev/sdc: 1,8 TiB, 2000398934016 Bytes, 3907029168 Sektoren
Einheiten: Sektoren von 1 * 512 = 512 Bytes
Sektorgröße (logisch/physikalisch): 512 Bytes / 4096 Bytes
E/A-Größe (minimal/optimal): 4096 Bytes / 4096 Bytes
Festplattenbezeichnungstyp: gpt
Festplattenbezeichner: F05C296B-3DFF-4943-8BF2-59A8DC005DAA

Gerät         Anfang       Ende   Sektoren Größe Typ
/dev/sdc1       2048     321535     319488  156M EFI-System
/dev/sdc2     321536  210034687  209713152  100G Linux-Dateisystem
/dev/sdc3  210034688 3907028991 3696994304  1,7T Linux-Dateisystem


Festplatte /dev/sdd: 2,7 TiB, 3000592982016 Bytes, 5860533168 Sektoren
Einheiten: Sektoren von 1 * 512 = 512 Bytes
Sektorgröße (logisch/physikalisch): 512 Bytes / 4096 Bytes
E/A-Größe (minimal/optimal): 4096 Bytes / 4096 Bytes
Festplattenbezeichnungstyp: gpt
Festplattenbezeichner: 77283710-8B58-49E8-8D33-0EC3A954F7E9

Gerät          Anfang       Ende   Sektoren Größe Typ
/dev/sdd1        2048     206847     204800  100M EFI-System
/dev/sdd2      206848     468991     262144  128M Microsoft reserviert
/dev/sdd3      468992 2457602047 2457133056  1,1T Microsoft Basisdaten
/dev/sdd4  2457602048 5860532223 3402930176  1,6T Microsoft Basisdaten

ignore sdb this is a encrypted HD and is not relevant, also sda which has opensuse 13.1 installed and has no EFI partition but i do not want to include this anyway.

I also edited the etc/fstab, the EFI partition of the tumbleweed HD was listed via its UUID, so i commented that out and swtiched the UUID to the one of /dev/sdc1 (which i found with: blkid).

About the two Windows entries: in /dev/sdd1 was never a Windows directory because the tumbleweed installation created a new EFI partition ignoring Windows
/dev/sdc1 is the Windows EFI Partition which i want to use as the only EFI partition of the system, there is a Windows directory and a opensuse directory now also.

I will now reboot my system and check if the swtich of the EFI partitions in /etc/fstab worked, then i will run the bootloader refresh command and see if this maybe allready solves the problem.

reboot went fine (ok editing /etc/fstab on a running system is not a good idea, i indeed had some errors during the shutdown), i will now do the bootloader refresh.

My mainboard is a Gigabyte G1.sniper it is old and has a nasty EFI implementation also well described here: http://www.rodsbooks.com/gb-hybrid-efi/

May be I misunderstood then - where do you see two entries for Windows - in EFI boot menu or in GRUB boot menu? Output of efibootmgr indeed shows two lines that firmware may in principle present as “Windows”.

Also according to efibootmgr your firmware is already configured to boot openSUSE by default (although right now it was booted not from this item). On reboot you should see opensuse-secureboot in EFI boot menu.

The second windows Boot entry was in the grub boot menu, but now after the refresh, the wrong one is gone, thank you.
About the EFI boot menu: i am not sure what you mean, my mainboard does not provide such thing.

And the tumbleweed entry in the grub menu was there all the time after i manually merged the EFI partitions as described in my third Post, and it was also working all the time.
The remaining problems where the second windows entry in the grub menu and the change in /etc/fstab which are solved now i think. :slight_smile:
As long as there is not anything i missed?