]> git.proxmox.com Git - grub2.git/commitdiff
Skip Windows os-prober entries on Wubi systems
authorColin Watson <cjwatson@ubuntu.com>
Mon, 13 Jan 2014 12:13:24 +0000 (12:13 +0000)
committerColin Watson <cjwatson@debian.org>
Mon, 27 Sep 2021 19:09:38 +0000 (20:09 +0100)
Since we're already being booted from the Windows boot loader, including
entries that take us back to it mostly just causes confusion, and stops
us from being able to hide the menu if there are no other OSes
installed.

https://blueprints.launchpad.net/ubuntu/+spec/foundations-o-wubi

Forwarded: not-needed
Last-Update: 2013-11-26

Patch-Name: wubi-no-windows.patch

util/grub.d/30_os-prober.in

index e2ec80eb94f8f5206d17ea96afa1b57bcae400e8..98aee403eed0913340ffa7e3167c5a5360c06fc1 100644 (file)
@@ -113,6 +113,8 @@ EOF
 
 used_osprober_linux_ids=
 
+wubi=
+
 for OS in ${OSPROBED} ; do
   DEVICE="`echo ${OS} | cut -d ':' -f 1`"
   LONGNAME="`echo ${OS} | cut -d ':' -f 2 | tr '^' ' '`"
@@ -149,6 +151,23 @@ for OS in ${OSPROBED} ; do
   case ${BOOT} in
     chain)
 
+      case ${LONGNAME} in
+       Windows*)
+         if [ -z "$wubi" ]; then
+           if [ -x /usr/share/lupin-support/grub-mkimage ] && \
+              /usr/share/lupin-support/grub-mkimage --test; then
+             wubi=yes
+           else
+             wubi=no
+           fi
+         fi
+         if [ "$wubi" = yes ]; then
+           echo "Skipping ${LONGNAME} on Wubi system" >&2
+           continue
+         fi
+         ;;
+      esac
+
          onstr="$(gettext_printf "(on %s)" "${DEVICE}")"
       cat << EOF
 menuentry '$(echo "${LONGNAME} $onstr" | grub_quote)' $CLASS --class os \$menuentry_id_option 'osprober-chain-$(grub_get_device_id "${DEVICE}")' {