Installed Leap 15 and there was no windows partition on GRUB

Hi,

I installed LEAP 15 on a brand new SSD drive and I naively assumed that openSUSE would find the windows hard drive and include it in GRUB. I was wrong.

What process do I need to do to get Windows on GRUB?

It should.

Does Windows use UEFI booting or traditional MBR booting?
Does openSUSE use UEFI booting or traditional MBR booting?

The most likely cause of your problem is a mismatch between the two. Either they should both use UEFI booting or they should both use traditional MBR booting.

It’s windows 10 installed from USB.

It used to work seamlessly but not now unfortunately.

What can I do to add in windoze manually?

Can you post the output from these commands (as root):


parted -l
efibootmgr -v

Model: ATA ADATA SU650 (scsi)
Disk /dev/sda: 240GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system Flags
1 1049kB 525MB 524MB primary ntfs boot, type=07
2 525MB 240GB 239GB primary ntfs type=07
3 240GB 240GB 495MB primary ntfs diag, type=27

Error: /dev/sdb: unrecognised disk label
Model: ATA ST2000DM006-2DM1 (scsi)
Disk /dev/sdb: 2000GB
Sector size (logical/physical): 512B/4096B
Partition Table: unknown
Disk Flags:

Model: ATA Samsung SSD 850 (scsi)
Disk /dev/sdc: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number Start End Size File system Name Flags
1 1049kB 525MB 524MB fat16 boot, legacy_boot, esp
2 525MB 43.5GB 42.9GB btrfs
3 43.5GB 483GB 440GB xfs
4 483GB 500GB 16.8GB linux-swap(v1) swap

BootCurrent: 0011
Timeout: 2 seconds
BootOrder: 0011,0021,0022,0001,0020
Boot0001* Hard Drive BBS(HD,0x0)/VenHw(5ce8128b-2cec-40f0-8372-80640e3dc858,0200)…GO…NO…A.D.A.T.A. .S.U.6.5.0…,.@.r.d.=.X…A…>…Gd-.;.A…MQ…L.H.2.0.5.0.2.1.0.3.7.0.0.
. . . . . . . …BO…NO…S.T.2.0.0.0.D.M.0.0.6.-.2.D.M.1.6.4…,.@.r.d.=.X…A…>…Gd-.;.A…MQ…L. . . . . . . . . . . . .4.Z.A.Z.D.G.K.C…BO…NO…S.a.m.s.u.n
.g. .S.S.D. .8.5.0. .E.V.O. .5.0.0.G.B…,.@.r.d.=.X…A…>…Gd-.;.A…MQ…L.3.S.3.R.F.N.J.1.2.A.8.3.5.0. .P. . . . …BO
Boot0011* opensuse HD(1,GPT,9a75d9e3-7909-4817-ad21-ccf201118939,0x800,0xfa000)/File(\EFI\OPENSUSE\GRUBX64.EFI)…BO
Boot0020* Network Card BBS(Network,0x0)/VenHw(5ce8128b-2cec-40f0-8372-80640e3dc858,0600)…GO…NO…R.e.a.l.t.e.k. .P.X.E. .B.0.3. .D.0.0…,.@.r.d.=.X…rN.D+…,…<…Gd-.;.A…MQ…L.R.e.a
.l.t.e.k. .P.X.E. .B.0.3. .D.0.0…BO
Boot0021* UEFI: PXE IP4 Realtek PCIe GBE Family Controller PciRoot(0x0)/Pci(0x1c,0x3)/Pci(0x0,0x0)/MAC(309c23844ca1,0)/IPv4(0.0.0.0:0<->0.0.0.0:0,0,0)…BO
Boot0022* UEFI: PXE IP6 Realtek PCIe GBE Family Controller PciRoot(0x0)/Pci(0x1c,0x3)/Pci(0x0,0x0)/MAC(309c23844ca1,0)/IPv6(::]:<->::]:,0,0)…BO

That seems to show Windows as installed to use traditional MBR booting. But your linux system is using UEFI booting.

The two do not mix. If you are booting Leap 15.0 with UEFI, then it cannot make the BIOS calls that would be needed to boot Windows.

Your best bet would be to switch openSUSE to use MBR booting. However, I’m not sure what you would have to do to persuade your BIOS to boot it. You would probably need to set the boot order in BIOS to boot the openSUSE disk first.

If you want to do that:

Edit “/etc/default/grub”. If there is a line:

GRUB_USE_LINUXEFI="true"

then comment that out (insert ‘#’ at the beginning of the line). Then use Yast bootloader, and switch to using “grub2” instead of “grub2-efi”. You might get some warning messages.

There was no line GRUB_USE… and I had already changed my bootloader to grub2 and I am booting from the master boot record.

Now what?

If now booting MBR the easiest thing is to go to Yast-bootloader and be sure that scan for foreign OS is checked then accept this should find Windows

I get an error message:

/usr/sbin/grub2-install: warning: This GPT contains no BIOS boot partition/ Embedding won’t be possible

/usr/sbin/grub2-install: Error: filesystem `btrfs’ doesn’t support blocklist

During install, click on the “Booting” heading.

Set it to boot from the partition containig “/boot” (should be your root partition).
Check the box to install generic boot code in the MBR.

With those changes, it should be able to install booting without needing a bios_boot partition.

If you are making those changes with Yast bootloader and not as part of install, then the same options should be there.

So you advise to reinstall LEAP 15? I had a look on YaST using the GRUB2 thing and I don’t see the windows option on there.

Mat

Yast won’t show Windows. That’s found by os-prober. But if Windows uses MBR booting, then openSUSE also has to use MBR booting for that to work.

It looks as if openSUSE is on “/dev/sdc”, which is a GPT-partitioned disk.

Here’s something to try:

Make sure that you have the “gdisk” command. If you don’t have it, then install “gptfdisk”.

Using “gdisk” you should be able to add a bios_boot partition starting at sector 34 and ending at sector 2047. After doing that, you should be able to switch the grub2 without that error message about embedding.

Your gdisk session will look something like what follows. I’ve added comments (starting “###”) on several lines. Do not type those, nor the spaces before the ###


gdisk /dev/sdc
p    ### print partition table
?    ### get list of commands
x    ### switch to expert menu
?    ### get list of expert commands
l     ### set alignment
1    ### align to 1 sector
m   ### return to main menu
n    ### new partition
      ### empty line to accept default for partition number
      ### empty line to accept default for first sector (should show 34 as first sector -- else abort)
      ### empty line to accept default for last sector (should show 2047 as last sector of new partition -- else abort)
ef02   ### set partition type to bios_boot
s    ### save your changes.  Note that you can abort with CTRL-C at any time up till now.

You should now have a bios-boot partition. Try again to switch to grub2 for booting.

You will probably still be able to use UEFI booting. But you should also be able to use legacy booting. You will need to make a change in the BIOS for that. And booting Windows will only work with legacy booting.

After doing gdisk, this was my output:

GPT fdisk (gdisk) version 1.0.1

Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present

Found valid GPT with protective MBR; using GPT.

Now what?

I thought I gave the list of what to enter (often 1-letter commands) in my prior post in this thread.

I’m afraid that it didn’t work.

What else would you suggest?

I think you need to get a little help from someone who lives nearby and has more familiarity with linux.

Are you saying that it can’t be done? I am fairly familiar with SUSE, having used it before when it worked FLAWLESSLY, this was version 13.2 perhaps?

No.

I am saying that I have given as much help as I can via the forum. To do more, I would need to sit down at the keyboard and type in the commands myself, or I would need to look over your shoulder and tell you what to type at each step. Unless you happen to live close by, that does not seem a practical solution.

Hi
Hardware these days (and expectations) has moved from Legacy (MBR/msdos) to UEFI (EFI/CSM/gpt) so pairing the two up has nothing to do with operating systems, but the expectations are. Since your new SSD is gpt, an operating install assumes efi and move forward, this would apply to both winX and linux operating systems…

So, I think in this case since you may not want to re-install WinX(?) then you need to look at wiping the SSD and setting to type msdos rather than gpt and re-installing openSUSE.

You can change over via booting from the install medium and using gdisk to delete the partitions on /dev/sdc and then hit the x key then the z key (expert mode and zap) then press w and answer y to wiping the disk and mbr. Then use the command fdisk to prep the drive as msdos and re-install openSUSE.

Now just be sure to create a small /boot (200MB?) on the SSD and ensure openSUSE uses this for booting from AND the boot code is installed in /dev/sdc (not any other disk).

Then in your system BIOS, you need to select /dev/sdc to be the boot disk… openSUSE and os-prober should the find you winX install and chainload it.

Note, I would imagine on a winX update it’s likely to want to set everything back to it being the boss, who knows… In saying that winX UEFI booting does play a lot better with other OSes being installed in my experience.

I typed the commends exactly as you documented them and I still didn’t get the results. I think that it possibly means that you didn’t have the correct solution.

I’ll add this is the FIRST time installing ANY version of Linux that this has happened.