What's new in GNU GRUB 2.04
Jul 6, 2019
- GCC 8 and 9 support.
- Gnulib integration overhaul.
- RISC-V support.
- Xen PVH support.
- Native UEFI secure boot support.
- UEFI TPM driver.
- New IEEE 1275 obdisk driver.
- Btrfs RAID 5 and RIAD 6 support.
- PARTUUID support.
- VLAN support.
- Native DHCP support.
- Many ARM and ARM64 fixes.
- Many SPARC fixes.
- Many IEEE 1275 fixes.
- ...and tons of other fixes and cleanups...
New in GNU GRUB 2.02 (Apr 27, 2017)
- New/improved filesystem and disk support:
- Big-endian UFS1.
- Experimental 64-bit ext2 support.
- Various fixes for non-512-byte sector devices.
- New `proc' filesystem framework, used by LUKS disks.
- Fix DM-RAID partition handling.
- New `nativedisk' command to switch from firmware to native disk drivers.
- Compressed HFS+.
- DragonFly BSD labels.
- CBFS (coreboot).
- Handle partitioned LVM properly.
- Use LVM UUIDs whenever possible.
- GPT PReP.
- New `progress' module that shows progress information while reading files.
- ZFS features support.
- ZFS LZ4 support.
- XFS V5 format support.
- LVM RAID1 support.
- New/improved terminal and video support:
- Monochrome text (matching `hercules' in GRUB Legacy).
- Morse code output using system speaker.
- `spkmodem' output (simple data protocol using system speaker).
- Handle Japanese special keys.
- coreboot framebuffer.
- Serial on ARC.
- Native vt100 handling for grub-emu, replacing the use of the curses library.
- New gfxmenu options for terminal window positioning, theme background image handling, and scrollbar padding, plus `item_pixmap_style' and `highlight_overlay'.
- Support several more image types (paletted and greyscale).
- Boot protocol improvements:
- Support Apple FAT binaries on non-Apple platforms.
- Improve FreeDOS direct loading support compatibility.
- Enable `linux16' on all x86 platforms, not just BIOS.
- New TrueCrypt ISO loader.
- multiboot2 boot-services EFI specification.
- multiboot2 EFI memory map specification.
- multiboot2 full-file specfication.
- New/improved network support:
- New variables `net_default_*' containing properties of the default interface.
- Autoload `http' and `tftp' modules if necessary.
- Improve TFTP robustness.
- Parse `nd' disk names in GRUB Legacy configuration files.
- Issue separate DNS queries for IPv4 and IPv6.
- Support IPv6 Router Advertisement to configure default router.
- New variable net__next_server containing next server from BOOTP reply.
- Coreboot improvements:
- CBFS support both in on-disk images (loopback) and flash.
- Ability to launch another payload from flash or disk
- Coreboot framebuffer
- CBMEMC support (both logging and inspecting logs)
- Command for inspecting coreboot timestamps (`coreboot_boottime').
- Command for inspecting coreboot tables (`lscoreboot').
- New target default_payload.elf.
- Increased maximal core size.
- Prefer pmtimer for TSC calibration.
- New/improved platform support:
- New `efifwsetup' and `lsefi' commands on EFI platforms.
- New `cmosdump' and `cmosset' commands on platforms with CMOS support.
- New command `pcidump' for PCI platforms.
- Improve opcode parsing in ACPI halt implementation.
- Use the TSC as a possible time source on i386-ieee1275.
- Merge PowerPC grub-mkrescue implementation with the common one.
- Support grub-mkrescue on i386-ieee1275, sparc64, bootinfo machines such as pSeries, and mips-arc.
- Make grub-mkrescue better support Apple Intel Macs on CD.
- Enable GRUB Legacy configuration file parsing on EFI.
- Support halt for Loongson 2E.
- ARM U-Boot and EFI ports.
- Reorganise platform-dependent code in utilities to avoid #ifdef mess.
- AROS and Haiku support for userspace utilities.
- Xen PV port.
- Fix EFI stack alignment.
- ARM64 EFI port.
- On Linux, read partition start offsets from sysfs if possible.
- New grub-macbless utility, and better integration with Mac firmware in grub-install.
- Support Yeeloong 3A.
- Add `cpuid --pae' option to detect Physical Address Extension on x86.
- Support for USB debug dongles.
- Support for *-emu on all platforms (previously only i386/x86_64 worked).
- Support *-emu on Windows.
- New platform `none' which builds only user level utilities. This is now default if target CPU is not supported.
- Support for booting little-endian Linux kernel on powerpc.
- Support network boot with Oracle sun4v vnet devices.
- Added SAS disks to the IEEE 1275 Open Firmware device list.
- Try multiple methods for TSC (timestamp counter) calibration - PIT, pmtimer, EFI Stall. If everything fails, use hardcoded frequency 800MHz.
- Support Hyper-V Gen2 platforms which lack PIT for TSC calibration.
- Map UEFI Persistent Memory to E820 persistent memory.
- New Xen loader on ARM64.
- Respect alignment requirement for block device IO buffers on EFI.
- Security:
- Add optional facility to enforce that all files read by the core image from disk have a valid detached digital signature.
- Performance:
- Avoid costly division operations in many places.
- New boot time analysis framework (`./configure --enable-boot-time').
- Initialise USB ports in parallel.
- New `testspeed' command to test file read speed.
- Speed-up gfxterm by storing intermediate results in more compact format.
- Lazy LVM/mdraid scan.
- Disk hints.
- Scripting:
- New `eval' and `tr' commands.
- grub-script-check fails on scripts containing no commands.
- Installation and other utility improvements:
- Add option to compress files on installation or image creation.
- Using grub-reboot no longer requires setting `GRUB_DEFAULT=saved'.
- Support probing EFI System Partition (requires os-prober >= 1.58).
- Fix inconsistent use of `GRUB_CRYPTODISK_ENABLE' and `GRUB_ENABLE_CRYPTODISK'; the latter is now used consistently.
- grub-mount handles symbolic links to directories.
- Support disabling submenus with `GRUB_DISABLE_SUBMENU' configuration key for grub-mkconfig.
- grub-install, grub-mknetdir, grub-mkrescue, and grub-mkstandalone rewritten in C. They should now work in supported non-Unix-like environments.
- Native mingw support.
- Ability to install on EFI under windows.
- Reorganise timeout handling using new `timeout_style' environment variable and `GRUB_TIMEOUT_STYLE' configuration key for grub-mkconfig. Menu hotkeys pressed during a hidden timeout now boot the corresponding menu entry immediately.
- New `file' command and grub-file utility to check file types.
- New syslinux configuration file parser.
- Set menu entry class to primary OS name returned by os-prober to display OS specific icon.
- On Linux x86 detect EFI word size in grub-install and automatically select correct platform (x86_64-efi or i386-efi) to install. Requires Linux kernel 4.0 or higher.
- Build system:
- Remove all uses of nested functions; GRUB no longer requires an executable stack.
- Fix documentation build with Texinfo >= 5.1.
- More robust and documented cross-compiling support.
- Partial clang support for some platforms (experimental).
- Partial mingw64 x86_64-efi compile support (highly experimental).
- Partial mingw32 i386-(other than already present i386-pc) compile support (highly experimental).
- Support for grub-mkpasswd on Windows.
- Eliminate the use of AutoGen. This allowed some performance improvements to the build system.
- Remove variable length arrays.
- OpenBSD compile and tools support (NetBSD and FreeBSD were already supported).
- Fix build with FreeType >= 2.5.1.
- Make gentpl.py compatible with Python 3. It now requires at least Python 2.6.
- modinfo.sh contains build information now.
- Added many new tests to improve robustness.
- Target is built without libgcc now. Necessary builtins are reimplemented directly. This removes requirement for target-specific runtime on build system.
- emu libusb support removed (was broken and unmaintained).
- powerpc64le compile support.
- Use fixed timestamp when generating GRUB image for reproducible builds.
- Verify at build time that modules contain only supported relocations and their structure matches what boot-time module loader expects.
- Do not require fonts on powerpc-ieee1275.
New in GNU GRUB 2.02 Beta 2 (Nov 10, 2014)
- New/improved filesystem and disk support:
- Big-endian UFS1.
- Experimental 64-bit ext2 support.
- Various fixes for non-512-byte sector devices.
- New `proc' filesystem framework, used by LUKS disks.
- Fix DM-RAID partition handling.
- New `nativedisk' command to switch from firmware to native disk drivers.
- Compressed HFS+.
- DragonFly BSD labels.
- CBFS (coreboot).
- Handle partitioned LVM properly.
- Use LVM UUIDs whenever possible.
- GPT PReP.
- New `progress' module that shows progress information while reading files.
- ZFS features support.
- ZFS LZ4 support.
- New/improved terminal and video support:
- Monochrome text (matching `hercules' in GRUB Legacy).
- Morse code output using system speaker.
- `spkmodem' output (simple data protocol using system speaker).
- Handle Japanese special keys.
- coreboot framebuffer.
- Serial on ARC.
- Native vt100 handling for grub-emu, replacing the use of the curses library.
- New gfxmenu options for terminal window positioning, theme background image handling, and scrollbar padding, plus `item_pixmap_style' and `highlight_overlay'.
- Support several more image types (paletted and greyscale).
- Boot protocol improvements:
- Support Apple FAT binaries on non-Apple platforms.
- Improve FreeDOS direct loading support compatibility.
- Enable `linux16' on all x86 platforms, not just BIOS.
- New TrueCrypt ISO loader.
- multiboot2 boot-services EFI specification.
- multiboot2 EFI memory map specification.
- multiboot2 full-file specfication.
- New/improved network support:
- New variables `net_default_*' containing properties of the default interface.
- Autoload `http' and `tftp' modules if necessary.
- Improve TFTP robustness.
- Parse `nd' disk names in GRUB Legacy configuration files.
- Issue separate DNS queries for IPv4 and IPv6.
- Coreboot improvements:
- CBFS support both in on-disk images (loopback) and flash.
- Ability to launch another payload from flash or disk
- Coreboot framebuffer
- CBMEMC support (both logging and inspecting logs)
- Command for inspecting coreboot timestamps (`coreboot_boottime').
- Command for inspecting coreboot tables (`lscoreboot').
- New target default_payload.elf.
- Increased maximal core size.
- New/improved platform support:
- New `efifwsetup' and `lsefi' commands on EFI platforms.
- New `cmosdump' and `cmosset' commands on platforms with CMOS support.
- New command `pcidump' for PCI platforms.
- Improve opcode parsing in ACPI halt implementation.
- Use the TSC as a possible time source on i386-ieee1275.
- Merge PowerPC grub-mkrescue implementation with the common one.
- Support grub-mkrescue on i386-ieee1275, sparc64, bootinfo machines such as pSeries, and mips-arc.
- Make grub-mkrescue better support Apple Intel Macs on CD.
- Enable GRUB Legacy configuration file parsing on EFI.
- Support halt for Loongson 2E.
- ARM U-Boot and EFI ports.
- Reorganise platform-dependent code in utilities to avoid #ifdef mess.
- AROS and Haiku support for userspace utilities.
- Xen PV port.
- Fix EFI stack alignment.
- ARM64 EFI port.
- On Linux, read partition start offsets from sysfs if possible.
- New grub-macbless utility, and better integration with Mac firmware in grub-install.
- Support Yeeloong 3A.
- Add `cpuid --pae' option to detect Physical Address Extension on x86.
- Support for USB debug dongles.
- Support for *-emu on all platforms (previously only i386/x86_64 worked).
- Support *-emu on Windows.
- Security:
- Add optional facility to enforce that all files read by the core image from disk have a valid detached digital signature.
- Performance:
- Avoid costly division operations in many places.
- New boot time analysis framework (`./configure --enable-boot-time').
- Initialise USB ports in parallel.
- New `testspeed' command to test file read speed.
- Speed-up gfxterm by storing intermediate results in more compact format.
- Lazy LVM/mdraid scan.
- Disk hints.
- Scripting:
- New `eval' and `tr' commands.
- grub-script-check fails on scripts containing no commands.
- Installation and other utility improvements:
- Add option to compress files on installation or image creation.
- Using grub-reboot no longer requires setting `GRUB_DEFAULT=saved'.
- Support probing EFI System Partition (requires os-prober >= 1.58).
- Fix inconsistent use of `GRUB_CRYPTODISK_ENABLE' and `GRUB_ENABLE_CRYPTODISK'; the latter is now used consistently.
- grub-mount handles symbolic links to directories.
- Support disabling submenus with `GRUB_DISABLE_SUBMENU' configuration key for grub-mkconfig.
- grub-install, grub-mknetdir, grub-mkrescue, and grub-mkstandalone rewritten in C. They should now work in supported non-Unix-like environments.
- Native mingw support.
- Ability to install on EFI under windows.
- Reorganise timeout handling using new `timeout_style' environment variable and `GRUB_TIMEOUT_STYLE' configuration key for grub-mkconfig. Menu hotkeys pressed during a hidden timeout now boot the corresponding menu entry immediately.
- New `file' command and grub-file utility to check file types.
- New syslinux configuration file parser.
- Build system:
- Remove all uses of nested functions; GRUB no longer requires an executable stack.
- Fix documentation build with Texinfo >= 5.1.
- More robust and documented cross-compiling support.
- Partial clang support for some platforms (experimental).
- Partial mingw64 x86_64-efi compile support (highly experimental).
- Partial mingw32 i386-(other than already present i386-pc) compile support (highly experimental).
- Support for grub-mkpasswd on Windows.
- Eliminate the use of AutoGen. This allowed some performance improvements to the build system.
- Remove variable length arrays.
- OpenBSD compile and tools support (NetBSD and FreeBSD were already supported).
- Fix build with FreeType >= 2.5.1.
- Make gentpl.py compatible with Python 3. It now requires at least Python 2.6.
- modinfo.sh contains build information now.
- Added many new tests to improve robustness.
- Revision control moved to git.
New in GNU GRUB 1.99 (May 16, 2011)
- Keyboard layouts support.
- Parser for GRUB Legacy configuration files.
- Extend `vbeinfo' and `vbetest' commands to non-VBE graphics, as `videoinfo' and `videotest'.
- New `lsefisystab', `lssal', and `lsefimmap' commands on EFI platforms.
- Support explicit user claim that a device is BIOS-visible. Devices listed in device.map will be assumed to be readable using only BIOS facilities, rather than anything more complex such as LVM or RAID.
- New bash-completion script for GRUB utilities.
- Use ACPI to shut down if possible.
- New `lsacpi' command.
- New `--boot-directory' option to `grub-install', `grub-reboot', and `grub-set-default', with clearer semantics than the previous `--root-directory' option.
- Rename CD-ROM device to "cd" on BIOS platforms.
- Transparent decompression filters.
- Simpler PXE image generation. New `grub-mknetdir' utility to generate netboot directory trees.
- New relocator. Allows for more kernel support and more straightforward loader writing.
- Handle USB pendrives exposed as floppies.
- New Automake-based build system.
- Add `sendkey' command (i386-pc only).
- Support 1.x versions of mdadm metadata.
- Fix corruption when reading Reiserfs directory entries.
- Bidirectional text and diacritics support.
- Change grub-mkdevicemap to emit /dev/disk/by-id/ names where possible on GNU/Linux.
- Add `grub-mkconfig' support for Xen with Linux.
- Add `grub-mkconfig' support for initrd images on Fedora 13.
- Support >3GiB and
New in GNU GRUB 1.98 (Mar 7, 2010)
- Multiboot on EFI support.
- Saved default menu entry support, with new utilities `grub-reboot' and `grub-set-default'.
- Unit testing framework.
- Support for multiple terminals.
- Encrypted password support, with a new utility `grub-mkpasswd-pbkdf2'.
- `grub-mkfloppy' removed; use `grub-mkrescue' to create floppy images.
- Add grub-probe support for GNU/Hurd.
- Add support for gettext.
New in GNU GRUB 1.97.1 (Nov 10, 2009)