Dual boot, one SSD for each OS - one or two efi/boot partitions?

After much grief with oS and W10 installed in the same SSD, I’ll put them on separate disks, in an attempt to avoid loosing the grub2 menu as happened to me in two boxes:

https://forums.opensuse.org/showthread.php/537758-Lost-grub-after-MB-change-booting-directly-to-windows-10-after-post

A new 120GB SSD as /sda will boot Windows 10, cloned with Macrium Reflect from the problematic SSD.
It has:


Disk /dev/**sda**: 111.8 GiB, 120040980480 bytes, 234455040 sectors <== Windows 10
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: **gpt**
Disk identifier: BF9BACD4-999C-4667-816B-F40A7CEFEF2B

Device         Start       End   Sectors   Size Type
/dev/sda1       2048    923647    921600   450M Windows recovery environment
/dev/sda2     923648   1126399    202752    99M EFI System
/dev/sda3    1126400   1159167     32768    16M Microsoft reserved
/dev/sda4    1159168 233365712 232206545 110.7G Microsoft basic data
/dev/sda5  233369600 234452991   1083392   529M Windows recovery environment


Disk /dev/**sdb**: 232.9 GiB, 250059350016 bytes, 488397168 sectors <== openSUSE 15.1
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: **gpt**
Disk identifier: CC97AE27-9626-4C5D-9F2D-6DB714DD292B

Device         Start       End   Sectors   Size Type
/dev/sdb1       2048   1026047   1024000   500M Microsoft basic data
/dev/sdb2    1026048  84912127  83886080    40G Linux filesystem
/dev/sdb3   84912128 471619583 386707456 184.4G Linux filesystem
/dev/sdb4  471619584 488396799  16777216     8G Linux swap


Disk /dev/sdc: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors <== windows D: and oS data
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: **dos** <== is this a problem?
Disk identifier: 0x000d1781

Device     Boot     Start        End    Sectors   Size Id Type
/dev/sdc1            2048  609118207  609116160 290.5G  7 HPFS/NTFS/exFAT
/dev/sdc2       609120256 1953523711 1344403456 641.1G 83 Linux

And is booting directly to windows. UEFI is set to UEFI boot only (CSM is off) and secureboot is enabled.

I’ve manually repartitioned the older /sdb 250GB SSD as shown above, prior to installing oS. This is the same schema I have in another box that only boot Leap 15.1, so I copied it:

Disco /dev/sda: 232,9 GiB, 250059350016 bytes, 488397168 setores <== disk from another box, shown just as an example
Modelo de disco: Samsung SSD 840 
Unidades: setor de 1 * 512 = 512 bytes
Tamanho de setor (lógico/físico): 512 bytes / 512 bytes
Tamanho E/S (mínimo/ótimo): 512 bytes / 512 bytes
Tipo de rótulo do disco: gpt
Identificador do disco: 3591A29C-4A9F-49A1-AD1B-A3E2432383D4

Dispositivo    Início       Fim   Setores Tamanho Tipo
/dev/sda1        2048   1026047   1024000    500M** Sistema EFI**
/dev/sda2     1026048  42969087  41943040     20G Linux sistema de arquivos
/dev/sda3    42969088 484202495 441233408  210,4G Linux sistema de arquivos
/dev/sda4   484202496 488397134   4194639      2G Linux swap

My questions are:

  1. should I keep the 500M Microsoft basic data partition in /sdb1, which I presume oS installer would set as EFI System (/efi/boot)? Or It’s better to have only one EFI partition - in this case on /sda?
  2. where should I install the bootloader?

Thanks,

Bruno

Contents of /dev/sda2 cloned to the new SSD:

# tree /dev/sda2
└── EFI
    ├── Boot
    │   └── bootx64.efi
    ├── Microsoft
    │   ├── Boot
    │   │   ├── BCD
    │   │   ├── BCD.LOG
    │   │   ├── BCD.LOG1
    │   │   ├── BCD.LOG2
    │   │   ├── bg-BG
    │   │   │   ├── bootmgfw.efi.mui
    │   │   │   └── bootmgr.efi.mui
    │   │   ├── bootmgfw.efi
    │   │   ├── bootmgr.efi
    │   │   ├── BOOTSTAT.DAT
    │   │   ├── boot.stl
    │   │   ├── cs-CZ
    │   │   │   ├── bootmgfw.efi.mui
    │   │   │   ├── bootmgr.efi.mui
    │   │   │   └── memtest.efi.mui
    │   │   ├── da-DK
    │   │   │   ├── bootmgfw.efi.mui
    │   │   │   ├── bootmgr.efi.mui
    │   │   │   └── memtest.efi.mui
    │   │   ├── de-DE
    │   │   │   ├── bootmgfw.efi.mui
    │   │   │   ├── bootmgr.efi.mui
    │   │   │   └── memtest.efi.mui
    │   │   ├── el-GR
    │   │   │   ├── bootmgfw.efi.mui
    │   │   │   ├── bootmgr.efi.mui
    │   │   │   └── memtest.efi.mui
    │   │   ├── en-GB
    │   │   │   ├── bootmgfw.efi.mui
    │   │   │   └── bootmgr.efi.mui
    │   │   ├── en-US
    │   │   │   ├── bootmgfw.efi.mui
    │   │   │   ├── bootmgr.efi.mui
    │   │   │   └── memtest.efi.mui
    │   │   ├── es-ES
    │   │   │   ├── bootmgfw.efi.mui
    │   │   │   ├── bootmgr.efi.mui
    │   │   │   └── memtest.efi.mui
    │   │   ├── es-MX
    │   │   │   ├── bootmgfw.efi.mui
    │   │   │   └── bootmgr.efi.mui
    │   │   ├── et-EE
    │   │   │   ├── bootmgfw.efi.mui
    │   │   │   └── bootmgr.efi.mui
    │   │   ├── fi-FI
    │   │   │   ├── bootmgfw.efi.mui
    │   │   │   ├── bootmgr.efi.mui
    │   │   │   └── memtest.efi.mui
    │   │   ├── Fonts
    │   │   │   ├── chs_boot.ttf
    │   │   │   ├── cht_boot.ttf
    │   │   │   ├── jpn_boot.ttf
    │   │   │   ├── kor_boot.ttf
    │   │   │   ├── malgun_boot.ttf
    │   │   │   ├── malgunn_boot.ttf
    │   │   │   ├── meiryo_boot.ttf
    │   │   │   ├── meiryon_boot.ttf
    │   │   │   ├── msjh_boot.ttf
    │   │   │   ├── msjhn_boot.ttf
    │   │   │   ├── msyh_boot.ttf
    │   │   │   ├── msyhn_boot.ttf
    │   │   │   ├── segmono_boot.ttf
    │   │   │   ├── segoen_slboot.ttf
    │   │   │   ├── segoe_slboot.ttf
    │   │   │   └── wgl4_boot.ttf
    │   │   ├── fr-CA
    │   │   │   ├── bootmgfw.efi.mui
    │   │   │   └── bootmgr.efi.mui
    │   │   ├── fr-FR
    │   │   │   ├── bootmgfw.efi.mui
    │   │   │   ├── bootmgr.efi.mui
    │   │   │   └── memtest.efi.mui
    │   │   ├── hr-HR
    │   │   │   ├── bootmgfw.efi.mui
    │   │   │   └── bootmgr.efi.mui
    │   │   ├── hu-HU
    │   │   │   ├── bootmgfw.efi.mui
    │   │   │   ├── bootmgr.efi.mui
    │   │   │   └── memtest.efi.mui
    │   │   ├── it-IT
    │   │   │   ├── bootmgfw.efi.mui
    │   │   │   ├── bootmgr.efi.mui
    │   │   │   └── memtest.efi.mui
    │   │   ├── ja-JP
    │   │   │   ├── bootmgfw.efi.mui
    │   │   │   ├── bootmgr.efi.mui
    │   │   │   └── memtest.efi.mui
    │   │   ├── kd_02_10df.dll
    │   │   ├── kd_02_10ec.dll
    │   │   ├── kd_02_1137.dll
    │   │   ├── kd_02_14e4.dll
    │   │   ├── kd_02_15b3.dll
    │   │   ├── kd_02_1969.dll
    │   │   ├── kd_02_19a2.dll
    │   │   ├── kd_02_1af4.dll
    │   │   ├── kd_02_8086.dll
    │   │   ├── kd_07_1415.dll
    │   │   ├── kd_0C_8086.dll
    │   │   ├── kdstub.dll
    │   │   ├── ko-KR
    │   │   │   ├── bootmgfw.efi.mui
    │   │   │   ├── bootmgr.efi.mui
    │   │   │   └── memtest.efi.mui
    │   │   ├── lt-LT
    │   │   │   ├── bootmgfw.efi.mui
    │   │   │   └── bootmgr.efi.mui
    │   │   ├── lv-LV
    │   │   │   ├── bootmgfw.efi.mui
    │   │   │   └── bootmgr.efi.mui
    │   │   ├── memtest.efi
    │   │   ├── nb-NO
    │   │   │   ├── bootmgfw.efi.mui
    │   │   │   ├── bootmgr.efi.mui
    │   │   │   └── memtest.efi.mui
    │   │   ├── $NeedDeleteBCD.tag
    │   │   ├── nl-NL
    │   │   │   ├── bootmgfw.efi.mui
    │   │   │   ├── bootmgr.efi.mui
    │   │   │   └── memtest.efi.mui
    │   │   ├── pl-PL
    │   │   │   ├── bootmgfw.efi.mui
    │   │   │   ├── bootmgr.efi.mui
    │   │   │   └── memtest.efi.mui
    │   │   ├── pt-BR
    │   │   │   ├── bootmgfw.efi.mui
    │   │   │   ├── bootmgr.efi.mui
    │   │   │   └── memtest.efi.mui
    │   │   ├── pt-PT
    │   │   │   ├── bootmgfw.efi.mui
    │   │   │   ├── bootmgr.efi.mui
    │   │   │   └── memtest.efi.mui
    │   │   ├── qps-ploc
    │   │   │   └── memtest.efi.mui
    │   │   ├── Resources
    │   │   │   ├── bootres.dll
    │   │   │   └── pt-BR
    │   │   │       └── bootres.dll.mui
    │   │   ├── ro-RO
    │   │   │   ├── bootmgfw.efi.mui
    │   │   │   └── bootmgr.efi.mui
    │   │   ├── ru-RU
    │   │   │   ├── bootmgfw.efi.mui
    │   │   │   ├── bootmgr.efi.mui
    │   │   │   └── memtest.efi.mui
    │   │   ├── sk-SK
    │   │   │   ├── bootmgfw.efi.mui
    │   │   │   └── bootmgr.efi.mui
    │   │   ├── sl-SI
    │   │   │   ├── bootmgfw.efi.mui
    │   │   │   └── bootmgr.efi.mui
    │   │   ├── sr-Latn-RS
    │   │   │   ├── bootmgfw.efi.mui
    │   │   │   └── bootmgr.efi.mui
    │   │   ├── sv-SE
    │   │   │   ├── bootmgfw.efi.mui
    │   │   │   ├── bootmgr.efi.mui
    │   │   │   └── memtest.efi.mui
    │   │   ├── tr-TR
    │   │   │   ├── bootmgfw.efi.mui
    │   │   │   ├── bootmgr.efi.mui
    │   │   │   └── memtest.efi.mui
    │   │   ├── uk-UA
    │   │   │   ├── bootmgfw.efi.mui
    │   │   │   └── bootmgr.efi.mui
    │   │   ├── updaterevokesipolicy.p7b
    │   │   ├── winsipolicy.p7b
    │   │   ├── zh-CN
    │   │   │   ├── bootmgfw.efi.mui
    │   │   │   ├── bootmgr.efi.mui
    │   │   │   └── memtest.efi.mui
    │   │   └── zh-TW
    │   │       ├── bootmgfw.efi.mui
    │   │       ├── bootmgr.efi.mui
    │   │       └── memtest.efi.mui
    │   └── Recovery
    │       ├── BCD
    │       ├── BCD.LOG
    │       ├── BCD.LOG1
    │       └── BCD.LOG2
    └──** opensuse**
        ├── boot.csv
        ├── grub.cfg
        ├── grub.efi
        ├── grubx64.efi
        ├── MokManager.efi
        └── shim.efi

45 directories, 146 files

Note openSUSE entries at the bottom. Should I delete it?

Hi
The third disk is not used for any OS that’s booting, it will be fine for just data etc. One or two esp’s your call, my preference is for one (else if using efibootmgr to add, some extra things to remember). If that existing one is for an old install I would remove, also check the NVRAM (via live USB) and manually remove old entries with efibootmgr may be required.

Hi, Malcolm,

The ESP in the new /sda2 SSD is, in fact, the one cloned from the old windows install. I’ don’t want to reinstall W10 if possible, it is a PITN. The one in sdb1 is just an empty FAT32 partition I created. /sdb2 is for future oS root, only /home is a copy of my old /home that I intend to keep.

So are you suggesting to remove sda2 (the new “old”) or ignore /sdb1, currently empty?

Also how do I check NVRAM? A google search yields a lot of information on NVRAM, but AFAICS not how to check.

Thank you,

Although there are opensuse entries in ESP, bcdedit in windows only show one entry, Windows Boot Manager on /sda2. There is no openSUSE installed yet. Perhaps I should delete /EFI/opensuse folder before installing Leap?

Hi
I would delete just the opensuse directory and files then.

Hi
I would just leave the sdb1 partition, but set it to say type 0700 with gdisk so it doesn’t confuse things.

If you fire up a Live or rescue USB of openSUSE in UEFI mode, then run the command (as root user) efibootmgr -v to see the NVRAM boot entries.

Thanks Malcolm. Reformatted sdb1 to NTFS/07x00 as per gparted help, deleted the opensuse folder, I’ll try installing now.

Did you know gparted has a “cleared” format option? http://superuser.com/questions/706624/ddg#706637

efibootmgr -v from a partedmagic liveCD gives:

No BootOrder is set; firmware will attempt recovery

But I understand this is OK since oS isn’t installed yet.

Hi
Did you boot in UEFI mode, does that cd run uefi since it should show at least the windows entry…

Do you have an openSUSE Live or Rescue version, they are better to use since you can install any necessary software :wink:

This depends on your hardware (or BIOS/firmware).

On my main desktop (a Dell Inspiron 660), the firmware deletes all but one NVRAM entry. If I boot openSUSE, all is fine. But the Windows NVRAM entry disappears. I can still boot Windows from the grub menu.

If I then boot Windows, it discovers that its NVRAM entry is missing, and puts it back. On the next boot, the UEFI firmware deletes the openSUSE NVRAM entry, and I can only boot Windows.

As it happens, I have two hard drives. So I used a second EFI partition (on the second drive). And now the firmware allows me to have two NVRAM entries, one per EFI partition.

But this is firmware dependent. I have another UEFI box (a Lenovo ThinkServer). And that remembers 10 NVRAM entries for booting different systems. And if I delete one of those NVRAM entries, the firmware puts it back unless I also delete boot file from the EFI partition.

I won’t give you advice. I’m just letting you know the possibilities. It’s probably better to stick to one EFI partition if your UEFI firmware doesn’t delete entries. But if it does delete entries then you can try a second EFI partition to see if that solves the problem.

Well, I just installed Leap 15.1. Installation from a USB 3.0 pendrive to the SSD took amazing 8 minutes from end of configuration to reboot, not connected to the internet. A-M-A-Z-I-N-G!

After the first reboot it went straight to W10. I rebooted into UEFI and at least both W10 and oS UEFI boot options are there in the boot menu. Also the boot order was already set to opensuse-secure-boot, and after exiting without changing anything, it rebooted into grub menu. WTF?

In the worst case I can boot oS from UEFI. I’ll do some more testing later, right now I’m running software update (no 8 minutes here). Let’s see how grub behaves after a gazillion kernel updates.

Ah, nouveau seems to be working nicely with the nvidia GTX 710 (this is a backup work machine, no gaming). Perhaps I can ditch nvidia’s blob, we’ll see.

Good info nrickert, thanks!

On the previous install, with both OSes in the same disk and the same UEFI motherboard, grub menu worked OK for a couple of years dualbooting oS 42.3 and W10, so I think it’s not a limitation of the UEFI implementation on the mobo - although it is an old one, circa 2015.

Good info nrickert, thanks!

On the previous install, with both OSes in the same disk and the same UEFI motherboard, grub menu worked OK for a couple of years dualbooting oS 42.3 and W10, so I think it’s not a limitation of the UEFI implementation on the mobo - although it is an old one, circa 2015.

It seems to be working:
Rebooted from oS -> grub menu
Shutdown from oS and power-up -> grub menu
Booted into Windows, rebooted - > grub menu
Shutdown from W10 and power-up - grub menu

https://forums.opensuse.org/images/icons/icon6.png