Bugs : os-prober package : Ubuntu
“`
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/
$
“`
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-
│ │ │ │ ├── {82443e1e-
│ │ │ │ └── {CDD5CB55-
│ │ │ ├── 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
│ │ │ ├── SecureBootRecov
│ │ │ ├── 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/
#!/bin/sh
# Detects Microsoft bootloader on a EFI System Partition
. /usr/share/
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/$
bootmgfw=
if [ -n “$bcd” -a -n “$bootmgfw” ]; then
long=”Windows Boot Manager”
short=Windows
path=
found=true
break
fi
done
done
if [ -n “$found” ]; then
label=
result “${path}
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”
for boot in $(ls -d “$base/
done
fi
done
fi
if [ “$type” = fuseblk ] || [ “$type” = ntfs ]; then
if [ -f “$mpoint/
echo “$partition:Windows 11:Windows:chain”
exit 0
fi
fi
exit 1
“`
Read more here: Source link
