]> code.delx.au - refind/blob - NEWS.txt
Add code to spoof OSX booting for other OSes (on Macs)
[refind] / NEWS.txt
1 0.9.3 (??/??/2015):
2 -------------------
3
4 - Worked around an EFI bug that affected my 32-bit Mac Mini: That system
5 seems to have a broken EFI, or possibly a buggy CPU, that causes some
6 (but not all) conversions from floating-point to integer numbers to hang
7 the computer. Such operations were performed only in rEFInd's
8 graphics-resizing code, and so would manifest only when icons or
9 background images were resized. My fix eliminates the use of
10 floating-point operations in the affected function, which eliminates the
11 crashes. There may be some degradation in the quality of resized images,
12 though, particularly on 32-bit systems. (64-bit systems use larger
13 integers, which enable greater precision in my floating-point
14 workaround.)
15
16 - Under OS X, install.sh can now be run from the recovery system. This may
17 help work around OS X 10.11's problems with System Integrity Protection,
18 since it should be possible to reboot into the recovery system to install
19 rEFInd without disabling SIP for the main installation, even for just one
20 boot.
21
22 0.9.2 (9/19/2015):
23 ------------------
24
25 - Added "--keepname" option to install.sh. This option causes install.sh
26 to keep refind_x64.efi named as such rather than rename it as grubx64.efi
27 when using Shim. This option is meaningful only if the --shim option is
28 also used. This option passes the refind_x64.efi filename as an option to
29 Shim, which overrides the default filename of grubx64.efi. A big caveat:
30 Only Shim 0.7 and later supports this feature. (Shim 0.4 also works if a
31 refind_x64.efi is referred to as "\refind_x64.efi" on the command line,
32 but the need for a leading backslash to refer to a file in the same
33 directory as Shim is so confusing and wrong that I cannot in good
34 conscience support it.) I've not seen signed Shim binaries between 0.4
35 and 0.7, so I don't know if any of them might work.
36
37 - Implemented a workaround for a bug in Shim 0.8 that prevented
38 authentication of more than one binary. If any filesystem drivers were
39 installed, the first one would be verified, leaving rEFInd unable to
40 launch anything else unless it was signed by a key in the computer's main
41 Secure Boot db list.
42
43 0.9.1 (9/13/2015):
44 ------------------
45
46 - When rEFInd identifies the root (/) partition via the Freedesktop.org
47 Discoverable Partitions Specification, it now checks two of the
48 partition's attributes, as per the DPS (see
49 http://www.freedesktop.org/wiki/Specifications/DiscoverablePartitionsSpec/):
50 - The partition's read-only attribute determines whether to pass a "rw"
51 or "ro" option to the kernel.
52 - If the partition's do-not-automount flag is set, rEFInd will not pass
53 it as a "root=" option to the kernel. This flag can be used to remove
54 all but one partition from consideration as a root (/) partition if a
55 system has more than one with the correct type code.
56
57 - Improved Freedesktop.org Discoverable Partitions Specification support:
58 Previously, if no refind_linux.conf file was present but an /etc/fstab
59 file was found, rEFInd ignored the Discoverable Partitions Specification
60 filesystem-type codes. This was fine if /etc/fstab contained a valid "/"
61 filesystem specification, but if that was absent, the result was no
62 "root=" specification being present. Under these circumstances
63 (refind_linux.conf absent, /etc/fstab present but lacking a "/" entry),
64 rEFInd now tries to identify a device to specify as "root=" via the
65 Discoverable Partitions Specification.
66
67 - Fixed bug that caused "Found match!" and a prompt to press a key to
68 continue to be printed if any partition used the Freedesktop.org
69 Discoverable Partitions Specification root-partition GUID. (This
70 was leftover debugging/testing code that I somehow missed deleting.)
71
72 - Added icon for Elementary OS.
73
74 - Added /etc/lsb-release to files scanned for clues about the Linux
75 distribution. This file differentiates Mint and Elementary OS from Ubuntu
76 better than does /etc/os-release, and may also help with other
77 closely-related distributions.
78
79 - Improvements to handling of case-insensitive string comparisons. These
80 are buggy on some EFIs, and such bugs affect things like dont_scan_*
81 blacklists, removal of rEFInd's own directory from scanning, matching of
82 keyword names in refind.conf, and even loading of icons. I've replaced
83 many calls to problematic functions with safer calls, which should help a
84 lot. There may still be problems on some systems with some computers,
85 though; as far as I can tell, the bugs are buried deep in some EFI
86 firmware, so I can only replace some of the most direct calls to
87 potentially buggy system calls.
88
89 0.9.0 (7/26/2015):
90 ------------------
91
92 - New icon for Kali Linux, submitted by Francesco D'Eugenio.
93
94 - Minor code changes to ensure that rEFInd compiles with GCC 5.1. (Tested
95 with GNU-EFI on a Fedora 22 system; not yet tested with the TianoCore
96 EDK2.)
97
98 - Added new "fold_linux_kernels" token to refind.conf. This option, when
99 active (the default) "folds" all Linux kernels in a directory into a
100 single entry on the rEFInd menu. The kernel with the most recent time
101 stamp is launched by default. To launch another kernel, you must press F2
102 or Insert; additional kernels appear as options on the first kernel's
103 submenu. To see the pre-0.9.0 behavior, you must set "fold_linux_kernels
104 false" (or one of its synonyms, "off" or "0"). The point of this option
105 is to help de-clutter the rEFInd main menu.
106
107 - Added new Linux root (/) partition auto-discovery feature, based on
108 Freedesktop.org's Discoverable Partitions Spec (DPS)
109 (http://www.freedesktop.org/wiki/Specifications/DiscoverablePartitionsSpec/):
110 If no refind_linux.conf file or /etc/fstab file is found, and if a
111 partition with the correct DPS type code for the system architecture is
112 found, rEFInd adds "ro root=/dev/disk/by-partuuid/{GUID}" to the kernel
113 options. This will not help on LVM setups, and will get it right for only
114 one installation on systems with multiple Linux installations, but it may
115 help some users, if/when the DPS type codes become more common.
116
117 - Fixed bug that caused a rEFInd crash if an empty refind_linux.conf
118 file was encountered.
119
120 - The mkrlconf.sh script now checks the OS on which it's running, which
121 should help avoid confusion or problems by users who mistakenly run it
122 under OS X.
123
124 - rEFInd now skips checking for various BIOS-mode boot sector signatures
125 when running on a UEFI-based PC; these checks are run only on Macs. This
126 may reduce startup time on systems with many partitions.
127
128 - Fixed Debian debinstall script to work correctly on IA32 systems. It had
129 a bug that caused filesystem drivers and gptsync to not be packaged for
130 IA32.
131
132 - Modified Debian postinst file to call install.sh with --localkeys option
133 if sbsign and openssl are available, even when NOT in Secure Boot mode or
134 if shim is not detected. This helps with my Ubuntu PPA when using custom
135 Secure Boot keys, since the PPA is delivered unsigned. (Users will have
136 to have added their own local keys to their firmware's db.) For
137 consistency, I've made the same change to the RPM .spec file.
138
139 0.8.7 (3/1/2015):
140 -----------------
141
142 - Fixed install.sh bug that caused inappropriate installation under the
143 name bootx64.efi (or bootia32.efi) under Linux, with a failure to update
144 the boot entries in NVRAM, has been fixed.
145
146 - Added identification of XFS as filesystem type in volume descriptions.
147
148 - More fixes to filesystem type detection code. Previous version sometimes
149 identified FAT or NTFS (or anything with a boot loader) as a whole-disk
150 device rather than the correct filesystem type.
151
152 - Added protections to the code to reduce the risk of crashes that might
153 occur when dereferencing NULL pointers in various situations.
154
155 - I'm deprecating the use of filesystem numbers (as in "fs0:") because
156 they're unreliable -- filesystem numbers can change between boots and
157 might not be the same as those used in an EFI shell or other program.
158 Sooner or later I'll remove code supporting this feature. In the
159 meantime, if it doesn't work for you, please switch to using filesystem
160 labels, partition labels, or partition GUIDs.
161
162 - Added detection of FreeBSD's BIOS-mode GPT boot loader. Previously,
163 rEFInd could detect FreeBSD's BIOS-mode MBR boot loader, which gave
164 FreeBSD an appropriate icon on Macs; but the BIOS-mode GPT boot loader
165 code is different, so some recent FreeBSD installations showed up with
166 generic grey diamond icons. This change creates FreeBSD icons instead.
167
168 - Added "Secure Boot [active|inactive]" notice to "about" menu for x86
169 (32-bit) systems, since there are now a few 32-bit UEFI systems that
170 support Secure Boot. (AFAIK, these are mostly tablets and convertibles
171 such as the ASUS T100.)
172
173 - Added KeyTool.efi and KeyTool-signed.efi to list of MOK managers. KeyTool
174 is the "super-deluxe" Secure Boot key and hash manager provided as part
175 of the efitools package.
176
177 - Fixed more instances of "invalid parameter" errors on some EFIs.
178
179 - Improved Secure Boot detection in install.sh.
180
181 - install.sh should no longer complain when copying Shim or MokManager over
182 itself.
183
184 0.8.6 (2/8/2015):
185 -----------------
186
187 - Removed special case of ignoring an HFS+ name of "HFS+ volume", since the
188 old rEFInd HFS+ driver that produced this name for all HFS+ volumes has
189 long since been updated to deliver a real name.
190
191 - Addition of new Windows 8 OS icon. On Macs and for BIOS/legacy boots, the
192 new icon is now used for Windows Vista, 7, and 8, while the old one is
193 used for earlier versions of Windows. For EFI-mode boots, the new icon is
194 used universally.
195
196 - If the NTFS driver is loaded, rEFInd now scans NTFS volumes on Macs for
197 the presence of Windows boot files, and removes any NTFS volume that
198 lacks such files from the BIOS/legacy boot list. This should help
199 unclutter the display on Macs that contain NTFS data partitions.
200
201 - Fixed bug that caused misidentification of both whole disks and NTFS
202 volumes as being FAT. (This bug affected the identification of devices
203 and locations in the rEFInd menu, not actual access to devices.)
204
205 - Code refactoring to clear out legacy-boot functions from the
206 ever-expanding refind/main.c file.
207
208 - Added new "badges" option to the "hideui" token in refind.conf. This
209 option hides the device-type badges associated with the OS boot options.
210
211 - Reverted rEFIt commit r472, introduced in rEFInd 0.8.5 to support more
212 BMP images because I've received bug reports that it's causing existing
213 selection images to fail to load.
214
215 - Fixed install.sh bug that caused misidentification of installation
216 directory under OS X if an already-mounted ESP has spaces in its path.
217
218 - Fixed Mac-specific install.sh bug that could cause misidentification of
219 the ESP on disks with partition numbers of 10 or above.
220
221
222 0.8.5 (2/1/2015):
223 -----------------
224
225 - Added NTFS EFI filesystem driver.
226
227 - Minor improvements to filesystem driver framework code.
228
229 - Changes to
230
231 - Fixed bug in Btrfs driver's address reference.
232
233 - Improved install.sh to make it smarter about figuring out where to
234 install on Macs. Specifically, this version now upgrades existing
235 installations, if found (as it always has under Linux), rather than
236 blindly install to EFI/BOOT; it installs to EFI/refind if not existing
237 installation is found; it installs using the --shortform option to bless,
238 which seems to eliminate the 30-second delay problem; and it can handle
239 an HFS+ ESP, which it treats as a separate HFS+ volume (as if the user
240 had used --ownhfs). These changes do not affect behavior under Linux.
241
242 - Added missing check of architecture type for several tools.
243
244 - Applied rEFIt commit r472, which adds support for BMP images with negative
245 height fields, indicating that the image is NOT vertically flipped. This
246 commit and r467 were not incorporated in the original rEFInd because I
247 forked it from a Debian rEFIt package that had been patched to build
248 under GNU-EFI, and was apparently based on a slightly earlier version.
249
250 - Applied rEFIt commit r467, which improves Mac handling of legacy boots
251 from other than the first hard disk.
252
253
254 0.8.4 (12/8/2014):
255 ------------------
256
257 - Tweaked default for dont_scan_volumes: Removed "Recovery HD". This change
258 better suits the needs of OS X 10.10 ("Yosemite") installations, but may
259 result in some stray Recovery HD entries on some Macs.
260
261 - Updated icons for Fedora and Ubuntu and added an icon for Xubuntu.
262
263 - Added new configuration option, "enable_and_lock_vmx", which sets an
264 Intel CPU feature that's required for some types of virtualization to
265 work. Most EFIs enable setting this feature in their own setup utilities,
266 but some (such as most Macs) don't.
267
268 - If rEFInd can't locate an icons directory (either the default or one
269 specified by the icons_dir token), the program switches to text-only
270 mode.
271
272 - If a loader contains the string "grub" and no other clue to the loader's
273 OS association exists, search for os_grub.{png|icns} (which is not
274 provided with rEFInd) or os_linux.{png|icns}. (Previous versions provided
275 a generic loader icon for GRUB.)
276
277 - Fixed bug that caused dont_scan_files to not work with special-case
278 boot loaders (for OS X and Windows) when specifying the complete path to
279 the loader (e.g., EFI/Microsoft/Boot/bootmgfw.efi).
280
281 - Added support for the iPXE network boot tool (see BUILDING.txt for
282 building and basic use instructions).
283
284 0.8.3 (7/6/2014):
285 -----------------
286
287 - Added new feature: Setting "timeout = -1" in refind.conf causes rEFInd to
288 immediately boot the default option UNLESS a keypress is in the buffer
289 when rEFInd launches. In that case, if the keypress corresponds to a
290 shortcut key, the associated boot loader is launched; or if not, the menu
291 is displayed.
292
293 - Added new icons for Clover boot loader and for Mythbuntu Linux
294 distribution.
295
296 - rEFInd now displays the partition's label, when one is available, when
297 offering a BIOS-mode boot option for a partition with no filesystem
298 driver. This works only on Macs doing BIOS-mode booting.
299
300 - Removed GPLv2 code from the FSW core files. This was done because the
301 Btrfs driver is derived from the GRUB Btrfs driver, which is licensed
302 under the GPLv3. Ironically, the GPLv2 and GPLv3 are incompatible
303 licenses, so ensuring that the Btrfs driver doesn't rely on GPLv2 code
304 was legally necessary. In most cases, I reverted to the original rEFIt
305 code, although I kept my own cache code; since I wrote it, I can
306 change its license to a BSD license.
307
308 - Fixed bug that caused rEFInd to unload drivers immediately after loading
309 them. This didn't affect rEFInd's own drivers because they didn't include
310 the unload hooks, but it did affect some other drivers.
311
312 - Changed default scan_all_linux_kernels setting from "false" to "true",
313 and commented the option out in refind.conf-sample. This should not
314 affect most people, since refind.conf-sample had this option commented
315 out, and most rEFInd users either use it that way or don't have Linux
316 kernels installed at all. I've made this change because I want rEFInd to
317 "do the right thing" by default in as many cases as possible. For a while
318 now, rEFInd has been excluding non-bootable files from its menu, and most
319 kernels "in the wild" now include the EFI stub. Thus, enabling this
320 support by default seems worthwhile. If you prefer to not scan Linux
321 kernels by default, simply uncomment the "scan_all_linux_kernels" line
322 and ensure it's set to "false".
323
324 0.8.2.1 (6/8/2014):
325 -------------------
326
327 - Removed stray bit of debugging code that caused a prompt to press a
328 key to appear at rEFInd startup.
329
330 0.8.2 (6/8/2014):
331 -----------------
332
333 - Changed behavior when default_selection is not set: It now boots the
334 previously-booted loader, assuming it's still available; if not, rEFInd
335 boots the first loader (as it does now). Behavior is unchanged if
336 default_selection is set. Note that this behavior depends on the ability
337 of rEFInd to store an EFI variable in NVRAM. It therefore fails on
338 systems with flaky NVRAM storage. You can view the previously-booted
339 loader in the
340 /sys/firmware/efi/efivars/PreviousBoot-36d08fa7-cf0b-42f5-8f14-68df73ed3740
341 variable under Linux.
342
343 - Added icon for Mageia Linux (os_mageia.png).
344
345 - Fixed bug that could misidentify a not-quite-GUID as a GUID in a
346 manual boot stanza's "volume" line.
347
348 - I've updated my personal build system, and therefore the rEFInd Makefiles
349 and related files, to use TianoCore UDK2014 rather than UDK2010.
350
351 - Added "deep_uefi_legacy_scan" token. When not set (the default), rEFInd
352 does not modify EFI NVRAM settings when scanning for BIOS-mode boot
353 loaders on UEFI-based (non-Mac) computers. Some computers require
354 uncommenting this setting for rEFInd to reliably detect some BIOS-mode
355 boot devices. Passing "0", "off", or "false" as an option resets it to
356 the default value (useful in a loaded secondary configuration file to
357 override a setting in the main file).
358
359 0.8.1 (5/15/2014):
360 ------------------
361
362 - Fixed bug that could cause rEFInd to fail to detect boot loaders stored
363 on the root directory of a partition.
364
365 - Added two new bitmap fonts to those distributed with rEFInd: Ubuntu Mono
366 and Nimbus Mono. Both come in 12-, 14-, 16-, and 24-point sizes.
367
368 - Messages about pauses for scanning and re-scanning of boot loaders are
369 now suppressed when doing an initial delayed scan when scan_delay is 1
370 second.
371
372 - Improved centering of legacy boot option descriptions on some systems'
373 screens.
374
375 - Fixed bug that could cause a BIOS-mode boot to boot from an inappropriate
376 device if that device had an innately high boot priority (as set by the
377 firmware).
378
379 - Changed icons from ICNS to PNG form. There are several reasons to do
380 this, all of them minor; but together they're enough to warrant a change.
381 PNG is more common, and therefore more accessible to most users --
382 particularly those who don't use OS X. The PNG files are smaller than
383 their ICNS equivalents. PNG supports a wider range of sizes (although I'm
384 not now using anything that ICNS doesn't support, I might in the future).
385 The icon-scaling support added a few versions ago makes ICNS's support
386 for multiple icon sizes relatively unimportant.
387
388 - Reversed order of search for icons by extension: rEFInd now searches
389 for PNG files before ICNS files, rather than the other way around. This
390 makes it possible to override a volume icon for rEFInd by giving it the
391 name .VolumeIcon.png, even when a .VolumeIcon.icns file exists on the
392 volume and is used by OS X.
393
394 - Fixed bug that caused .VolumeIcon.icns to take higher-than-intended
395 precedence in icon setting for OS X.
396
397 - Chainloading to BIOS-mode boot loaders now works on UEFI-based PCs when
398 rEFInd is built with GNU-EFI, not just when built with Tianocore.
399
400 0.8.0 (5/4/2014):
401 -----------------
402
403 - The "dont_scan_volumes" parameter now also works with legacy-boot
404 volumes. Unlike with EFI volumes, where the option you pass must exactly
405 match an entire volume name, when applied to legacy-boot volumes, it
406 matches any part of the description that appears beneath the item when
407 you select it in the rEFInd main menu.
408
409 - Can now boot in legacy mode from second (and probably later) hard disks!
410
411 - rEFInd now limits the length of the firmware name string shown in the
412 system information screen to 65 characters. This is done because at least
413 one EFI presents a longer string by default, and this causes the entire
414 information display to come up empty on 800x600 displays.
415
416 - rEFInd now uses the partition's name (as stored in the GPT data
417 structures) as a fallback for the filesystem's name if the latter can't
418 be found. Exceptions are if the partition name is one of three generic
419 names used by GPT fdisk: "Microsoft basic data", "Linux filesystem", or
420 "Apple HFS/HFS+". These are ignored in favor of the descriptive fallback
421 (e.g., "20 GiB Btrfs volume")
422
423 - It's now possible to specify a volume by partition GUID number in a
424 manual boot stanza. This should be more reliable (albeit also more
425 awkward) than using a filesystem number (such as fs0: or fs1:).
426
427 - Fixed memory-allocation bug that could cause error message displays,
428 and possibly hangs, when re-scanning boot loaders.
429
430 0.7.9 (4/20/2014):
431 ------------------
432
433 - Attempt to fix rEFInd perpetually re-scanning after ejecting a disc on
434 some Macs.
435
436 - Added check to remove redundant (or non-functional if Secure Boot is
437 active) kernel entries for Ubuntu, which is now including two versions of
438 kernels, one signed and the other unsigned.
439
440 - Fixed bug in install.sh that could cause it to display error messages
441 if the dmraid utility was not installed.
442
443 - The HFS+ driver now reports a correct volume name.
444
445 - Fixed some EFI filesystem driver bugs that could cause lockups under
446 some circumstances. These bugs could affect any of the filesystem
447 drivers.
448
449 - Added "gdisk" option to the "showtools" configuration file token. When
450 active, this adds gdisk.efi or gdisk_{arch}.efi, if present in the
451 EFI\tools directory, to the tools row.
452
453 - Fixed mistaken identification of the MOK utility as the "MOK utility
454 utility."
455
456
457 0.7.8 (3/9/2014):
458 -----------------
459
460 - Added "debian" directory to source, which facilitates creation of Debian
461 packages. Packages built in this way are built with GNU-EFI and don't run
462 any post-installation script, so although the rEFInd binaries are on the
463 hard disk, they aren't installed to be bootable; you must manually run
464 install.sh. Also, at least on Ubuntu, the Make.common file's /usr/lib64
465 references must be changed to /usr/lib. This is more of a proof of
466 concept and a "leg up" for distribution maintainers than anything else.
467
468 - Two new options, big_icon_size and small_icon_size, set the size of
469 the first-row OS icons and of the second-row tool icons, respectively.
470 The big_icon_size option also indirectly sets the size of disk-type
471 badges; they're 1/4 the size of the big icons. Default values are 128 and
472 48, respectively, to match the actual icon files provided with rEFInd. If
473 the icon you're using is of a different size than you've specified,
474 rEFInd scales it. For best quality, you should both provide icons drawn
475 to the right size and set the icon sizes in refind.conf.
476
477 - rEFInd now automatically scales icons to fit the standard icon sizes.
478 This won't have any effect with the icons that come with rEFInd, but it
479 can help if you want to use another icon, since you needn't scale it in a
480 graphics program before using it. Note that rEFInd uses bitmap icons, so
481 scaling by a huge amount (say, a 16x16 icon to fit the standard 128x128
482 OS icon) is not likely to look good.
483
484 - Added new option, banner_scale, that tells rEFInd how to handle banners:
485 Set to "noscale" (the default), banners are not scaled, although they'll
486 be cropped if they're too big for the display. This is the same as the
487 behavior in previous versions. Set to "fillscreen", rEFInd now scales the
488 banner image (larger or smaller) to fill the display.
489
490 - Adjusted the post-installation script in refind.spec (used to generate
491 RPMs, and therefore also indirectly Debian packages) to search for
492 existing shim program files under the filesnames shim.efi and shimx64.efi
493 rather than just shim.efi. Ubuntu uses shimx64.efi, so Debian packages
494 were failing to detect Ubuntu's shim in previous versions. (Note,
495 however, that Ubuntu's early shim 0.1 is unsuitable for use with rEFInd
496 The newer 0.4 version that's in the repositories now should work fine;
497 it's only when installing on an older system that's NOT been updated that
498 problems might arise.
499
500 0.7.7 (1/3/2014):
501 -----------------
502
503 - Can now specify complete paths, optionally including volumes, in
504 dont_scan_files.
505
506 - Added shimx64.efi to the default dont_scan_files list.
507
508 - Added windows_recovery_files token, to specify what program(s) launch a
509 Windows recovery utility; and the "windows_recovery" option to
510 "showtools," to control whether or not to display the Windows recovery
511 utility on the second row of icons.
512
513 - The use_graphics_for, also_scan_dirs, dont_scan_dirs, dont_scan_files,
514 and scan_driver_dirs tokens in refind.conf now support "+" as the first
515 option, which causes the remaining options to be added to the default
516 value rather than replacing that value. (This has no practical effect for
517 scan_driver_dirs, though, since it has a null default value.)
518
519 - Added support for specifying the configuration file at program launch,
520 via the "-c" parameter, as in "refind_x64.efi -c foo.conf" to use the
521 foo.conf file as the main configuration file.
522
523 - Scans of ext2/3/4fs and ReiserFS partitions now omit partitions with
524 duplicate filesystem UUIDs. These are likely parts of RAID arrays and so
525 would have the same boot loaders or kernels as the first one with a given
526 UUID.
527
528 - Added feature in install.sh: Script now tries to locate and mount an ESP
529 in Linux, if it's currently unmounted.
530
531 - Fixed bug in mkrlconf.sh and install.sh that caused a stray line break
532 and PARTUUID= specification to appear in generated refind_linux.conf file
533 under some circumstances.
534
535 0.7.6 (12/15/2013):
536 -------------------
537
538 - Added support for multiple "default_selection" targets. These MUST be
539 comma-separated AND enclosed in quotes, as in:
540 default_selection "fred,ginger"
541 This example will launch "fred" by default if it's available; and if
542 it's not, rEFInd will attempt to launch "ginger" as the default.
543
544 - Added support for time-sensitive "default_selection" setting. This token
545 may now have either one or three options. If one, it's interpreted as it
546 has been in the past, as setting a default that's independent of times.
547 If you follow this default by two times, however, those are interpreted
548 as the start and end times (in 24-hour format) for a default setting. For
549 instance, "default_selection foo 8:00 17:00" causes foo to be the default
550 from 8:00 (AM) to 17:00 (aka 5:00 PM). You can include multiple
551 "default_selection" lines to set different defaults for a variety of
552 times. If they're in conflict, the last one takes precedence. Note that
553 times are hardware clock's native value, which may be local time or UTC,
554 depending on your computer.
555
556 - Added support for a blank-screen startup: Set "screensaver -1" and the
557 screen saver will be initialized when rEFInd starts. If you set a low
558 "timeout" value, the result will be a boot straight to the default OS
559 unless you hit a key soon after rEFInd starts. Once you hit a key, the
560 screensaver will be disabled.
561
562 - Added --ownhfs {target} option to install.sh. This option causes rEFInd
563 to install to an HFS+ partition in a way that's more consistent with the
564 way the Mac's native boot loader is installed. Note that you should NOT
565 install to an already-bootable partition with this option, since it will
566 overwrite the existing boot loader, which would render OS X unbootable.
567
568 0.7.5 (11/10/2013):
569 -------------------
570
571 - Fixed bug that caused unbootable exFAT partitions to show up as
572 bootable on Macs with BIOS/CSM/legacy boot options enabled.
573
574 - Fixed bug in install.sh that caused installs to the ESP on recent
575 versions of OS X to fail.
576
577 - Fixed bug that caused rEFInd to hang on some Macs when multiple EFI
578 drivers were present.
579
580 - Fixed bug that caused clear to default gray screen when launching OSes
581 with 'use_graphics_for' enabled, even when the rEFInd background is not
582 gray. Now rEFInd clears to the same background color used in its menu.
583 When launching OS X, though, the OS X boot loader will itself clear to
584 gray a second or so later; and when launching Linux, it will clear to
585 black a second or so later.
586
587 0.7.4.1 (8/25/2013):
588 --------------------
589
590 - My initial 0.7.4 release broke legacy-boot ability on Macs, so I quickly
591 released this version using the original 0.7.4 filenames to fix the
592 problem.
593
594 0.7.4 (8/25/2013):
595 ------------------
596
597 - Fixed options passing to loader to include loader's filename as the first
598 option. This omission had no effect on most boot loaders, but caused
599 VMware's mboot64.efi to fail.
600
601 - Added support for memtest86 as second-row option. Program must be
602 stored in EFI/tools, EFI/tools/memtest, EFI/tools/memtest86, EFI/memtest,
603 or EFI/memtest86; and must use the name memtest86.efi, memtest86_x64.efi,
604 memtest86x64.efi, or bootx64.efi (changing "x64" to "ia32" on IA-32
605 systems). The memtest86 program is scanned for when the "showtools"
606 option includes the "memtest" or "memtest86" token, which it does by
607 default.
608
609 - Added space to end of "Boot %s from %s" string; enables adding a space
610 to the end of the "default_selection" item (in quotes) to set a default
611 that matches a volume name that's identical to another one except for
612 extra characters at the end of the non-wanted volume's name.
613
614 - Fixed bug that could cause rEFInd to hang when launching boot loaders
615 under some conditions. (Launching from Firewire drives on Macs is the
616 known case, but there may be others.)
617
618 0.7.3 (8/7/2013):
619 -----------------
620
621 - Fixed bug that caused missing media-type badges on BIOS-mode boot
622 loaders on Macs.
623
624 - Fixed bug that caused failure when launching BIOS-mode OSes on Macs.
625
626 0.7.2 (8/6/2013):
627 -----------------
628
629 - Fixed bug that caused display glitches in the final entry on the first
630 row of icons if the second row of icons was empty.
631
632 - Fixed bug that could cause incorrect scanning or even a rEFInd crash when
633 using volume specification in also_scan_dirs token.
634
635 - Added protection against loading invalid drivers and other EFI programs.
636 (Some EFIs crash when attempting to load such drivers and programs.)
637
638 - Added PreLoader.efi and shim-fedora.efi to default dont_scan_files list;
639 it's now "shim.efi, shim-fedora.efi, PreLoader.efi, TextMode.efi,
640 ebounce.efi, GraphicsConsole.efi, MokManager.efi, HashTool.efi,
641 HashTool-signed.efi".
642
643 - Added icon for Funtoo Linux.
644
645 - Fixed reading of volume badges from user-specified icons directory, which
646 was broken.
647
648 - Fixed handling of /.VolumeBadge.icns (or /.VolumeBadge.png) files, which
649 was broken.
650
651 0.7.1 (7/8/2013):
652 -----------------
653
654 - Fixed build problem with recent development versions of EDK2.
655
656 - Added scan for Boot Repair's backup of the Windows boot loader
657 (bkpbootmgfw.efi). If found, give separate entries for it and for
658 bootmgfw.efi, each with its own descriptive text label.
659
660 - Fixed also_scan_dirs; used to have bug that caused it to ignore
661 volume specification, if present.
662
663 - Fixed bug in driver cache that caused Btrfs driver to hang sometimes.
664
665 0.7.0 (6/27/2013):
666 ------------------
667
668 - Added Btrfs signature to rEFInd, so that it can identify the filesystem
669 type for volumes that lack labels.
670
671 - Changed some critical filesystem driver pointers from 32-bit to 64-bit.
672 This *SHOULD* enable use of over-2TiB filesystems (for those filesystems
673 that support such large volumes). This capability is largely untested,
674 though.
675
676 - Added a cache to the filesystem driver core, and therefore to all the
677 filesystem drivers. This cache greatly improves performance in
678 VirtualBox, and offers modest performance improvements on a few "real"
679 computers. The most dramatic improvement is on ext2/3fs under VirtualBox:
680 Loading a kernel and initrd used to take ~200 seconds on my system, but
681 now takes ~3 seconds! On most "real" hardware, the improvement is much
682 less dramatic -- an improvement of a second or less, presumably because
683 of cacheing within the EFI or on the hard disk itself.
684
685 - Filter boot loaders based on a test of their validity; keeps out Linux
686 kernels without EFI stub loader code, loaders for the wrong architecture,
687 non-EFI loaders, etc.
688
689 - New Btrfs driver, contributed by Samuel Liao based on GRUB 2.00 Btrfs
690 code.
691
692 0.6.12 (6/18/2013):
693 -------------------
694
695 - Changed the 64-bit EFI shell included in the CD-R and USB flash drive
696 images to a version 2 shell that should support the "bcfg" command.
697
698 - Added support for PreBootloader to refind.spec's built-in installation
699 script.
700
701 - Added support for the Linux Foundation's PreLoader to install.sh. It's
702 treated just like shim, including using the --shim option (or, now,
703 --preloader); but it searches for and copies HashTool.efi rather than
704 MokManager.efi, and filenames are adjusted appropriately.
705
706 - Added code to determine Linux root filesystem from /etc/fstab file, if
707 it's on the same partition as the kernel and if the refind_linux.conf
708 file is not available. This enables rEFInd to boot Linux without any
709 rEFInd-specific configuration files on some (but not all) systems.
710
711 0.6.11 (5/13/2013):
712 -------------------
713
714 - New feature: rEFInd now ignores symbolic links to files on filesystems
715 that support them. This prevents the "vmlinuz" symbolic link that some
716 distributions create in the root directory from appearing in the loader
717 list. Note that this does NOT affect symbolic links to directories.
718
719 - Added icons for Lubuntu and Kubuntu.
720
721 - Improved the install.sh script so that it does a better job dealing with
722 directory names that contain spaces.
723
724 - rEFInd now tries to guess the Linux distribution type based on the kernel
725 filename (Fedora and RHEL only) or the "ID" or "NAME" variables in
726 /etc/os-release on the kernel's partition. None of these is guaranteed to
727 work. A fallback of the Tux penguin icon remains in place in case rEFInd
728 can't find anything substantive enough for a guess.
729
730 - Added "EFI\opensuse" to the locations searched for MOK utilities, since
731 OpenSUSE now uses that name.
732
733 - Renamed "Reboot to Firmware User Interface" to "Reboot to Computer Setup
734 Utility" in menu.
735
736 - Fixed bug in gptsync that caused it to hang if the disk had too few GPT
737 partitions to fill the MBR.
738
739 0.6.10 (5/5/2013):
740 ------------------
741
742 - Added support for "screensaver" token. If set to a positive integer, this
743 causes the screen to blank after the specified number of seconds of
744 inactivity. Pressing most keys (unfortunately NOT including Shift, Alt,
745 or Ctrl) will restore the display and restart the screen saver timeout.
746
747 - Added icon for ChromeOS (os_chrome.icns in the icons subdirectory).
748 ChromeBooks reportedly boots using the fallback filename, but if a user
749 wants to install rEFInd on a ChromeBook, renaming the original EFI/BOOT
750 directory to EFI/chrome and then installing rEFInd in the fallback
751 filename will bring up this new icon for ChromeOS.
752
753 - Added new option to reboot the computer into the firmware's user
754 interface. This option is active by default, or can be set via the
755 "firmware" option to the "showtools" token in refind.conf. It works
756 on only some computers, though; older computers lack this feature, and
757 when rEFInd is told to use this feature on such computers, the directive
758 is quietly ignored.
759
760 - Upgraded LodePNG library from version 20121216 to 20130415 and
761 restructured rEFInd-specific modifications to simplify future upgrades.
762
763 - Replaced hexadecimal error code with description if an error is
764 encountered when saving a screen shot.
765
766 - Enable multiple screen shots: Rather than naming all screen shots
767 "screenshot.bmp", the name is now "screenshot_###.bmp", where "###" is a
768 sequence number, starting with "001".
769
770 0.6.9 (4/25/2013):
771 ------------------
772
773 - Modified default banner to include the new rEFInd icon, provided by Erik
774 Kemperman.
775
776 - Worked around a suspected firmware bug that caused rEFInd 0.6.6 to 0.6.8
777 to hang at startup on some systems (DUET and some Macs).
778
779 - Modified rEFInd to search for gptsync under the names gptsync.efi and
780 gptsync_{arch}.efi, where {arch} is ia32 or x64. (Previous versions
781 searched only for gptsync.efi.)
782
783 - Added gptsync program from rEFIt project, but with some changes to
784 improve flexibility and make it less likely that UEFI users will
785 accidentally trash their systems.
786
787 - Changed timeout code so that the timeout continues if the keyboard is
788 disconnected. This can help in booting a headless server or a system with
789 a bluetooth or other keyboard that's not recognized by the EFI.
790
791 0.6.8 (3/18/2013):
792 ------------------
793
794 - Added workaround for presumed EFI bug that was causing "Invalid
795 Parameter" errors when scanning for boot loaders on some computers.
796
797 - Added search for an EFI shell called shell.efi in the root directory
798 (previously this name was only accepted in EFI\tools).
799
800 - Fixed bug in install.sh that caused it to fail on some systems (Fedora
801 18, for instance) because of a problem identifying the ESP.
802
803 - Fixed bug that caused icons named after boot loaders to not be used.
804
805 0.6.7 (2/3/2013):
806 -----------------
807
808 - Added a more explicit error message summarizing options when a launch of
809 a program results in a Secure Boot failure.
810
811 - Changed MOK tool detection to scan all volumes, not just the rEFInd
812 home volume. This is desirable because the Linux Foundation's HashTool
813 can only scan its own volume, making it desirable to place copies of this
814 program on every volume that holds EFI boot loader binaries.
815
816 - Added support for launching the Linux Foundation HashTool as a means of
817 managing MOKs (or MOK hashes, at any rate).
818
819 - Fixed bug that caused rEFInd to present an entry for itself as a
820 Microsoft OS if it was launched as EFI/Microsoft/Boot/bootmgfw.efi.
821
822 - Fixed bug that caused dont_scan_volumes option to be added to
823 also_scan_dirs list.
824
825 - Fixed dont_scan_volumes so that it works with OS X boot loaders.
826
827 - Fixed broken mixing of PNG and ICNS icons when using a user-specified
828 icons directory -- previously, an ICNS file in the default directory
829 would override a PNG file in the user-specified directory.
830
831 0.6.6 (1/26/2013):
832 ------------------
833
834 - rEFInd now ignores the fallback boot loader (EFI/BOOT/bootx64.efi or
835 EFI/BOOT/bootia32.efi) if it's identical to another boot loader on
836 the same volume. This is intended to help unclutter the display on
837 systems that run Windows, since Windows tends to duplicate its own boot
838 loader under the fallback name.
839
840 - Added new "font" token to refind.conf, which enables specifying a font in
841 the form of a PNG file. This file must contain monospace glyphs for the
842 95 characters from ASCII 32 to 126 (space through tilde), inclusive, plus
843 a glyph to be displayed for characters outside of this range, for a total
844 of 96 glyphs.
845
846 - Replaced the old font (inherited from rEFInd) with an anti-aliased
847 version of Luxi Mono Regular 14 point.
848
849 - Fixed bug that caused rEFInd to ignore manual boot stanzas in files
850 included via the "include" token in refind.conf.
851
852 - Fixed bug that caused ASSERT error on some systems (and conceivably a
853 crash on startup on some) when default_selection line in refind.conf was
854 commented out or empty.
855
856 - Fixed bug that caused "Binary is whitelisted" message to persist on
857 screen after loading MOK-signed drivers in Secure Boot mode.
858
859 - Fixed bug that caused rEFInd to ignore the "icon" token in refind.conf
860 manual boot stanzas.
861
862 - Fixed bug in install.sh that caused the script to fail to update
863 drivers when rEFInd was installed in EFI/BOOT/.
864
865 0.6.5 (1/16/2013):
866 ------------------
867
868 - Improved text color support: rEFInd now uses black text against light
869 backgrounds and white text against dark backgrounds.
870
871 - Added support for PNGs as banners, icons, and selectors.
872
873 - Added icon for ALT Linux.
874
875 - Added "safemode" option to "hideui" token, to hide option to boot into
876 safe mode for OS X ("-v -x" option to boot.efi).
877
878 - Added icon for Haiku (os_haiku.icns).
879
880 - Enable transparency of icons & main-menu text when the banner icon is
881 sized to cover these areas.
882
883 - Fixed bug that could cause rEFInd to crash if fed a banner image that's
884 too big. Note that "too big" can be substantially smaller than the screen
885 resolution!
886
887 0.6.4 (1/8/2013):
888 -----------------
889
890 - Revised install.sh to copy ext2fs driver, rather than ext4fs driver, for
891 ext2/3 filesystems. This can help keep non-functional entries from links
892 from /vmlinuz to /boot/vmlinuz out of the menu if the system uses ext4fs
893 on root and ext2fs or ext3fs on /boot.
894
895 - Fixed a couple of memory management bugs that cause rEFInd to hang at
896 startup on some systems.
897
898 0.6.3 (1/6/2013):
899 -----------------
900
901 - Added the ability to specify a volume name or number in the
902 "dont_scan_dirs" and "also_scan_dirs" tokens.
903
904 - Fixed a bug that caused removable EFI media to not appear in scan lists
905 if rEFInd was installed as EFI/BOOT/boot{arch}.efi on a hard disk.
906
907 - Modified ISO-9660 driver so that it can handle discs with other than
908 2048-byte sectors. This makes it useful for reading "hybrid ISO" images
909 burned to USB flash disks.
910
911 - New mvrefind.sh script to move a rEFInd installation between a standard
912 location (typically EFI/refind) and one of the fallback locations
913 (EFI/BOOT or EFI/Microsoft/Boot). It can also do more exotic locations.
914
915 - The install.sh script now installs to EFI/BOOT/bootx64.efi or
916 EFI/Microsoft/Boot/bootmgfw.efi if it's run in BIOS mode. This is
917 intended to give some chance of producing a bootable installation should
918 a user accidentally install Linux in EFI mode and then install rEFInd
919 from that installation.
920
921 - The install.sh script now tries to find an existing rEFInd installation
922 and upgrade it, even if it's in EFI/BOOT or EFI/Microsoft/Boot rather
923 than in EFI/refind.
924
925 - New "--yes" option to install.sh to help with unattended or automated
926 installations (as from an RPM or Debian package).
927
928 0.6.2 (12/30/2012):
929 -------------------
930
931 - Inclusion of a sample refind.spec file for the benefit of RPM
932 distribution maintainers who might want to include rEFInd. It's a bit
933 rough, but it gets you a good chunk of the way there....
934
935 - The EFI filesystem drivers can now be built with the GNU-EFI toolkit as
936 well as with the TianoCore EDK2. See the BUILDING.txt file for details on
937 how to build them with either toolkit. This improvement doesn't affect
938 users of my binary packages, but it should make it easier for Linux
939 distributions to adopt rEFInd into their package systems.
940
941 - Tweaked refind.inf file for better build results using "native" TianoCore
942 EDK2 build process (vs. the Makefile-based build process that I use under
943 Linux). This won't affect those who use my binary builds or build under
944 Linux with the "make" command.
945
946 - Fixed bug that prevented Secure Boot launches from working when rEFInd
947 was built with GNU-EFI rather than the TianoCore EDK2.
948
949 - Substantial reworking of Secure Boot code, based on James Bottomley's
950 PreLoader program. This new code eliminates the limitation of launching
951 just one driver in Secure Boot mode and is likely to be more reliable
952 with future or obscure boot loaders. It should also work with non-x86-64
953 systems, although this relies on a platform-specific shim program, which
954 to date exists only for x86-64. The basic features are the same as before
955 -- rEFInd relies on shim for authentication functions and will launch
956 programs that are signed by Secure Boot keys, shim keys, or MOKs.
957
958 - Altered default for "textmode" option (when it's commented out) to not
959 adjust the text mode at all. (Prior versions set it to mode 0 by
960 default.)
961
962 0.6.1 (12/21/2012):
963 -------------------
964
965 - Added "--root" option to install.sh, to enable installation of rEFInd
966 to something other than the currently-running OS. This is intended for
967 use on emergency discs.
968
969 - Thanks to Stefan Agner, the ext4fs driver now supports the "meta_bg"
970 filesystem feature, which distributes metadata throughout the disk. This
971 feature isn't used by default, but can be set at filesystem creation time
972 by passing the "-O meta_bg,^resize_inode" option to mke2fs. (Using
973 "^resize_inode" is necessary because meta_bg is incompatible with
974 resize_inode, which IS used by default.) This feature can be used on
975 ext3fs and ext2fs as well as on ext4fs, so the ext4fs driver can now
976 handle some ext3fs and ext2fs partitions that the ext2fs driver can't
977 handle.
978
979 - Fixed some screen resolution-setting bugs.
980
981 - Added the "words" that make up a filesystem's label (delimited by spaces,
982 dashes, or underscores) to the list of bases used to search for OS icons.
983 For instance, if the filesystem's label is "Arch", rEFInd searches for
984 os_Arch.icns; if it's "Fedora 17", it searches for os_Fedora.icns and
985 os_17.icns; and if it's "NEW_GENTOO", it searches for os_NEW.icns and
986 os_GENTOO.icns.
987
988 - Refined hints displays to be more context-sensitive, particularly in text
989 mode.
990
991 - Instead of displaying a blank filesystem label when a filesystem has
992 none, rEFInd now displays the size and/or type of the filesystem, as in
993 "boot EFI\foo\bar.efi from 200 MiB ext3 volume" rather than "boot
994 EFI\foo\bar.efi from".
995
996 - Fixed a bug that caused the screen to clear after displaying an error
997 message but before displaying the "Hit any key to continue" message when
998 a boot loader launch failed.
999
1000 0.6.0 (12/16/2012):
1001 -------------------
1002
1003 - Fixed a memory allocation bug that could cause a program crash when
1004 specifying certain values with the "also_scan_dirs", "dont_scan_volumes",
1005 "dont_scan_dirs", "dont_scan_files", and "scan_driver_dirs" refind.conf
1006 options.
1007
1008 - Modified Linux kernel initrd-finding code so that if an initrd is
1009 specified in refind_linux.conf, rEFInd will not add any initrd it finds.
1010 This enables an override of the default initrd, and is likely to be
1011 particularly helpful to Arch Linux users.
1012
1013 - Added ext4fs driver!
1014
1015 - Made "boot" the default value for "also_scan_dirs".
1016
1017 - Added identifying screen header to line editor.
1018
1019 - Fixed bug that caused rEFInd's display to be mis-sized upon return
1020 from a program that set the resolution itself.
1021
1022 - Adjusted "resolution" refind.conf parameter so that it can accept EITHER
1023 a resolution as width and height OR a single digit as a UEFI mode number
1024 (which is system-specific). This is done because some systems present the
1025 same mode twice in their mode lists, perhaps varying in refresh rate,
1026 monitor output, or some other salient characteristics; specifying the
1027 mode number enables selecting the higher-numbered mode, whereas using
1028 horizontal and vertical resolution values selects the lowest-numbered
1029 mode.
1030
1031 - Added "textmode" refind.conf parameter to set the text mode used in
1032 text-only displays, and for the line editor and boot-time handoff
1033 display even in graphics mode.
1034
1035 - Fixed bug that caused tools (shell, etc.) to launch when they were
1036 highlighted and F2 or Insert was pressed.
1037
1038 - Added "editor" option to the "hideui" token in refind.conf, which
1039 disables the boot options editor.
1040
1041 - Added hints text to rEFInd main menu and sub-menus. This can be disabled
1042 by setting the new "hints" option to the "hideui" token in refind.conf.
1043
1044 - Added "boot with minimal options" entry to refind_linux.conf file
1045 generated by install.sh. This entry boots without the options extracted
1046 from the /etc/default/grub file.
1047
1048 - Added keys subdirectory to main distribution, to hold public Secure
1049 Boot/shim keys from known sources.
1050
1051 - Changed install.sh --drivers option to --alldrivers, added new
1052 --nodrivers option, and made the default on Linux to install the one
1053 driver that's used on /boot (or the root filesystem if /boot isn't a
1054 separate partition). Of course, this won't install a non-existent driver,
1055 and it also won't work properly if run from an emergency disk unless you
1056 mount a separate /boot partition at that location.
1057
1058 - Fixed bug in install.sh that prevented creation of refind_linux.conf file
1059 on Linux systems.
1060
1061 0.5.1.1 (12/12/2012):
1062 ---------------------
1063
1064 - Fixed bug in install.sh that prevented it from working on OS X.
1065
1066 0.5.1 (12/11/2012):
1067 -------------------
1068
1069 - Added support for "0" options to "textonly" and "scan_all_linux_kernels"
1070 to reverse the usual meaning of these tokens. This is useful for
1071 including these options in a secondary configuration file called with the
1072 new "include" token to override a setting set in the main file.
1073
1074 - Added "include" token for refind.conf, to enable including a secondary
1075 configuration file from a primary one.
1076
1077 - Modified install.sh so that it creates a simple refind_linux.conf file in
1078 /boot, if that file doesn't already exist and if install.sh is run from
1079 Linux. If that directory happens to be on a FAT, HFS+, ext2fs, ext3fs, or
1080 ReiserFS volume, and if the necessary drivers are installed, the result
1081 is that rEFInd will detect the Linux installation with no further
1082 configuration on many systems. (Some may still require tweaking of kernel
1083 options, though; for instance, adding "dolvm" on Gentoo systems that use
1084 LVM.)
1085
1086 - Added --shim and --localkeys options to install.sh to help simplify setup
1087 on systems with Secure Boot active.
1088
1089 - Fixed (maybe) bug that caused resolution options to not be displayed on
1090 recent Macs with GOP graphics when specifying an invalid resolution in
1091 refind.conf.
1092
1093 - Fixed bug that caused some programs (EFI shells, in particular) to hang
1094 when launching on some systems (DUET, in particular).
1095
1096 - Implemented a fix to enable ELILO to launch with Secure Boot active.
1097 This fix might help with some other boot loaders in Secure Boot mode,
1098 too, but I don't know of any specifics.
1099
1100 0.5.0 (12/6/2012):
1101 ------------------
1102
1103 - Added the ability to include quote marks ('"') in refind.conf and
1104 refind_linux.conf tokens by doubling them up, as in:
1105 "ro root=/dev/sda4 some_value=""this is it"""
1106 This example results in the following string being passed as an
1107 option:
1108 ro root=/dev/sda4 some_value="this is it"
1109
1110 - Changed refind.conf-sample to uncomment the scan_all_linux_kernels
1111 option by default. If this option is deleted or commented out, the
1112 program default remains to not scan all Linux kernels; but with
1113 increasing numbers of distributions shipping with kernels that include
1114 EFI stub loader support, setting the configuration file default to scan
1115 for them makes sense.
1116
1117 - Modified the "resolution" token so that it affects text mode as well
1118 as graphics mode. On my systems, though, the actual text area is still
1119 restricted to an 80x25 area. (This seems to be a firmware limitation; my
1120 EFI shells are also so limited.)
1121
1122 - Fixed a bug that caused the options line editor to blank out lines that
1123 were not actually edited.
1124
1125 - Added support for using Matthew Garrett's Shim program and its Machine
1126 Owner Keys (MOKs) to extend Secure Boot capabilities. If rEFInd is
1127 launched from Shim on a computer with Secure Boot active, rEFInd will
1128 launch programs signed with either a standard UEFI Secure Boot key or a
1129 MOK. For the moment, this feature works only on x86-64 systems.
1130
1131 - Added new "dont_scan_files" (aka "don't_scan_files") token for
1132 refind.conf. The effect is similar to dont_scan_dirs, but it creates a
1133 blacklist of filenames within directories rather than directory names.
1134 I'm initially using it to place shim.efi and MokManager.efi in the
1135 blacklist to keep these programs out of the OS list. (MokManager.efi is
1136 scanned separately as a tool; see below.) I've moved checks for
1137 ebounce.efi, GraphicsConsole.efi, and TextMode.efi to this list. (These
1138 three had previously been blacklisted by hard-coding in ScanLoaderDir().)
1139
1140 - Added the directory from which rEFInd launched to dont_scan_dirs. This
1141 works around a bug in which rEFInd would show itself as a bogus Windows
1142 entry if it's installed as EFI/Microsoft/boot/bootmgfw.efi.
1143
1144 - Added support for launching MokManager.efi for managing the Machine Owner
1145 Keys (MOKs) maintained by the shim boot loader developed by Fedora and
1146 SUSE. This program is scanned and presented as a second-row tool.
1147
1148 - Added support for Apple's Recovery HD partition: If it's detected, a new
1149 icon appears on the second row. This icon can be removed by explicitly
1150 setting the "showtools" option in refind.conf and excluding the
1151 "apple_recovery" option from that line.
1152
1153 - Fixed bug that caused text-mode ("textonly" refind.conf option enabled)
1154 menu entries to be right-aligned rather than left-aligned when rEFInd was
1155 compiled with the TianoCore EDK2.
1156
1157 - Added "--usedefault {devicename}" and "--drivers" options to the
1158 install.sh script and changed the "esp" option to "--esp".
1159
1160 0.4.7 (11/6/2012):
1161 ------------------
1162
1163 - Added an icon for gummiboot.
1164
1165 - Added a boot option editor: Pressing the Insert or F2 key from a boot
1166 tag's options menu opens a simple text-mode line editor on which the boot
1167 options may be edited for a one-time boot with altered options.
1168
1169 - Modified the "scan_delay" feature to delay and then perform a re-scan,
1170 which may work better than the first attempt at this feature (which I'm
1171 told isn't working as planned).
1172
1173 - Modified rEFInd to add a space after the command-line options only when
1174 launching Mac OS X. On some early Macs, the extra space (which had been
1175 present by default, as a carryover from rEFIt) causes problems when
1176 booting Linux kernels from FAT partitions.
1177
1178 0.4.6 (10/6/2012):
1179 ------------------
1180
1181 - Fixed some minor memory management issues.
1182
1183 - Added new "scan_delay" feature to impose a delay before scanning
1184 for disks.
1185
1186 - Changed default "scanfor" option from internal-external-optical to either
1187 internal-external-optical-manual (for non-Macs) or
1188 internal-hdbios-external-biosexternal-optical-cd-manual (for Macs). I've
1189 done this for two reasons:
1190 - Many Mac users have been confused by the fact that rEFInd needs
1191 reconfiguration to detect Windows (or Linux installed in BIOS mode),
1192 since rEFIt scans BIOS devices by default. Adding the BIOS options as
1193 default for them should help them.
1194 - Adding the "manual" option enables users to simply add manual boot
1195 stanzas and have them work, which is more intuitive. Adding the
1196 "manual" option will have no effect unless manual stanzas are created
1197 or uncommented, so this part of the change won't affect users' working
1198 default configurations.
1199
1200 - Added new legacy (BIOS) boot support for UEFI-based PCs.
1201
1202 0.4.5 (8/12/2012):
1203 ------------------
1204
1205 - Fixed bug that caused a failure to boot BIOS-based OSes on Macs.
1206
1207 - Fixed bug in install.sh that caused it to fail to detect rEFItBlesser.
1208
1209 0.4.4 (6/23/2012):
1210 ------------------
1211
1212 - Fixed bug that caused filesystem labels to be corrupted by rEFInd on
1213 32-bit systems.
1214
1215 - Fixed bug that caused filesystem labels to be truncated in the drivers
1216 on 32-bit systems.
1217
1218 - Fixed bug in use_graphics_for option parsing that caused most options
1219 to set graphics mode for OS X and/or Linux but not other boot
1220 loaders/OSes.
1221
1222 - Tweaked install script to better isolate the ESP under OS X.
1223
1224 0.4.3 (6/21/2012):
1225 ------------------
1226
1227 - rEFInd now supports compilation using the TianoCore UDK2010/EDK2
1228 development kit in addition to GNU-EFI.
1229
1230 - Added new "use_graphics_for" option to control which OSes to boot in
1231 graphics mode. (This effect lasts for a fraction of a second on most
1232 systems, since the boot loader that rEFInd launches is likely to set
1233 graphics or text mode itself.)
1234
1235 - Graphics-mode booting now clears the screen to the current rEFInd
1236 background color (rather than black) and does NOT display boot messages.
1237 The intent is for a smoother transition when booting OS X, or perhaps
1238 other OSes that don't display boot loader messages. In practice, this
1239 effect will be tiny for many OSes, since the boot loader generally clears
1240 the screen within a fraction of a second of being launched; but the
1241 "flicker" of a rEFInd message in that time can sometimes be distracting.
1242
1243 - Filesystem drivers now work on EFI 1.x systems, such as Macs.
1244
1245 - Removed "linux.conf" as a valid alternative name for "refind_linux.conf"
1246 for holding Linux kernel options. The kernel developers plan to use
1247 "linux.conf" themselves.
1248
1249 0.4.2 (6/3/2012):
1250 -----------------
1251
1252 - Added a message to install.sh when run on Macs to remind users to update
1253 the "scanfor" line in refind.conf if they need to boot BIOS-based OSes
1254 via rEFInd.
1255
1256 - Modified install.sh script to be smarter about running efibootmgr on
1257 Linux. It now uses the whole path to the rEFInd binary as a key to
1258 determine whether an existing entry exists, rather than just the filename
1259 portion. If an entry exists and is the first entry in the boot order, the
1260 script does nothing to the NVRAM entries. If such an entry exists but is
1261 not the default, the script deletes that entry and creates a new one
1262 (implicitly making it the first in the boot order). If such an entry does
1263 not exist, the script creates a new one (again, making it the first in
1264 the boot order).
1265
1266 - Added "dont_scan_dirs" configuration file option, which adds directories
1267 to a "blacklist" of directories that are NOT scanned for boot loaders.
1268
1269 0.4.1 (5/25/2012):
1270 ------------------
1271
1272 - Added "scanning for new boot loaders" message to the re-scan function
1273 (hitting Esc at the main menu). It usually flashes up too quickly to
1274 be of importance, but if the scan function takes a while because of
1275 access to a CD that must be spun up, it should make it clear that the
1276 system hasn't hung.
1277
1278 - Modified install.sh script to detect rEFItBlesser on Macs, and if
1279 present, to ask the user if it should be removed.
1280
1281 - Cleaned up the Make.common file for the filesystem drivers.
1282
1283 - Changed HFS+ driver to return volume label of "HFS+ volume" rather than
1284 an empty label. (The driver doesn't currently read the real volume
1285 label.)
1286
1287 - Fixed bug that could cause rEFInd to appear in its own menu after
1288 running a shell and then re-scanning for boot loaders.
1289
1290 0.4.0 (5/20/2012):
1291 ------------------
1292
1293 - Inclusion of drivers for ISO-9660, HFS+, ReiserFS, and ext2fs. Most of
1294 these drivers originated with rEFIt, although the HFS+ driver seems to
1295 have come from Oracle's VirtualBox, with some files from Apple. I hadn't
1296 included these drivers previously because the build process proved
1297 challenging. As it is, they don't work on my Mac Mini, I suspect because
1298 the build process with the UDK2010 development kit may not work with the
1299 EFI 1.x that Apple uses.
1300
1301 - Addition of support for drivers in the "drivers_{arch}" subdirectory of
1302 the main rEFInd binary directory (e.g., "drivers_x64" or "drivers_ia32").
1303 Drivers may continue to be placed in the "drivers" subdirectory.
1304
1305 - Added new feature to eject CDs (and other removable media): Press F12 to
1306 eject all such media. This function works only on some Macs, though (it
1307 relies on an Apple-specific EFI extension, and this extension isn't even
1308 implemented on all Macs, much less on UEFI-based PCs).
1309
1310 - Fixed a problem that could cause GRUB 2 to fail to read its configuration
1311 file when launched from rEFInd.
1312
1313 0.3.5 (5/15/2012):
1314 ------------------
1315
1316 - Removed the GRUB 2 detection "reciped" added with 0.3.2, since I've
1317 received reports that it's not working as intended.
1318
1319 - Added re-scan feature: Press the Esc key to have rEFInd re-read its
1320 configuration file, tell the EFI to scan for new filesystems, and re-scan
1321 those filesystems for boot loaders. The main purpose is to enable
1322 scanning a new removable medium that you insert after launching rEFInd;
1323 however, it can also be used to immediately implement changes to the
1324 configuration file or new drivers you load from an EFI shell.
1325
1326 - Fixed a bug that could cause the scroll-right arrow to be replaced by the
1327 scroll-left arrow under some circumstances.
1328
1329 0.3.4 (5/9/2012):
1330 -----------------
1331
1332 - Added new configuration file option: "icons_dir", which sets the name
1333 of the subdirectory in which icons are found. See the documentation or
1334 sample configuration file for a full description.
1335
1336 - Modified Makefile to generate rEFInd binary that includes architecture
1337 code -- refind_ia32.efi or refind_x64.efi, rather than the generic
1338 refind.efi. This is done mainly to help the install.sh script. The
1339 program can be named anything you like on the disk. (The generic name
1340 refind.efi is used on unknown architectures.)
1341
1342 - Improved install.sh script: Fixed bug on OS X 10.7 and enable it to be
1343 used after building from source code (or via new "make install" Makefile
1344 target).
1345
1346 - Improved screen redraws to produce less flicker when moving among the
1347 second-row tags or to the last tag on the first row.
1348
1349 0.3.3 (5/6/2012):
1350 -----------------
1351
1352 - Improved menu navigation:
1353 - In graphics mode, left & right arrow keys move left & right, while up &
1354 down arrows move between rows.
1355 - Page Up and Page Down now move through chunks of visible tags (in both
1356 text & graphics modes), jumping from one row to another only when at
1357 the edge of the row. In text mode, the "rows" are broken down as in
1358 graphics mode, but they aren't visibly distinguished on the screen.
1359
1360 - Improved text-mode use: rEFInd now displays the proper number of entries
1361 when first started in text mode and scrolling is done sensibly when too
1362 many entries exist to fit on the screen.
1363
1364 0.3.2 (5/4/2012):
1365 -----------------
1366
1367 - Added the install.sh script to install rEFInd on Linux and Mac OS X
1368 systems. This script must be run as root (or via sudo). It requires
1369 no options, but on Mac OS X, passing it the "esp" option causes it
1370 to install rEFInd on the computer's ESP rather than the default of the
1371 currently OS X boot partition. (Under Linux, the default is to install to
1372 the ESP.) Note that there may be some unusual cases in which this script
1373 will fail to work.
1374
1375 - Does a better job of clearing the screen when launching OSes in text
1376 mode.
1377
1378 - Added detection "recipe" for GRUB 2's BIOS Boot Partition.
1379
1380 - Fixed bogus detection of ESPs created by Linux's mkdosfs utility or
1381 Windows as bootable partitions when "scanfor" includes BIOS scanning
1382 options.
1383
1384
1385 0.3.1 (4/27/2012):
1386 ------------------
1387
1388 - Fixed bug that caused spurious "Unsupported while scanning the root
1389 directory" messages under some conitions on Macs.
1390
1391 - Modified loader scanning code to sort boot loader entries within a
1392 directory by modification time, so that the most recently-modified loader
1393 is first among those in a given directory. Thus, if you specify a
1394 directory name (or volume name, for loaders stored in the root directory
1395 of a volume) as the default_selection, the most recent of those loaders
1396 will be the default. This is intended to help with Linux kernel
1397 maintenance when using the EFI stub loader; set up this way, the most
1398 recent kernel copied to your kernel directory will be the default,
1399 obviating the need to adjust the refind.conf file when adding a new
1400 kernel. If you want to change the default among those in the default
1401 directory, you can use "touch" to adjust the modification timestamp.
1402
1403 - Tweaked code to find loader-specific .icns file so that it finds files
1404 for Linux kernels without .efi extensions. In this case, files should be
1405 named the same as the kernels they match, but with .icns extensions. For
1406 instance, bzImage-3.3.2 should have an icon called bzImage-3.3.2.icns.
1407 (The old code would have looked for an icon called bzImage-3.3.icns.)
1408
1409 - Eliminated bogus OS loader tags for filenames that end in ".icns" when
1410 the scan_all_linux_kernels option is set.
1411
1412 0.3.0 (4/22/2012):
1413 ------------------
1414
1415 - I'm officially upgrading this project's status from "alpha" to "beta" and
1416 giving it a bump from 0.2.x to 0.3.0. This doesn't reflect any major
1417 milestone with this version; rather, it reflects my sense that rEFInd has
1418 been "out there" for a while, and although I've gotten bug reports,
1419 they've been minor and/or have been fixed. The program still has known
1420 bugs, but my impression is that it is, overall, usable by ordinary users.
1421
1422 - Added "resolution" option to refind.conf, which enables setting the video
1423 resolution. To use it, pass two numeric values, as in "resolution 1024
1424 768" to use a 1024x768 video mode. Note that not all modes are supported.
1425 If you specify a non-supported video mode on a UEFI system, a message
1426 appears listing the supported video modes and you must then press a key
1427 to continue, using the default video mode (usually 800x600).
1428 Unfortunately, I don't know the calls to get a list of supported video
1429 modes on older EFI 1.x systems (including Macs), so on Macs setting an
1430 incorrect video mode silently fails (you keep using the default mode).
1431 This makes changing your video mode a hit-or-miss proposition on Macs.
1432 CAUTION: It's possible to set a legal video mode that your monitor can't
1433 handle, in which case you'll get a blank display until you boot an OS
1434 that resets the video mode.
1435
1436 - Fixed (maybe) a bug that caused rEFInd to crash when returning from an
1437 EFI shell or other programs on Macs, particularly when rEFInd used
1438 graphical mode. I'm not 100% sure this bug is squashed because I still
1439 don't understand the cause and I only have one Mac for testing. See
1440 comments in the ReinitRefitLib() function in refit/lib.c for more
1441 details.
1442
1443 - Added new refind.conf option: scan_all_linux_kernels, which causes Linux
1444 kernels that lack ".efi" extensions to be included in scans for EFI boot
1445 loaders. This may help integration with Linux distributions that don't
1446 give their kernels such names by default. Beware, though: It can detect
1447 unwanted files, such as older non-stub-loader kernels or .icns files used
1448 to give kernels with .efi extensions custom icons.
1449
1450 - Improved EFI boot loader detection on boards with Gigabyte's Hybrid EFI,
1451 and perhaps other EFIs with a buggy StriCmp() function. Files with both
1452 ".efi" and ".EFI" extensions should now be detected as boot loaders.
1453
1454 - Fixed a bug that caused rEFInd to fail to scan for drivers if the
1455 filesystem driver didn't set a volume name (that is, if the relevant
1456 field was set to NULL rather than even an empty string). In such
1457 situations, rEFInd now reports the volume name as "Unknown".
1458
1459 0.2.7 (4/19/2012):
1460 ------------------
1461
1462 - After much trial and tribulation, I've overcome a GNU-EFI limitation and
1463 enabled rEFInd to load EFI drivers. This feature was present in the
1464 original build of rEFIt but was removed in the versions that could
1465 compile under Linux, but now it's back -- and still being compiled under
1466 Linux! To use it, you should place your drivers in a convenient directory
1467 on the ESP (or whatever partition you use to launch rEFInd) and add a
1468 "scan_driver_dirs" entry to refind.conf to tell rEFInd where to look. (As
1469 always, you should specify the driver directory relative to the root of
1470 the filesystem.) Note that you can't launch drivers from another
1471 filesystem; they must be on the same volume that holds rEFInd. Those who
1472 compile from source code should note that implementing this feature
1473 necessitated using a more recent version of the GNU-EFI library. I'm
1474 currently using version 3.0p, and version 3.0i does NOT work. I don't
1475 know where the change occurred, but you may need to upgrade your GNU-EFI
1476 installation.
1477
1478 - Fixed bug that caused rEFInd to show up in its own menu sometimes.
1479
1480 - Added new refind.conf token: also_scan_dirs. When scanning volumes for
1481 EFI boot loaders, rEFInd always scans the root directory and every
1482 subdirectory of the /EFI directory, but it doesn't recurse into these
1483 directories. The also_scan_dirs token adds more directories to the scan
1484 list. It defaults to "elilo,boot", but you can set it to any directory or
1485 directories you like.
1486
1487 0.2.6 (4/14/2012):
1488 ------------------
1489
1490 - Added "volume" keyword to configuration file's stanza options. This
1491 option changes the volume from which subsequent files (specified by
1492 "loader" and "icon") are loaded. You pass "volume" the name/label of the
1493 FILESYSTEM you want to use (not the GPT partition name), or a number
1494 followed by a colon (e.g., "1:"). The former should reliably identify a
1495 filesystem, assuming the name is unique. The latter assigns numbers based
1496 on the order in which they're scanned, which may not be as reliable but
1497 should work when a volume is unnamed.
1498
1499 - Fixed bug in 0.2.5 that caused failure of Linux initial RAM disk
1500 mapping on some (but not all) systems. Affected computers include at
1501 least some Intel motherboards, maybe others.
1502
1503 0.2.5 (4/9/2012):
1504 -----------------
1505
1506 - Fixed bug that caused an inability to associate initial RAM disks with
1507 Linux kernels stored in a volume's root directory.
1508
1509 - Volume badges (that override default badges) are now stored in
1510 .VolumeBadge.icns. Although undocumented, rEFInd formerly loaded custom
1511 volume badges from .VolumeIcon.icns. This carryover from rEFIt was a
1512 confusing name, given the next (new) feature, so I've changed and
1513 documented the name....
1514
1515 - Added ability to set a default icon for a loader stored in the root
1516 directory of a volume: The icon is stored in .VolumeIcon.icns. This icon
1517 is also used for Mac OS X volumes booted from the standard location.
1518
1519 - Fixed bug that caused icons to drop back to generic icons when rEFInd
1520 was launched in certain ways (such as from an EFI shell in rEFInd's
1521 directory) on certain systems.
1522
1523 - Fixed bug that caused "unknown disable flag" to be shown (very briefly)
1524 instead of "unknown hideui flag" when an improper hideui flag was set.
1525
1526 0.2.4 (4/5/2012):
1527 -----------------
1528
1529 - Created new refind.conf entry: "showtools". This entry takes options of
1530 "shell", "gptsync", "about", "exit", "reboot", and "shutdown". This
1531 option is in some respects an affirmative version of portions of the old
1532 "disable" and "hideui" options; however, it enables users to specify the
1533 order in which these options appear on the screen. Also, the "exit"
1534 option is new; it terminates the program. The effect is usually to return
1535 to whatever tool launched it or to launch a default OS; however, this is
1536 somewhat unpredictable. The default therefore omits the "exit" option, as
1537 well as "gptsync", which has always been dangerous (but necessary on most
1538 MacOS/Windows dual-boot setups on Macs). As part of this reconfiguration,
1539 I've eliminated the "rescue Linux" option, which always seemed pointless
1540 to me.
1541
1542 - Folded "disable" and "hideui" refind.conf entries into one ("disable"),
1543 and reduced the number of options to six: "banner", "label",
1544 "singleuser", "hwtest", "arrows", and "all". ("arrows" is new and
1545 disables the scroll arrows when a system has too many tags to display
1546 simultaneously.)
1547
1548 - Added max_tags option to the refind.conf file, enabling users to reduce
1549 the maximum number of OS loader tags that can be displayed at once.
1550
1551 - Updated rEFIt icon, based on the 128x128 volume label from the rEFIt CD
1552 image.
1553
1554 - Added x86 and x86-64 EFI shells to the CD image version of the binary,
1555 but NOT to the binary zip file. The logic is that the CD image is more
1556 likely to be used directly as an emergency disc and so may need this
1557 feature, even though the source isn't part of the rEFInd project. (The
1558 source is readily available from the TianoCore project.)
1559
1560 - EFI shells may now be stored at /shellx64.efi for x86-64 systems or at
1561 /shellia32.efi for x86 systems. The /EFI/tools/shell.efi name is also
1562 recognized; however, if both files are present, two EFI shell icons will
1563 appear on the main menu. The /efi/{refind-path/apps/shell.efi filename,
1564 which was never officially documented but worked as a carryover from
1565 rEFIt, is no longer valid.
1566
1567 0.2.3 (3/26/2012):
1568 ------------------
1569
1570 - Fixed (maybe) a bug that caused hangs when launching a second program
1571 after returning from a first. There are some weird system-to-system
1572 differences, though, and this fix causes (apparently harmless) error
1573 messages about "(re)opening our installation volume" on at least one
1574 system (a 32-bit Mac Mini). I'm committing this change because, imperfect
1575 though it is, it's preferable to the earlier version, at least on my
1576 small sample of computers.
1577
1578 - Because of news that the Linux kernel developers are planning to use the
1579 filename linux.conf to hold Linux kernel configuration data for EFI
1580 booting, I'm transitioning rEFInd away from that name and to
1581 refind_linux.conf to avoid a conflict. This version can use either name,
1582 with refind_linux.conf taking precedence if both are present.
1583
1584 - Added logo for Arch Linux.
1585
1586 0.2.2 (3/23/2012):
1587 ------------------
1588
1589 - Fixed bug that caused program failure when Linux kernels with EFI stub
1590 support were detected with no associated version numbers. rEFInd now
1591 permits automatic linking of *ONE* versionless kernel to *ONE*
1592 versionless initrd file.
1593
1594 - Fixed bug that caused program hangs when a boot loader filename or label
1595 was too long. Such names are now properly truncated and program execution
1596 continues.
1597
1598 - Fixed bug that caused no text to appear in submenus on UEFI systems with
1599 small screens (800x600). NOTE: Problem still occurs on screens smaller
1600 than this, but such systems are very rare.
1601
1602 0.2.1 (3/19/2012):
1603 ------------------
1604
1605 - Added ability to set a "default_selection" that's a title or a substring
1606 of one -- the name given to a stanza in a "menuentry" or the boot
1607 loader's filename, in most cases, although "Mac OS X", "Windows XP
1608 (XoM)", and "Microsoft EFI boot" are also titles.
1609
1610 - Added support for semi-automatic scans of Linux kernels with EFI stub
1611 loader support. The program auto-detects matching initial RAM disk files
1612 and loads additional options from the "linux.conf" file in the same
1613 directory as the kernel.
1614
1615 - Added support for "submenuentry" keyword and associated sub-stanza
1616 entries in refind.conf file.
1617
1618 - Renamed icons/os_mint.icns to icons/os_linuxmint.icns to match the
1619 filename Linux Mint ACTUALLY uses for its ESP boot loader directory.
1620
1621
1622 0.2.0 (3/14/2012):
1623 ------------------
1624
1625 - Initial public release