URL:
  <https://savannah.gnu.org/bugs/?67019>

                 Summary: grub-mkconfig creates unusable menu entry for
Windows 10 (BIOS/DOS)
                   Group: GNU GRUB
               Submitter: evermore
               Submitted: So 13 Apr 2025 02:53:37 UTC
                Category: Configuration
                Severity: Major
                Priority: 5 - Normal
              Item Group: Software Error
                  Status: None
                 Privacy: Public
             Assigned to: None
         Originator Name:
        Originator Email:
             Open/Closed: Open
         Discussion Lock: Any
                 Release: Git master
                 Release:
         Reproducibility: Every Time
         Planned Release: None


    _______________________________________________________

Follow-up Comments:


-------------------------------------------------------
Date: So 13 Apr 2025 02:53:37 UTC    By: Anonymous
Hi folks,
I've booted the Arch Linux installation media in BIOS mode (i. e. non-UEFI
mode) and installed Grub (version 2.12.r260.gaae2ea61-1) on a SSD which has a
DOS partition table. grub-mkconfig creates a menu entry for Arch Linux and
another for Windows but the latter fails to boot Windows properly. Instead,
the following error is displayed:
> Booting 'Windows 10 ...'
> Setting partition type to 0x83
> error: invalid signature.

grub-mkconfig creates the following menu entry which does not work:

### BEGIN /etc/grub.d/30_os-prober ###

# This menu entry is supported only on PC BIOS platforms.
if [ "$grub_platform" = "pc" ]; then
menuentry 'Windows 10 (on /dev/sdb1)' --class windows --class os
$menuentry_id_option 'osprober-chain-/dev/sdb1' {
        insmod part_msdos
        parttool ${root} hidden-
        drivemap -s (hd0) ${root}
        chainloader +1
}
fi
### END /etc/grub.d/30_os-prober ###


After reading the documentation, I created an entry in grub.cfg by hand and
this works perfectly:

menuentry 'My Windows' {
    insmod chain
    insmod ntfs
    set root=(hd1,1)
    chainloader +1
}


I don't understand why grub-mkconfig is not able to create this
automatically.

Details on hardware setup:
* /dev/sdb1: Windows 10 installation on SSD
* /dev/sdc1: Arch Linux installation (installation details in the next
section)
(both drives have a DOS partition table)

How to reproduce:
1. Boot Arch Linux installation media in BIOS mode (non-UEFI mode)
2. Execute the following commands:

# only if you have a special keyboard layout:
loadkeys de-latin1

# Create and format partition for new ArchLinux root:
fdisk /dev/sdc
mkfs.ext4 /dev/sdc1

# Mount drives:
mount /dev/sdc1 /mnt
mount /dev/sdb1 /mnt/win --mkdir

# Basic installation:
pacstrap -K /mnt base linux linux-firmware
genfstab -U /mnt >> /mnt/etc/fstab
arch-chroot /mnt

# Grub installation:
pacman -S grub efibootmgr os-prober nano less ntfs-3g fuse3
grub-install --target=i386-pc /dev/sdc

# Activate os-prober:
nano /etc/default/grub
-> uncomment line with GRUB_DISABLE_OS_PROBER=false

# Create grub.cfg:
grub-mkconfig -o /boot/grub/grub.cfg









    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?67019>

_______________________________________________
Nachricht gesendet über Savannah
https://savannah.gnu.org/

Attachment: signature.asc
Description: PGP signature

Reply via email to