[Bug 2129422] Re: os-prober fail to detect windows 11 2025H2

Michael Hudson-Doyle 2129422 at bugs.launchpad.net
Mon Nov 17 04:20:34 UTC 2025


The subiquity team should be able to at least help commiserate over this
one.

** Tags removed: rls-rr-incoming
** Tags added: foundations-todo

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to os-prober in Ubuntu.
https://bugs.launchpad.net/bugs/2129422

Title:
  os-prober fail to detect windows 11 2025H2

Status in os-prober package in Ubuntu:
  New

Bug description:
  ```
  lsb_release -a
  No LSB modules are available.
  Distributor ID:	Ubuntu
  Description:	Ubuntu 24.04.3 LTS
  Release:	24.04
  Codename:	noble

  os-prober version: 1.81ubuntu4
  ```
  os-prober cannot find windows efi partition with windows 11

  
  ```
  $/usr/lib/os-probes/mounted/efi/20microsoft /boot/efi
  $
  ```

  new windows 11 has a different efi layout and there's a /boot/efi/EFI
  partition that is the new root

  ```
  tree /boot/efi
  /boot/efi
  ├── $RECYCLE.BIN
  │   └── desktop.ini
  ├── EFI
  │   ├── Boot
  │   │   ├── bootx64.efi
  │   │   ├── fbx64.efi
  │   │   └── mmx64.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
  │   │   │   ├── CIPolicies
  │   │   │   │   └── Active
  │   │   │   │       ├── {5DAC656C-21AD-4A02-AB49-649917162E70}.cip
  │   │   │   │       ├── {82443e1e-8a39-4b4a-96a8-f40ddc00b9f3}.cip
  │   │   │   │       └── {CDD5CB55-DB68-4D71-AA38-3DF2B6473A52}.cip
  │   │   │   ├── 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_1414.dll
  │   │   │   ├── kd_02_14e4.dll
  │   │   │   ├── kd_02_15ad.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
  │   │   │   ├── kdnet_uart16550.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
  │   │   │   ├── 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
  │   │   │   ├── qps-plocm
  │   │   │   │   └── memtest.efi.mui
  │   │   │   ├── Resources
  │   │   │   │   ├── bootres.dll
  │   │   │   │   └── en-US
  │   │   │   │       └── bootres.dll.mui
  │   │   │   ├── ro-RO
  │   │   │   │   ├── bootmgfw.efi.mui
  │   │   │   │   └── bootmgr.efi.mui
  │   │   │   ├── ru-RU
  │   │   │   │   ├── bootmgfw.efi.mui
  │   │   │   │   ├── bootmgr.efi.mui
  │   │   │   │   └── memtest.efi.mui
  │   │   │   ├── SecureBootRecovery.efi
  │   │   │   ├── 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
  │   │   │   ├── 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
  │   └── ubuntu
  │       ├── BOOTX64.CSV
  │       ├── grub.cfg
  │       ├── grubx64.efi
  │       ├── mmx64.efi
  │       └── shimx64.efi
  └── System Volume Information
      ├── IndexerVolumeGuid
      └── WPSettings.dat

  51 directories, 156 files
  ```

  current os-prober microsoft script

  ```
  $cat /usr/lib/os-probes/mounted/efi/20microsoft
  #!/bin/sh
  # Detects Microsoft bootloader on a EFI System Partition

  . /usr/share/os-prober/common.sh

  efi="$1"

  found=
  for microsoft in $(item_in_dir microsoft "$efi"); do
   for boot in $(item_in_dir boot "$efi/$microsoft"); do
    bcd=$(item_in_dir bcd "$efi/$microsoft/$boot")
    bootmgfw=$(item_in_dir bootmgfw.efi "$efi/$microsoft/$boot")
    if [ -n "$bcd" -a -n "$bootmgfw" ]; then
     long="Windows Boot Manager"
     short=Windows
     path="$microsoft/$boot/$bootmgfw"
     found=true
     break
    fi
   done
  done

  if [ -n "$found" ]; then
   label="$(count_next_label "$short")"
   result "${path}:${long}:${label}"
  fi
  exit 0
  ```

  I've updated the script to fix this

  ```
  #!/bin/sh
  partition="$1"
  mpoint="$2"
  type="$3"
  if [ "$type" = vfat ]; then
      for base in "$mpoint" "$mpoint/EFI"; do
          if [ -d "$base" ]; then
              for microsoft in $(ls -d "$base"/[mM][iI][cC][rR][oO][sS][oO][fF][tT] 2>/dev/null); do
                  microsoft=$(basename "$microsoft")
                  for boot in $(ls -d "$base/$microsoft"/[bB][oO][oO][tT] 2>/dev/null); do
                      boot=$(basename "$boot")
                      if [ -f "$base/$microsoft/$boot/bootmgfw.efi" ] && [ -f "$base/$microsoft/$boot/bcd" ]; then
                          if grep -aqs "W.i.n.d.o.w.s. .1.1" "$base/$microsoft/$boot/bcd"; then
                              long="Windows 11"
                          elif grep -aqs "W.i.n.d.o.w.s. .1.0" "$base/$microsoft/$boot/bcd"; then
                              long="Windows 10"
                          elif grep -aqs "W.i.n.d.o.w.s. .8" "$base/$microsoft/$boot/bcd"; then
                              long="Windows 8"
                          elif grep -aqs "W.i.n.d.o.w.s. .7" "$base/$microsoft/$boot/bcd"; then
                              long="Windows 7"
                          elif grep -aqs "W.i.n.d.o.w.s. .V.i.s.t.a" "$base/$microsoft/$boot/bcd"; then
                              long="Windows Vista"
                          elif grep -aqs "W.i.n.d.o.w.s. .S.e.r.v.e.r. .2.0.0.8. .R.2." "$base/$microsoft/$boot/bcd"; then
                              long="Windows Server 2008 R2"
                          elif grep -aqs "W.i.n.d.o.w.s. .S.e.r.v.e.r. .2.0.0.8." "$base/$microsoft/$boot/bcd"; then
                              long="Windows Server 2008"
                          elif grep -aqs "W.i.n.d.o.w.s. .R.e.c.o.v.e.r.y. .E.n.v.i.r.o.n.m.e.n.t" "$base/$microsoft/$boot/bcd"; then
                              long="Windows Recovery Environment"
                          elif grep -aqs "W.i.n.d.o.w.s. .S.e.t.u.p" "$base/$microsoft/$boot/bcd"; then
                              long="Windows Recovery Environment"
                          else
                              long="Windows Boot Manager"
                          fi
                          if [ "$base" = "$mpoint" ]; then
                              echo "$partition:$long:Windows:efi"
                          else
                              echo "$partition:$long:Windows:efi"
                          fi
                          exit 0
                      fi
                  done
              done
          fi
      done
  fi
  if [ "$type" = fuseblk ] || [ "$type" = ntfs ]; then
      if [ -f "$mpoint/Windows/System32/winload.exe" ]; then
          echo "$partition:Windows 11:Windows:chain"
          exit 0
      fi
  fi
  exit 1
  ```

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/os-prober/+bug/2129422/+subscriptions




More information about the foundations-bugs mailing list