• icedterminal
    link
    English
    21 year ago

    Do your normal windows updates do it?

    They can. As Windows does updates it typically checks to make sure everything is working. This includes making sure it will boot after an update.

    Or transition between major Windows versions?

    If it’s not a feature enablement update, then yes it can happen. In place upgrades actually reinstall Windows. This includes boot.

    Or is it just a Win 11 problem?

    Happens with 8, 10 and 11. Since these are UEFI compatible.

    The problem starts with how you install. If you do Windows first and then Linux when sharing an EFI partition, Windows doesn’t like this. A feature of Windows is PCR7. Since Secure Boot is a requirement now for Windows 11, this is more of a problem than it was. PCR7 binding happens when the entire boot chain has been authenticated using Microsoft’s CA. This can interfere with BitLocker automatic encryption for Home. If it’s already been enabled before you install Linux, you could lock yourself out of the Windows install if you don’t know where to retrieve your recovery key. People typically install Windows first and then Linux because majority of Linux installers are smart. They detect Windows and create an entry so as to preserve booting.

    When an update or upgrade takes place and Windows does its checks, it may decide “I don’t like this EFI configuration” and then completely “repair” it. Not realising that it was that way on purpose.

    The solution I’ve found is to manually create boot files for each, and then use rEFInd. Writing a manual configuration that simply loads the bootloaders on the Linux and Windows partition. That way neither are aware of the other.

    • alliswell33
      link
      fedilink
      110 months ago

      So I’m a recent Linux user (as I created a duelbooting system this week for the first time) and I did as you said in this comment and downloaded rEFInd. Is that all you have to do or is there more to the part “manually create boot files for each”? If so would you mind giving me a brief rundown on how to do the same?

      • icedterminal
        link
        English
        1
        edit-2
        10 months ago

        I installed Windows and Linux via command line from their installers. I did Windows first, then Linux. Each OS has its own SSD (This is where I manually created boot files for each). I booted into Windows to complete the install then did the same for Linux. Once that was done, while still in Linux, I created an EFI partition on a shared data drive. I placed refind on that and configured it. With all of that complete, I boot into firmware settings and set refind as the default.

        For this to work without issue, you need at least two drives. I have three to make it even easier.

        If Windows and Linux share the same drive, set up a manual partition layout with two EFI partitions. You’ll end up with this:

        EFI || EFI || WinRe || Windows || Linux

        The first EFI partition is for Windows, and the second is for Linux. Complete the OS installs and use a second drive for a third EFI partition to set up refind. Again, configuring it and then setting it as the default.

        • alliswell33
          link
          fedilink
          110 months ago

          Thank you for the reply. This won’t work for me because I’m stuck duelbooting from a single SSD on a laptop. But maybe it can help someone else that stumbles on it.

          • icedterminal
            link
            English
            110 months ago

            I’ve not tried it, but you can do three EFI partitions on the same drive. There’s no real limit to how many EFI partitions you can have. The key here is to keep Windows and Linux boot files separate at all times. If they share the same EFI, then Windows will undoubtedly break it at some point. Having refind as the default just makes it easier to choose which OS you want. Rather than relying on Windows Boot Manager or Grub. Of course to do all this you need to wipe the disk to set up the layout.