NEWS - list of user-visible changes between releases of GRUB

New in 0.97 - 2005-05-08:
* Fix the prototypes and the definitions of nested functions. This was
  required for gcc-4.
* Implement a more robust workaround for buggy BIOSes which don't pass
  boot drive correctly (notably for HP Vectra).

New in 0.96 - 2005-01-30:
* The command "fallback" supports mutiple fallback entries.
* The command "savedefault" supports an optional argument which
  is the number of next boot entry or the special keyword `fallback'.
* New utility "grub-set-default".
* New section "Making your system robust" in the manual.

New in 0.95 - 2004-06-13:
* Add support for ReiserFS 3.
* Fix support for FreeBSD 5.
* Support ATARAID for Linux in the grub shell and grub-install.
* Add CDROM support for El Torito with no emulation mode. You can use
  (cd) as a CDROM drive in the config file.
* Option --no-mem-option is implied for Linux 2.4.18 and newer.
* Add support for UFS2.

New in 0.94 - 2004-01-25:
* Support building on x86-64 with gcc -m32.
* Use a BIOS call to turn on/off Gate A20. This should solve various
  problems related to Gate A20 in modern BIOSes.
* Add a workaround for buggy BIOSes (notably HP Vectra series) which
  don't pass the boot drive correctly.
* Display "GNU GRUB" instead of "GRUB" in the menu.
* Add support for QNX RTP into the grub shell.
* Add support for the initrd max address of a kernel header in Linux.
* Support 32 bit and 64 bit dev_t.
* Add support for an install device in GRUB's notation with no
  parenthesis (e.g. grub-install hd0).
* Improve the manual a lot.

New in 0.93 - 2002-12-08:
* Define the behavior of the boot loader when the load end address is
  zero and the bss end address is zero in the Multiboot Specification.
  Also, add the support into GRUB.
* Finally, we have a Bug Tracking System! Now the preferable way to
  report bugs is to use the BTS rather than sending e-mail to bug-grub.
  See <http://bugcomm.enbug.org/?project=grub&mode=project>, for more
  details.
* The appendix "FAQ" in the manual is removed. See the GNU GRUB FAQ on
  the web <http://www.gnu.org/software/grub/grub-faq.html> instead.
* The terminal handling code is rewritten radically, and many bugfixes
  are made at the same time.
* The command "color" is effective even in the command-line.
* The command "terminal" takes two new options, ``--no-echo'' and
  ``--no-edit''. If you specify ``--no-echo'', GRUB won't echo back
  input characters. If you specify ``--no-edit'', GRUB will disable the
  BASH-like editing feature. These options are useful when using an
  intelligent terminal (such as the comint mode in GNU Emacs).
* The utility ``grub-md5-crypt'' prompts to retype a password and checks
  if the passwords match.
* Support for booting Linux is rewritten, so GRUB now supports
  large-EBDA systems.
* The menu interfaces supports Page Up, Page Down, and Right Key.
* New command "terminfo", for vt100-incompatible terminals.
* New options, ``-D'', ``-g'' and ``-m'' are supported for FreeBSD.

New in 0.92 - 2002-04-30:
* The command "displaymem" uses only hex digits for consistency.
* The netboot code goes back to the progress bars instead of dots, for
  the notation of data transfers. And, that is displayed only in debug
  mode, that is to say, nothing is displayed by default. Remember that
  you can turn on debug mode via the command "debug".
* The command "help" doesn't show all the available commands by default,
  when no argument is specified. Rarely used commands (such as
  "testload") and useless commands in interactive use (such as
  "savedefault") are hidden. If you want to see help messages for those
  commands, specify the new option "--all".
* A built-in, `more'-like pager is added. When a command prints too many
  lines to fit the screen, GRUB waits until you hit return key. This
  feature can be turned off by the new command "pager".
* The command "terminal" accepts a new option, "--lines=LINES". You can
  set the maximum number of lines arbitrarily with this option. If you
  don't specify it, the maximum number will be 24.
* The command "terminal" accepts another new option, "--silent". You can
  suppress the "Press any key to continue" message with this option.
* The mem= option for Linux is recognized and used to limit the maximum
  address of initrd.
* A fallback entry is executed immediately after a default entry,
  without prompting a user's intervention, as the manual has ever been
  saying.
* The utility ``grub-install'' makes sure that GRUB images have been
  written to a physical disk completely. To assist this feature, a new
  command "dump" is added.

New in 0.91 - 2002-01-21:
* Support for Linux DAC960 is added.
* JFS and XFS support is added.
* The commands "hide" and "unhide" support logical partitions.
* The utility ``grub-install'' supports NetBSD.
* The network support is updated to Etherboot-5.0.5.
* The manner of handling the preset menu changes. In the previous
  implementation, the preset menu is used only when opening the
  configuration file failed. Now try to use the preset menu first. And,
  if the configuration file is available, it is read after readoing the
  preset menu. In this case, menu entries in the preset menu (if any)
  are overrided by the configuration file.
* Diskless support is a bit changed. In the previous, GRUB set up a
  network automatically via a special function. In the current, the
  function is gone and the preset menu feature is used (i.e. just
  execute the command "bootp" as if you specified it in the preset
  menu). This has no impact against most users, but you should take care
  if using the preset menu for your own purpose, because GRUB doesn't
  call "bootp" implicitly when the preset menu is used explicitly. In
  this case, you would probably need to insert commands to initialize a
  network into your preset menu.
* Important bugfixes are made for ReiserFS, APM, TFTP, LBA, etc.

New in 0.90 - 2001-07-11:
* The command "setkey" resets key mappings, when no argument is
  specified.
* Linux devfs support is added.
* The utility ``grub-install'' accepts a new option, `--recheck'. If
  this option is specified, probe a device map, even if it already
  exists. You should use this option whenever you add/remove a disk.
* The command "password" supports a md5 password if the option `--md5'
  is given.  This command can now also be used to protect specific menu
  items with their own passwords.
* New command, "displayapm".
* New command, "md5crypt".
* The new utility ``grub-md5-crypt'' is a frontend of the grub shell. It
  encrypts a password in MD5 format.
* New commands, "testvbe" and "vbeprobe".
* The configure script accepts a new option, `--enable-preset-menu'. You
  can embed an arbitrary configuration which will be used when Stage 2
  cannot open a real configuration file, with this option. The argument
  must be an existing file.
* EZ-BIOS support is added.
* Booting Windows from a logical partition is supported.
* The example Multiboot kernel in the directory "docs" is built, if you
  specify the option `--enable-example-kernel' to the configure script.
* New command, "ifconfig".
* Linux software RAID support is added (only for RAID-1).
* Hercules support is added.
* The configure script now accepts `--disable-auto-linux-mem-opt', which
  has the same meaning as you specify the option `--no-mem-option' to the
  command "kernel".
* Jump to the physical entry address of a Multiboot kernel when booting
  it up. The old behavior was to use the virtual one, regardless of the
  setting of the physical address.
* The commands "bootp" and "dhcp" accepts a new option
  `--with-configfile', so that you can load a remotely specified
  configuration file automatically, like the network boot images.
* VSTa filesystem support is added.
* ELF symbol loading support is added.

New in 0.5.96 - 2000-10-04:
* New commands, "reboot" and "halt".
* New command, "hiddenmenu". You can hide the menu interface by default
  with this command.
* You can specify `--no-mem-option' to the command "kernel", if you want
  GRUB not to pass a Linux's mem option automatically.
* Now GRUB is compliant with the Linux/i386 boot protocol version 2.02.
* The network support is updated to Etherboot-4.6.4.
* Symlinks in ReiserFS are supported.
* Add a workaround into the grub shell, so that it works fine even under
  Linux 2.4.
* Add a new option `--stage2' into the commands "install" and "setup",
  to let the grub shell know what the file name of Stage 2 is under your
  operating system. You must specify the option correctly, if you cannot
  unmount the partition where GRUB images reside. We'd recommend _not_
  using those commands directly, but using the utility "grub-install"
  instead, because this is safer.
* One violation against the Network Boot Image Proposal was found and
  fixed. So now the image `nbgrub' can work fine even with a card such
  as rtl8139.
* Serial terminal support is added. The configure script accepts
  a new option `--disable-serial'. Unless it is specified, you can use
  two new commands, "serial" and "terminal" in the command-line and the
  menu. See the manual, for more details.
* Preserve the possible magic number used by Windows NT in a MBR.
* The command-line interface is switched to single-line editing mode.
* Only for developers: the configure script accepts
  `--enable-serial-speed-simulation', which is useful when you want to
  simulate the speed of a serial device on a psuedo terminal.
* Also only for developers: you can specify an optional argument to the
  option `--hold' for the grub shell. The argument means how many
  seconds the grub shell should wait until diving into the main routine.
* New command, "savedefault". Now you can save current entry number to
  your disk with this command and then you can set the default boot
  entry to it by the command "default saved".
* Add a new option `--prefix' into the command "setup", so that you can
  specify the name of a directory which contains GRUB images. And, the
  behavior of this command changed slightly, that is, this command now
  searchs stage1 automatically under "/boot/grub" and "/grub", unless
  you specify the option `--prefix'.
* The utility `grub-install' recognizes a separate boot partition
  automatically.
* New commands, "partnew" and "parttype". You can modify partition
  tables with these commands.

New in 0.5.95 - 2000-06-27:
* NetBSD ELF kernel support is added. You have to specify the new option
  to the command "kernel". See below.
* Added a new option `--type=TYPE' into the command "kernel". This
  option suggests what type of kernel you want to load. TYPE must be
  either of "netbsd", "freebsd", "openbsd", "linux", "biglinux" and
  "multiboot". Actually, this option will be necessary only if you want
  to load a NetBSD ELF kernel, because GRUB can automatically determine
  a kernel type in the other cases.
* ReiserFS support is added.
* Added a new option `--force-lba' into the command "install". This
  option disables some sanity checks for LBA mode (but not all). If you
  are sure that your machine supports LBA mode but GRUB doesn't work in
  LBA mode, you should specify it. It is necessary if your BIOS is too
  buggy. In the previous version, it was a compile-time option, but you
  don't have to recompile GRUB any longer.
* Likewise, now the command "setup" and the script "grub-install" also
  accept `--force-lba' option. Specifying this option to "setup" or
  "grub-install" has the same effect as to the command "install".
* The configure script doesn't accept the option
  `--disable-lba-support-bitmap-check' any longer. Use the option above.
* The network support is updated to Etherboot-4.6.1. So now we have
  3Com59x and DEPCA drivers.
* Now you can omit the configuration file argument to the command
  "password". If you omit it, then GRUB will just unlock privileged
  instructions (such as `c') when you enter a correct password.
* The new command "lock" can be used to prevent end-users from executing
  arbitrary menu entries. This command will emit an error until the user
  enters a correct password.
* Recognize the Linux extended partition type.
* Pass a correct memory size to Linux and *BSD.
* Diskless support is added. Now configure accepts --enable-diskless,
  and "make" will produce two additional images, ``nbgrub'' for Net Boot
  Image Proposal and ``pxegrub'' for Preboot Execution Environment. See
  the documentation, for more details.
* The command "tftpserver" overrides a TFTP server address returned by a
  BOOTP server, a DHCP server or a RARP server.
* Fix a serious bug about LBA support. It is possible that you don't
  disable the LBA support bitmap check any longer. Please send a report,
  if you must still disable it. We need to know if we should get rid of
  the option.

New in 0.5.94 - 2000-03-06:
* Stage 1 supports both the LBA mode and the CHS mode.
* The NetBSD and OpenBSD boot bug is fixed.
* The more automatic installation command "setup" is added.
* The command "embed" embeds a Stage 1.5 in the sectors after a MBR.
* Support symbolic color name syntax in the command "color".
* The grub shell loads the BIOS drive mapping information from a device
  map file if it is specified and can be opened. If not found, try to
  create it based on the guessed information.
* NetBSD support in the grub shell is improved.
* A simple checker for the format of a Multiboot kernel, ``mbchk'', is
  added.
* The command "find" searches for a filename in all devices and print
  the list of the devices which contain the file.
* The command "map" maps a drive to another drive so that we can
  chain-load some foolish operating systems (such as DOS) even if such
  an operating system resides at a non-first drive.
* The command "setkey" maps a key to another.
* The GRUB manual is rewritten, and now consists of three parts and
  appendices.
* The command "ioprobe" detects what I/O ports are used for a BIOS
  drive.
* OpenBSD support in the grub shell is improved.
* The command "install" can now patch a Stage 2 with a different
  filename from "/boot/grub/menu.lst" even if a Stage 1.5 is used.
* New program, ``grub-install''.
* The command "blocklist" prints the blocklist notation of a file.
* The command "chainloader" now accepts an option "--force", which is
  required if you want to chain-load a boot loader defective in the
  signature, such as SCO Unixware 7.1.
* The netboot support is heavily rewritten, based on Etherboot-4.4.3.
  Most of the device drivers are stolen from it, so we now have many
  network drivers. See netboot/README.netboot for more details.
* Now configure accepts the option `--disable-lba-support-bitmap-check'
  to ignore an incorrect LBA support bitmap returned by a buggy BIOS. If
  you are sure that your BIOS does support LBA mode but GRUB doesn't
  work in LBA mode, recompile GRUB with this option specified. You can
  check if GRUB accesses a drive in LBA mode by the command "geometry".
* New commands "bootp", "dhcp" and "rarp" can be used to initialize a
  network device and get IP addresses from a network.
* Long filename support in the FAT filesystem is added.
* The command "cmp" compares each bytes in two files.

New in 0.5.93 - 1999-10-30:
* ELF format of FreeBSD kernel is supported.
* Support the partition ids for NetBSD and OpenBSD.
* Exit from the grub shell just by pushing the key `q' in the menu.
* New options for configure can disable some functions in Stage 2. See
  the output from `configure --help' for more information.
* FAT32 support is added.
* Minix fs support is added.
* New commands "hide" and "unhide".
* The character `=' after a command is not necessary any longer, but it
  is supported for backward compatibility.
* The command "help" displays helpful information about builtin
  commands.
* The command "geometry" displays the information of a drive specified
  and set the geometry to arbitrary C/H/S values if the optional
  arguments are used.
* The command "configfile" loads a configuration file interactively.
* The command "device" assigns a BIOS drive to an arbitrary filename in
  the grub shell.
* The option `--no-floppy' force the grub shell to assume that there is
  no floppy, and the option `--probe-second-floppy' enables the probe of
  the second floppy drive.
* Integrated the netboot support in the Dresden version of GRUB.
* FreeBSD support in the grub shell is improved.
* Killing (C-u and C-k), yanking (C-y) and manipulating the history
  (C-p and C-n) are supported.
* The address argument for the command "install" is now optional.
* Better completion support.
* The command "cat" displays the contents of a file.

New in 0.5.92 - 1999-07-26:
* Bug fixes (i.e. Stage 1.5 can work fine again).
* The /sbin/grub stage2 simulator now works at least on GNU/Linux, and
  uses the Linux HDIO_GETGEO ioctl to determine hard disk geometry.
* TAB not only lists filenames, but also completes a filename when the
  filename is unique.
* Password is not echoed back, put an asterisk for each of input
  characters.
* stage2_debug is removed, and the debugging features are added into
  stage2.
* Color menu support.
* New command "quit".
* The man page for /sbin/grub.
* All documents become Texinfo.
* Linux video mode selection is supported.
* The new Stage 1 `stage1_lba' supports LBA addressing mode.

New in 0.5.91 - 1999-03-14, Gordon Matzigkeit:
* LBA and preliminary AWARD BIOS disk extension support.
* Started docs/grub.texi.
* /sbin/grub GUI now works (but it doesn't yet access disks properly).
  Run `configure --enable-sbin-grub' to build this program in the grub
  subdirectory.

New in 0.5.90 - 1999-03-01, Gordon Matzigkeit:
* Bug fixes.
* GRUB understands symlinks on ext2fs (but still not ffs).
* Many source code and build cleanups to comply with GNU standards.

New in 0.5 - 1998-08-20, Erich Boleyn:

* Improved error messages in the stage1 to be strings (easier to read
  than the previous case of single characters), and removed any
  display in the case of no error (less confusing).

* New document describing error conditions and messages.

* Improved configure/build process.

* Made the early bootup interrupt-safe.  Wasn't doing cli/sti when
  necessary sometimes.

* GRUB now shuts off the floppy before transferring control to any
  other programs/modules/loaders.  (chain-loading doesn't matter here,
  just loading 32-bit modules/kernels)

* Fixed a few stupid bugs, including a several in the ext2fs code.

* Linux boot format support extended from just "zImage" to include
  "bzImage" and initial ramdisk (also called "initrd") support for
  both.  "initrd" support is untested, but the critical parts were
  taken from a supplied patch and seem OK.

* Several new command features.  See the command-listing for details.

New in 0.4 - 1998-03-19, Erich Boleyn:

* GRUB now correctly points ES:SI at a partition descriptor when
  chain-loading.

* Many minor bugs fixed (some in the build scripts).

* Intel MPS 1.4 config/check code is totally new, and the "syscmd="
  command is completely removed.  Check command-listing for details.

Version 0.4-pre, Erich Boleyn:

* Reorganized docs, moved most "NOTE" items to a FAQ (with new entries
  as well).

* Now supports automatic decompression of any files loaded via the
  GRUB stage2 filesystem code.  Simply compress the file using GNU
  gzip normally, then when loading, the GRUB internals will see the
  contents in the decompressed state...  i.e. all GRUB functions
  operate normally as if it is the uncompressed file.  An extra
  version of the "module" loading function has been added which
  disables this functionality if desired (in all the other cases, not
  decompressing doesn't make sense).

* Changed device strings used in filesystem code to more logical
  format.  Added "relative" disk and partition capability, see
  command-listing and filesystem syntax description for details.

* "install=" command vastly improved.  Also moved to non-debug area.
  Check command-listing and install documentation for details.

* Added several new commands: "rootnoverify=", "uppermem=", and a new
  debug command "displaymem".  Check command-listing for details.

* Added versioning numbers (and subsequently broke compatibility with
  some of the previous code, so GRUB should be re-installed!).

* Added unattended booting support via new "fallback=" command.

* During debug probe of SMP configuration table compatible with Intel
  MPS 1.4 standard, GRUB now checks for a pointer in the EBDA.

* Using a "default=" entry greater than 11 caused the UI to do funny
  things (it didn't pre-scroll the list to the appropriate place).

* Reading files on FAT floppies had yet more problems related by many
  users of version 0.3 6/17/96.  Again, all known problems fixed.

* "Extended" partitions now work (still cannot make an extended
  partition active with "makeactive" command).

* The build environment is greatly simplified, now using an
  autoconf-like "configure" script.

New in 0.3-19960617 - 1996-06-17, Erich Boleyn:

* Yet more documentation improvements.

* Known bugs in floppy operation fixed (12-bit FAT didn't work for
  most cases, and inserting other floppies didn't flush the filesystem
  cache).

* NASTY uninitialized pointer bug causing "raw" floppy operation to
  crash on several PCs is now fixed.  This seems to have been the root
  cause of all of the compatibility problems that have currently been
  observed.

* debug-mode command added to automate most difficult step of
  installation for common cases (new install method #4).

* Testing "mini-debugger" now merged with command-line when "DEBUG"
  defined in compile (no SYSDEBUG option anymore).  See description of
  commands in the command-line for details.

New in 0.3-19960602 - 1996-06-02, Erich Boleyn:

* Completed initial licenses.

* Initial filesystem documentation written.

* Block-list and FAT filesystems now work as documented (in
  particular, for the blocklist filesystem, shortcuts like "+1" for
  "0+1,512" now work correctly).

* Fixed several problems (old and new) in the various filesystems (for
  example, the ext2fs filesystem code is now much faster, as it caches
  some mapping blocks where it didn't at all before).  Filesystem
  semantics are much more uniform as well (symbolic links and reading
  a directory as a file now return errors where it would silently fail
  before).

* "makeactive" now works for standard PC partitions on hard disks (not
  extended partitions...  so any PC partition number above 3 will give
  a "no such partition" error).  If a BSD sub-partition is is used, it
  will ignore it, and only use the primary PC partition number.

New in 0.3-19960520 - 1996-05-20, Erich Boleyn:

* Updated instructions (though still very sparse).

* New floppy probe (works much like the Linux floppy boot probe)
  attempts to find the size of a floppy in a drive.  Might still need
  work!  Please try on various floppy drives with various media!

* New floppy handler will claim a non-existent drive if the floppy
  disk isn't present in the drive.  (for example, it won't be on the
  list of installed drives unless a floppy is present)

* Stage1 now compatible with both a hard disk MBR and the DOS BIOS
  parameter block (see "install/README" for more details on how this
  can be used).

* Block-list filesystem partially works, as described in the file
  "NOTES".  Loading an a.out or elf kernel won't work with it, but all
  other filetypes pretty much should.  (certainly chain-loading works
  OK)

  NOTE: you must use the full format "0+1,512" for just he first
  block...  no parameters can be implicit in this version.. THis is
  being fixed too.

* Linux ext2 filesystem works.  (it's very slow for big files, but
  this is being fixed)

* Linux boot type now supported.  Use a standard piggybacked image as
  with LILO.  Put in hack to support >64MB via GRUB placing the RAM
  size as the first item on the command-line automatically.  Must pass
  root partition on command-line using normal Linux syntax...  if not,
  it uses it's builtin root partition.

* Supports chain-loading.  For details, see "COMMANDS" and the
  examples directory.  (was able to boot DOS and Windows NT on my test
  box).  NOTE that the "root partition" must be set to work right.
  "makeactive" is currently a no-op.

* Several weird bugs fixed.  One important note: If you recompile, it
  will warn about a clash with builtin "strcmp".  This is normal...
  do NOT remove the strcmp definition, as then GCC will possibly put
  inline code from it's own builtin function in some places. (my
  strcmp has slightly different functionality, hence the problem)

* Mini-debugger is currently broken.

New in 0.2 - 1996-04-12, Erich Boleyn:

* Completely new menu-based UI.  See "COMMANDS" and the examples
  directory for details.  NOTE that the argument to a command must be
  preceded by a space between it and the '=', in both the config file
  and the command-line.  This will be fixed.

New in 0.1 - 1996-03-31, Erich Boleyn:

* Newer version of Multiboot Standard (version 0.6) supported.

* Autodetects kernel types.  Supports Multiboot, FreeBSD, NetBSD
  (Linux isn't finished).

* Stage 1.5 works now.  Default setup is now for working with a BSD
  FFS floppy loading "/grub/stage2" as the main bootloader.

* Filesystem support improved.  It didn't work on many floppies before
  (problem with the partition-detection code).

* Memory probe now supports arbitrary amounts of RAM (some technical
  limitations exist, see Multiboot standard version 0.6 for details).

* A mini-debugger is included by default, activated by hitting '~' on
  the command-line (it might interfere with things, but it seems OK
  for my alpha-testing).  The commands are in the function
  "enter_sysdebug" defined in "common.c".  If you have an Intel MPS-
  compatible machine, there are extra commands enabled for SMP cpu
  testing.  'q' exits and goes back to what you were doing before.

New in 0.0-19960206 - 1996-02-06, Erich Boleyn:

* Newer version of Multiboot Standard (version 0.4) supported.

New in 0.0-19951210 - 1995-12-10, Erich Boleyn:

* You can now perform TAB-based completion listing of any valid
  partially completed disk/partition/file-name combination.  Try it
  out to see what you like, examples are in the NOTES file under
  "Device completion".

* Fixed a bug causing the memory size routine to sometimes report
  ridiculous values.

* Fixed some documentation (what little there is :-/ and a few
  assembly bugs in the BIOS access routines that nobody reported yet,
  so I won't detail it here.