1
1
Fork 0
mirror of https://github.com/pbatard/rufus.git synced 2024-08-14 23:57:05 +00:00
rufus/res/grub2
Pete Batard e987272287
[grub] update GRUB 2.04 core.img for Ubuntu 20.10 support
* GRUB have cherry-picked patches from the "BootHole" vulnerability fix at
  https://lists.gnu.org/archive/html/grub-devel/2020-07/msg00034.html and
  have applied them to their 2.04 GRUB loader.
* This results in breakage with "error: symbol 'grub_calloc' not found" when
  using the release GRUB 2.04 version of core.img.
* Therefore, we too cherry-picked some patches to apply on top of GRUB 2.04
  release to make our core.img compatible with Ubuntu 20.10.
* Closes #1616
* Also increase the maximum write stride for ms-sys to 64 KB (required to
  write the GRUB 2.05 bootloader which is larger than 32 KB) and update hash DB.
2020-09-16 13:59:06 +01:00
..
boot.img [grub] add Grub 2.0 support 2014-11-17 23:41:46 +00:00
core.img [grub] update GRUB 2.04 core.img for Ubuntu 20.10 support 2020-09-16 13:59:06 +01:00
grub2_version.h [grub] update embedded GRUB to 2.04 2019-07-05 13:31:22 +01:00
readme.txt [grub] update GRUB 2.04 core.img for Ubuntu 20.10 support 2020-09-16 13:59:06 +01:00

This directory contains the Grub 2.0 boot records that are used by Rufus

* boot.img and core.img were created from:
    https://ftp.gnu.org/gnu/grub/grub-2.04.tar.xz
  with the following two extra patches applied:
  - https://lists.gnu.org/archive/html/grub-devel/2020-07/msg00016.html
  - https://lists.gnu.org/archive/html/grub-devel/2020-07/msg00017.html
  on a Debian 10.x x64 system using the commands:
    ./autogen.sh
    ./configure --disable-nls --enable-boot-time
    make -j6
    cd grub-core
    ../grub-mkimage -v -O i386-pc -d. -p\(hd0,msdos1\)/boot/grub biosdisk part_msdos fat ntfs exfat -o core.img

* boot.img has been modified to nop the jump @ 0x66 as per grub2's setup.c comments:
  /* If DEST_DRIVE is a hard disk, enable the workaround, which is
     for buggy BIOSes which don't pass boot drive correctly. Instead,
     they pass 0x00 or 0x01 even when booted from 0x80.  */

* Note that, for convenience reasons, the content of boot.img is *not* the one that
  Rufus processes when writing the MBR.
  Instead, the byte array from src/ms-sys/inc/mbr_grub2.h (whose content is identical)
  is what Rufus uses. If you modify these files, be mindful that you may also need
  to update the array in mbr_grub2.h.

* For details, see src/format.c, src/msys/br.c and src/msys/inc/mbr_grub2.h.