Documentos de Académico
Documentos de Profesional
Documentos de Cultura
3 (7/6/2014):
----------------- Added new feature: Setting "timeout = -1" in refind.conf causes rEFInd to
immediately boot the default option UNLESS a keypress is in the buffer
when rEFInd launches. In that case, if the keypress corresponds to a
shortcut key, the associated boot loader is launched; or if not, the menu
is displayed.
- Added new icons for Clover boot loader and for Mythbuntu Linux
distribution.
- rEFInd now displays the partition's label, when one is available, when
offering a BIOS-mode boot option for a partition with no filesystem
driver. This works only on Macs doing BIOS-mode booting.
- Removed GPLv2 code from the FSW core files. This was done because the
Btrfs driver is derived from the GRUB Btrfs driver, which is licensed
under the GPLv3. Ironically, the GPLv2 and GPLv3 are incompatible
licenses, so ensuring that the Btrfs driver doesn't rely on GPLv2 code
was legally necessary. In most cases, I reverted to the original rEFIt
code, although I kept my own cache code; since I wrote it, I can
change its license to a BSD license.
- Fixed bug that caused rEFInd to unload drivers immediately after loading
them. This didn't affect rEFInd's own drivers because they didn't include
the unload hooks, but it did affect some other drivers.
- Changed default scan_all_linux_kernels setting from "false" to "true",
and commented the option out in refind.conf-sample. This should not
affect most people, since refind.conf-sample had this option commented
out, and most rEFInd users either use it that way or don't have Linux
kernels installed at all. I've made this change because I want rEFInd to
"do the right thing" by default in as many cases as possible. For a while
now, rEFInd has been excluding non-bootable files from its menu, and most
kernels "in the wild" now include the EFI stub. Thus, enabling this
support by default seems worthwhile. If you prefer to not scan Linux
kernels by default, simply uncomment the "scan_all_linux_kernels" line
and ensure it's set to "false".
0.8.2.1 (6/8/2014):
------------------- Removed stray bit of debugging code that caused a prompt to press a
key to appear at rEFInd startup.
0.8.2 (6/8/2014):
----------------- Changed behavior when default_selection is not set: It now boots the
previously-booted loader, assuming it's still available; if not, rEFInd
boots the first loader (as it does now). Behavior is unchanged if
default_selection is set. Note that this behavior depends on the ability
of rEFInd to store an EFI variable in NVRAM. It therefore fails on
systems with flaky NVRAM storage. You can view the previously-booted
loader in the
/sys/firmware/efi/efivars/PreviousBoot-36d08fa7-cf0b-42f5-8f14-68df73ed3740
variable under Linux.
- Added icon for Mageia Linux (os_mageia.png).
volumes. Unlike with EFI volumes, where the option you pass must exactly
match an entire volume name, when applied to legacy-boot volumes, it
matches any part of the description that appears beneath the item when
you select it in the rEFInd main menu.
- Can now boot in legacy mode from second (and probably later) hard disks!
- rEFInd now limits the length of the firmware name string shown in the
system information screen to 65 characters. This is done because at least
one EFI presents a longer string by default, and this causes the entire
information display to come up empty on 800x600 displays.
- rEFInd now uses the partition's name (as stored in the GPT data
structures) as a fallback for the filesystem's name if the latter can't
be found. Exceptions are if the partition name is one of three generic
names used by GPT fdisk: "Microsoft basic data", "Linux filesystem", or
"Apple HFS/HFS+". These are ignored in favor of the descriptive fallback
(e.g., "20 GiB Btrfs volume")
- It's now possible to specify a volume by partition GUID number in a
manual boot stanza. This should be more reliable (albeit also more
awkward) than using a filesystem number (such as fs0: or fs1:).
- Fixed memory-allocation bug that could cause error message displays,
and possibly hangs, when re-scanning boot loaders.
0.7.9 (4/20/2014):
------------------ Attempt to fix rEFInd perpetually re-scanning after ejecting a disc on
some Macs.
- Added check to remove redundant (or non-functional if Secure Boot is
active) kernel entries for Ubuntu, which is now including two versions of
kernels, one signed and the other unsigned.
- Fixed bug in install.sh that could cause it to display error messages
if the dmraid utility was not installed.
- The HFS+ driver now reports a correct volume name.
- Fixed some EFI filesystem driver bugs that could cause lockups under
some circumstances. These bugs could affect any of the filesystem
drivers.
- Added "gdisk" option to the "showtools" configuration file token. When
active, this adds gdisk.efi or gdisk_{arch}.efi, if present in the
EFI\tools directory, to the tools row.
- Fixed mistaken identification of the MOK utility as the "MOK utility
utility."
0.7.8 (3/9/2014):
----------------- Added "debian" directory to source, which facilitates creation of Debian
packages. Packages built in this way are built with GNU-EFI and don't run
any post-installation script, so although the rEFInd binaries are on the
hard disk, they aren't installed to be bootable; you must manually run
duplicate filesystem UUIDs. These are likely parts of RAID arrays and so
would have the same boot loaders or kernels as the first one with a given
UUID.
- Added feature in install.sh: Script now tries to locate and mount an ESP
in Linux, if it's currently unmounted.
- Fixed bug in mkrlconf.sh and install.sh that caused a stray line break
and PARTUUID= specification to appear in generated refind_linux.conf file
under some circumstances.
0.7.6 (12/15/2013):
------------------- Added support for multiple "default_selection" targets. These MUST be
comma-separated AND enclosed in quotes, as in:
default_selection "fred,ginger"
This example will launch "fred" by default if it's available; and if
it's not, rEFInd will attempt to launch "ginger" as the default.
- Added support for time-sensitive "default_selection" setting. This token
may now have either one or three options. If one, it's interpreted as it
has been in the past, as setting a default that's independent of times.
If you follow this default by two times, however, those are interpreted
as the start and end times (in 24-hour format) for a default setting. For
instance, "default_selection foo 8:00 17:00" causes foo to be the default
from 8:00 (AM) to 17:00 (aka 5:00 PM). You can include multiple
"default_selection" lines to set different defaults for a variety of
times. If they're in conflict, the last one takes precedence. Note that
times are hardware clock's native value, which may be local time or UTC,
depending on your computer.
- Added support for a blank-screen startup: Set "screensaver -1" and the
screen saver will be initialized when rEFInd starts. If you set a low
"timeout" value, the result will be a boot straight to the default OS
unless you hit a key soon after rEFInd starts. Once you hit a key, the
screensaver will be disabled.
- Added --ownhfs {target} option to install.sh. This option causes rEFInd
to install to an HFS+ partition in a way that's more consistent with the
way the Mac's native boot loader is installed. Note that you should NOT
install to an already-bootable partition with this option, since it will
overwrite the existing boot loader, which would render OS X unbootable.
0.7.5 (11/10/2013):
------------------- Fixed bug that caused unbootable exFAT partitions to show up as
bootable on Macs with BIOS/CSM/legacy boot options enabled.
- Fixed bug in install.sh that caused installs to the ESP on recent
versions of OS X to fail.
- Fixed bug that caused rEFInd to hang on some Macs when multiple EFI
drivers were present.
- Fixed bug that caused clear to default gray screen when launching OSes
with 'use_graphics_for' enabled, even when the rEFInd background is not
gray. Now rEFInd clears to the same background color used in its menu.
When launching OS X, though, the OS X boot loader will itself clear to
too big. Note that "too big" can be substantially smaller than the screen
resolution!
0.6.4 (1/8/2013):
----------------- Revised install.sh to copy ext2fs driver, rather than ext4fs driver, for
ext2/3 filesystems. This can help keep non-functional entries from links
from /vmlinuz to /boot/vmlinuz out of the menu if the system uses ext4fs
on root and ext2fs or ext3fs on /boot.
- Fixed a couple of memory management bugs that cause rEFInd to hang at
startup on some systems.
0.6.3 (1/6/2013):
----------------- Added the ability to specify a volume name or number in the
"dont_scan_dirs" and "also_scan_dirs" tokens.
- Fixed a bug that caused removable EFI media to not appear in scan lists
if rEFInd was installed as EFI/BOOT/boot{arch}.efi on a hard disk.
- Modified ISO-9660 driver so that it can handle discs with other than
2048-byte sectors. This makes it useful for reading "hybrid ISO" images
burned to USB flash disks.
- New mvrefind.sh script to move a rEFInd installation between a standard
location (typically EFI/refind) and one of the fallback locations
(EFI/BOOT or EFI/Microsoft/Boot). It can also do more exotic locations.
- The install.sh script now installs to EFI/BOOT/bootx64.efi or
EFI/Microsoft/Boot/bootmgfw.efi if it's run in BIOS mode. This is
intended to give some chance of producing a bootable installation should
a user accidentally install Linux in EFI mode and then install rEFInd
from that installation.
- The install.sh script now tries to find an existing rEFInd installation
and upgrade it, even if it's in EFI/BOOT or EFI/Microsoft/Boot rather
than in EFI/refind.
- New "--yes" option to install.sh to help with unattended or automated
installations (as from an RPM or Debian package).
0.6.2 (12/30/2012):
------------------- Inclusion of a sample refind.spec file for the benefit of RPM
distribution maintainers who might want to include rEFInd. It's a bit
rough, but it gets you a good chunk of the way there....
- The EFI filesystem drivers can now be built with the GNU-EFI toolkit as
well as with the TianoCore EDK2. See the BUILDING.txt file for details on
how to build them with either toolkit. This improvement doesn't affect
users of my binary packages, but it should make it easier for Linux
distributions to adopt rEFInd into their package systems.
- Tweaked refind.inf file for better build results using "native" TianoCore
EDK2 build process (vs. the Makefile-based build process that I use under
Linux). This won't affect those who use my binary builds or build under
- Added support for using Matthew Garrett's Shim program and its Machine
Owner Keys (MOKs) to extend Secure Boot capabilities. If rEFInd is
launched from Shim on a computer with Secure Boot active, rEFInd will
launch programs signed with either a standard UEFI Secure Boot key or a
MOK. For the moment, this feature works only on x86-64 systems.
- Added new "dont_scan_files" (aka "don't_scan_files") token for
refind.conf. The effect is similar to dont_scan_dirs, but it creates a
blacklist of filenames within directories rather than directory names.
I'm initially using it to place shim.efi and MokManager.efi in the
blacklist to keep these programs out of the OS list. (MokManager.efi is
scanned separately as a tool; see below.) I've moved checks for
ebounce.efi, GraphicsConsole.efi, and TextMode.efi to this list. (These
three had previously been blacklisted by hard-coding in ScanLoaderDir().)
- Added the directory from which rEFInd launched to dont_scan_dirs. This
works around a bug in which rEFInd would show itself as a bogus Windows
entry if it's installed as EFI/Microsoft/boot/bootmgfw.efi.
- Added support for launching MokManager.efi for managing the Machine Owner
Keys (MOKs) maintained by the shim boot loader developed by Fedora and
SUSE. This program is scanned and presented as a second-row tool.
- Added support for Apple's Recovery HD partition: If it's detected, a new
icon appears on the second row. This icon can be removed by explicitly
setting the "showtools" option in refind.conf and excluding the
"apple_recovery" option from that line.
- Fixed bug that caused text-mode ("textonly" refind.conf option enabled)
menu entries to be right-aligned rather than left-aligned when rEFInd was
compiled with the TianoCore EDK2.
- Added "--usedefault {devicename}" and "--drivers" options to the
install.sh script and changed the "esp" option to "--esp".
0.4.7 (11/6/2012):
------------------ Added an icon for gummiboot.
- Added a boot option editor: Pressing the Insert or F2 key from a boot
tag's options menu opens a simple text-mode line editor on which the boot
options may be edited for a one-time boot with altered options.
- Modified the "scan_delay" feature to delay and then perform a re-scan,
which may work better than the first attempt at this feature (which I'm
told isn't working as planned).
- Modified rEFInd to add a space after the command-line options only when
launching Mac OS X. On some early Macs, the extra space (which had been
present by default, as a carryover from rEFIt) causes problems when
booting Linux kernels from FAT partitions.
0.4.6 (10/6/2012):
------------------ Fixed some minor memory management issues.
- Added new "scan_delay" feature to impose a delay before scanning
for disks.
- Changed default "scanfor" option from internal-external-optical to either
internal-external-optical-manual (for non-Macs) or
internal-hdbios-external-biosexternal-optical-cd-manual (for Macs). I've
done this for two reasons:
- Many Mac users have been confused by the fact that rEFInd needs
reconfiguration to detect Windows (or Linux installed in BIOS mode),
since rEFIt scans BIOS devices by default. Adding the BIOS options as
default for them should help them.
- Adding the "manual" option enables users to simply add manual boot
stanzas and have them work, which is more intuitive. Adding the
"manual" option will have no effect unless manual stanzas are created
or uncommented, so this part of the change won't affect users' working
default configurations.
- Added new legacy (BIOS) boot support for UEFI-based PCs.
0.4.5 (8/12/2012):
------------------ Fixed bug that caused a failure to boot BIOS-based OSes on Macs.
- Fixed bug in install.sh that caused it to fail to detect rEFItBlesser.
0.4.4 (6/23/2012):
------------------ Fixed bug that caused filesystem labels to be corrupted by rEFInd on
32-bit systems.
- Fixed bug that caused filesystem labels to be truncated in the drivers
on 32-bit systems.
- Fixed bug in use_graphics_for option parsing that caused most options
to set graphics mode for OS X and/or Linux but not other boot
loaders/OSes.
- Tweaked install script to better isolate the ESP under OS X.
0.4.3 (6/21/2012):
------------------ rEFInd now supports compilation using the TianoCore UDK2010/EDK2
development kit in addition to GNU-EFI.
- Added new "use_graphics_for" option to control which OSes to boot in
graphics mode. (This effect lasts for a fraction of a second on most
systems, since the boot loader that rEFInd launches is likely to set
graphics or text mode itself.)
- Graphics-mode booting now clears the screen to the current rEFInd
background color (rather than black) and does NOT display boot messages.
The intent is for a smoother transition when booting OS X, or perhaps
other OSes that don't display boot loader messages. In practice, this
effect will be tiny for many OSes, since the boot loader generally clears
the screen within a fraction of a second of being launched; but the
"flicker" of a rEFInd message in that time can sometimes be distracting.
- Filesystem drivers now work on EFI 1.x systems, such as Macs.
- Added new feature to eject CDs (and other removable media): Press F12 to
eject all such media. This function works only on some Macs, though (it
relies on an Apple-specific EFI extension, and this extension isn't even
implemented on all Macs, much less on UEFI-based PCs).
- Fixed a problem that could cause GRUB 2 to fail to read its configuration
file when launched from rEFInd.
0.3.5 (5/15/2012):
------------------ Removed the GRUB 2 detection "reciped" added with 0.3.2, since I've
received reports that it's not working as intended.
- Added re-scan feature: Press the Esc key to have rEFInd re-read its
configuration file, tell the EFI to scan for new filesystems, and re-scan
those filesystems for boot loaders. The main purpose is to enable
scanning a new removable medium that you insert after launching rEFInd;
however, it can also be used to immediately implement changes to the
configuration file or new drivers you load from an EFI shell.
- Fixed a bug that could cause the scroll-right arrow to be replaced by the
scroll-left arrow under some circumstances.
0.3.4 (5/9/2012):
----------------- Added new configuration file option: "icons_dir", which sets the name
of the subdirectory in which icons are found. See the documentation or
sample configuration file for a full description.
- Modified Makefile to generate rEFInd binary that includes architecture
code -- refind_ia32.efi or refind_x64.efi, rather than the generic
refind.efi. This is done mainly to help the install.sh script. The
program can be named anything you like on the disk. (The generic name
refind.efi is used on unknown architectures.)
- Improved install.sh script: Fixed bug on OS X 10.7 and enable it to be
used after building from source code (or via new "make install" Makefile
target).
- Improved screen redraws to produce less flicker when moving among the
second-row tags or to the last tag on the first row.
0.3.3 (5/6/2012):
----------------- Improved menu navigation:
- In graphics mode, left & right arrow keys move left & right, while up &
down arrows move between rows.
- Page Up and Page Down now move through chunks of visible tags (in both
text & graphics modes), jumping from one row to another only when at
the edge of the row. In text mode, the "rows" are broken down as in
graphics mode, but they aren't visibly distinguished on the screen.
- Improved text-mode use: rEFInd now displays the proper number of entries
when first started in text mode and scrolling is done sensibly when too
many entries exist to fit on the screen.
0.3.2 (5/4/2012):
----------------- Added the install.sh script to install rEFInd on Linux and Mac OS X
systems. This script must be run as root (or via sudo). It requires
no options, but on Mac OS X, passing it the "esp" option causes it
to install rEFInd on the computer's ESP rather than the default of the
currently OS X boot partition. (Under Linux, the default is to install to
the ESP.) Note that there may be some unusual cases in which this script
will fail to work.
- Does a better job of clearing the screen when launching OSes in text
mode.
- Added detection "recipe" for GRUB 2's BIOS Boot Partition.
- Fixed bogus detection of ESPs created by Linux's mkdosfs utility or
Windows as bootable partitions when "scanfor" includes BIOS scanning
options.
0.3.1 (4/27/2012):
------------------ Fixed bug that caused spurious "Unsupported while scanning the root
directory" messages under some conitions on Macs.
- Modified loader scanning code to sort boot loader entries within a
directory by modification time, so that the most recently-modified loader
is first among those in a given directory. Thus, if you specify a
directory name (or volume name, for loaders stored in the root directory
of a volume) as the default_selection, the most recent of those loaders
will be the default. This is intended to help with Linux kernel
maintenance when using the EFI stub loader; set up this way, the most
recent kernel copied to your kernel directory will be the default,
obviating the need to adjust the refind.conf file when adding a new
kernel. If you want to change the default among those in the default
directory, you can use "touch" to adjust the modification timestamp.
- Tweaked code to find loader-specific .icns file so
for Linux kernels without .efi extensions. In this
named the same as the kernels they match, but with
instance, bzImage-3.3.2 should have an icon called
(The old code would have looked for an icon called
- Eliminated bogus OS loader tags for filenames that end in ".icns" when
the scan_all_linux_kernels option is set.
0.3.0 (4/22/2012):
------------------ I'm officially upgrading this project's status from "alpha" to "beta" and
giving it a bump from 0.2.x to 0.3.0. This doesn't reflect any major
milestone with this version; rather, it reflects my sense that rEFInd has
been "out there" for a while, and although I've gotten bug reports,
they've been minor and/or have been fixed. The program still has known
bugs, but my impression is that it is, overall, usable by ordinary users.
- Added "resolution" option to refind.conf, which enables setting the video
resolution. To use it, pass two numeric values, as in "resolution 1024
768" to use a 1024x768 video mode. Note that not all modes are supported.
If you specify a non-supported video mode on a UEFI system, a message
appears listing the supported video modes and you must then press a key
to continue, using the default video mode (usually 800x600).
Unfortunately, I don't know the calls to get a list of supported video
modes on older EFI 1.x systems (including Macs), so on Macs setting an
incorrect video mode silently fails (you keep using the default mode).
This makes changing your video mode a hit-or-miss proposition on Macs.
CAUTION: It's possible to set a legal video mode that your monitor can't
handle, in which case you'll get a blank display until you boot an OS
that resets the video mode.
- Fixed (maybe) a bug that caused rEFInd to crash when returning from an
EFI shell or other programs on Macs, particularly when rEFInd used
graphical mode. I'm not 100% sure this bug is squashed because I still
don't understand the cause and I only have one Mac for testing. See
comments in the ReinitRefitLib() function in refit/lib.c for more
details.
- Added new refind.conf option: scan_all_linux_kernels, which causes Linux
kernels that lack ".efi" extensions to be included in scans for EFI boot
loaders. This may help integration with Linux distributions that don't
give their kernels such names by default. Beware, though: It can detect
unwanted files, such as older non-stub-loader kernels or .icns files used
to give kernels with .efi extensions custom icons.
- Improved EFI boot loader detection on boards with Gigabyte's Hybrid EFI,
and perhaps other EFIs with a buggy StriCmp() function. Files with both
".efi" and ".EFI" extensions should now be detected as boot loaders.
- Fixed a bug that caused rEFInd to fail to scan for drivers if the
filesystem driver didn't set a volume name (that is, if the relevant
field was set to NULL rather than even an empty string). In such
situations, rEFInd now reports the volume name as "Unknown".
0.2.7 (4/19/2012):
------------------ After much trial and tribulation, I've overcome a GNU-EFI limitation and
enabled rEFInd to load EFI drivers. This feature was present in the
original build of rEFIt but was removed in the versions that could
compile under Linux, but now it's back -- and still being compiled under
Linux! To use it, you should place your drivers in a convenient directory
on the ESP (or whatever partition you use to launch rEFInd) and add a
"scan_driver_dirs" entry to refind.conf to tell rEFInd where to look. (As
always, you should specify the driver directory relative to the root of
the filesystem.) Note that you can't launch drivers from another
filesystem; they must be on the same volume that holds rEFInd. Those who
compile from source code should note that implementing this feature
necessitated using a more recent version of the GNU-EFI library. I'm
currently using version 3.0p, and version 3.0i does NOT work. I don't
know where the change occurred, but you may need to upgrade your GNU-EFI
installation.
- Fixed bug that caused rEFInd to show up in its own menu sometimes.
- Added new refind.conf token: also_scan_dirs. When scanning volumes for
EFI boot loaders, rEFInd always scans the root directory and every
subdirectory of the /EFI directory, but it doesn't recurse into these
directories. The also_scan_dirs token adds more directories to the scan