Dual boot Windows 10 upgrade and GRUB boot loader

Hello,
I am going to upgrade my Windows 8.1 to Windows 10 on a dual boot system running Opensuse 15.4. Will this cause my GRUB menu to disappear? How do I get it back?

Depends on how the boot is being done. EFI or Legacy (MBR)

If MBR it may well mess with things but reinstalling MBR code normally fixes it.

EFI it may make Windows the default but you should be able to change that from the UEFI (BIOS)

Thank you.
I’m planning on going mbr, my Linux is not UEFI. How can I restore GRUB afterwork? Something with booting from the Opensuse install disk?

Windows 8 machines support UEFI. Going with MBR is PITA in my experience: https://karlmistelberger.wordpress.com/2018/05/15/fruehjahsputz/:wink:

When UEFI booting is possible, it’s the smarter way.

What do you mean “planning”? You already have Windows on this system, and it is installed either in legacy BIOS or in EFI mode. It is not the question of “planning”, but the question of “what you have now”.

my Linux is not UEFI. How can I restore GRUB afterwork? Something with booting from the Opensuse install disk?

It depends on where bootloader is installed in Linux. It may be as simple as changing active partition.

Show the content of /etc/default/grub_installdevice in openSUSE and output of “fdisk -l”.

Thanks all. It looks like I will be going UEFI and GPT. Would it be easier then to wipe the disk, install Windows 10 first, then Opensuse 15.4 in UEFI mode to get a dual boot?
I will get you the fdisk output shortly…

With EFI boot the order of install should not matter.

Best to decide on the disk partition for each OS before you go install any. You need a partition for Windows and at least two for openSUSE one for / (root) and one for swap…/ should be about 30 gig if you use ext4 format or if BTRFS file system format at least 40 swap should be a bit more then 1/2 the memory size if you plan to hibernate or if not 1 or two gig is sufficient unless you do some very memory intensive processes. You may want to have a separate partition mounted as /home for all your personal data whatever you need is.

Here is the content you requested.
/dev/disk/by-id/ata-KINGSTON_SA400S37480G_50026B77843E236C

And the fdisk:
Icarus@localhost:~> sudo fdisk -l
[sudo] password for root:
Disk /dev/sda: 447.13 GiB, 480103981056 bytes, 937703088 sectors
Disk model: KINGSTON SA400S3
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: dos
Disk identifier: 0x33e233e1

Device ** Boot ** Start ** End** ** Sectors** ** Size** Id Type
/dev/sda1 * 2048 718847 716800 350M 7 HPFS/NTFS/exFAT
/dev/sda2 718848 102713343 101994496 48.6G 7 HPFS/NTFS/exFAT
/dev/sda3 102713344 933507071 830793728 396.2G 83 Linux
/dev/sda4 933507072 937703087 4196016 2G 82 Linux swap / Solaris

Disk /dev/loop0: 47.99 MiB, 50319360 bytes, 98280 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop1: 49.64 MiB, 52051968 bytes, 101664 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop2: 91.69 MiB, 96141312 bytes, 187776 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop3: 45.93 MiB, 48156672 bytes, 94056 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop4: 45.93 MiB, 48156672 bytes, 94056 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop5: 4 KiB, 4096 bytes, 8 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop6: 346.33 MiB, 363151360 bytes, 709280 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop7: 346.3 MiB, 363118592 bytes, 709216 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop9: 63.24 MiB, 66314240 bytes, 129520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop8: 63.2 MiB, 66265088 bytes, 129424 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Icarus@localhost:~> sudo efibootmgr
EFI variables are not supported on this system.
Icarus@localhost:~>

Since I am going to wipe everything, and then:
Install Windows 10 (Clean) with UEFI
Install Opensuse 15.4 with UEFI

I should get a dual boot menu and life is good? How about secure boot, is it necessary?
I also want to increase the EFI partition to 500MB, I have seen a way to do that during the Windows 10 installation. Is that the best way?

Hi
If your going to wipe the system then setup the disk before installing any OS from a USB Live system

sda1 - type ef00 size 500MB
sda2 - type 0c01 size 16MB
rest of the disk as required…

What to you plan to put there to utilize that space? Increasing to 500M is a fruitless waste of time, unless you’re putting the ESP on a 16TB or larger disk using 4k sectors without 512b translation, where the minimum size is 260M.

# df -h | egrep -i 'sys|efi'
Filesystem       Size  Used Avail Use% Mounted on
/dev/nvme0n1p1   320M   27M  294M   9% /boot/efi
# ls /boot/efi/EFI
BOOT  debian11  debian12  opensuse155  opensusetw  tubuntu20  tubuntu22
# du /boot/efi/EFI
3416    /boot/efi/EFI/BOOT
124     /boot/efi/EFI/debian11
124     /boot/efi/EFI/debian12
140     /boot/efi/EFI/opensuse155
144     /boot/efi/EFI/opensusetw
3404    /boot/efi/EFI/tubuntu20
3404    /boot/efi/EFI/tubuntu22

That’s 6 OS’s bootloaders occupying about 29M. 100M is far more than anyone needs for only two OSes.

Secure boot is not a requirement. In essence it just stops booting if some agent changes something in the boot stack. Any agent that can do that already owns the machine at least in Linux.(Won’t comment on other OS)

No, that is not what Secure Boot does. Before telling others what **** it is you better learn what it actually is.

Sure it is at basic level. The boot stack is digitally signed and any changes are flagged by the BIOS and the boot stops. It is security theater since only root can do the mods and if a process is root then you are already owned. Oh there is a very very small chance that some hole in security may exist for a short time before being fixed but Linux community s pretty good at fixing holes It all depends on how paranoid you are and if you run Windows if you “NEED” secure boot

Ok, thank you for the replies. Now I have:
DISKPART> list volume

Volume ### Ltr Label Fs Type Size Status Info


Volume 0 D DVD-ROM 0 B No Media
Volume 1 C NTFS Partition 446 GB Healthy Boot
Volume 2 FAT32 Partition 100 MB Healthy System
Volume 3 NTFS Partition 530 MB Healthy Hidden

I want to create (after shrinking, I’m not 100% sure what to do) a linux SWAP, and a btrfs for OS and data. How does the EFI come into play? Do I have to tell Linux to use the existing partition, or is it automatic? I want to do this easy, but also do it right.

Windows administration is PITA, but shrinking its NTFS partition while in use works great. I did it in August: https://forums.opensuse.org/showthread.php/574148-Lenovo-Thinkbook-Windows-11-Tumbleweed-dual-boot

While Secure Boot theoretically can check hashes of individual components, in practice it checks that signature is made by trusted key. Which means you can replace one component with another component as long as it is still signed by trusted key.

It is security theater since only root can do the mods and if a process is root then you are already owned.

Leaving aside simple observation, that root can not do the mods because in common setup root does not have the key needed to sign boot components, so boot stack is still - sort of - protected …

Yes, secure boot does not protect from threats on operating system level. So, what solution offers the perfect protection against all possible threats, past and future, firmware and software? I assume you know one, just forgot to name it.

Well only root can make modes to the boot stack and if the BIOS sees the changes it effectively bricks the device. If a bad guy has root access they already own the machine so it makes little sense for them to mess with the boot stack since they can do just about any thing they want anyway.

Thanks for all the advice. I ended up with secure boot disabled and working dual boot with Opensuse and Windows 10. I just installed it using the defaults, it moved the mount point to my EFI partition and life is good.