NEWS - list of user-visible changes between releases of GRUB New: * 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 QNX RTP into the grub shell. 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 , for more details. * The appendix "FAQ" in the manual is removed. See the GNU GRUB FAQ on the web 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.