From 5664ed3ea160466286aa2c5711f8094b0ec7003b Mon Sep 17 00:00:00 2001 From: srs5694 Date: Mon, 26 Mar 2012 18:31:52 -0400 Subject: [PATCH] Version 0.2.3 --- NEWS.txt | 2 +- docs/refind/bootmode.html | 2 +- docs/refind/configfile.html | 2 +- docs/refind/features.html | 2 +- docs/refind/getting.html | 16 ++++++++++++---- docs/refind/index.html | 10 ++++++---- docs/refind/installing.html | 2 +- docs/refind/linux.html | 32 +++++++++++++++----------------- docs/refind/revisions.html | 4 +++- docs/refind/todo.html | 4 +++- docs/refind/using.html | 2 +- mkdistrib | 4 ++-- refind/config.c | 14 +++++++++----- refind/main.c | 2 +- 14 files changed, 57 insertions(+), 41 deletions(-) diff --git a/NEWS.txt b/NEWS.txt index 946ec98..abfad76 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -1,4 +1,4 @@ -0.2.3 (?/??/2012): +0.2.3 (3/26/2012): ------------------ - Fixed (maybe) a bug that caused hangs when launching a second program diff --git a/docs/refind/bootmode.html b/docs/refind/bootmode.html index 8b3e61e..87bd5c7 100644 --- a/docs/refind/bootmode.html +++ b/docs/refind/bootmode.html @@ -14,7 +14,7 @@

by Roderick W. Smith, rodsmith@rodsbooks.com

-

Originally written: 3/14/2012; last Web page update: 3/23/2012, referencing rEFInd 0.2.2

+

Originally written: 3/14/2012; last Web page update: 3/26/2012, referencing rEFInd 0.2.3

I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!

diff --git a/docs/refind/configfile.html b/docs/refind/configfile.html index 00fdc66..9c3b9b1 100644 --- a/docs/refind/configfile.html +++ b/docs/refind/configfile.html @@ -14,7 +14,7 @@

by Roderick W. Smith, rodsmith@rodsbooks.com

-

Originally written: 3/14/2012; last Web page update: 3/23/2012, referencing rEFInd 0.2.2

+

Originally written: 3/14/2012; last Web page update: 3/26/2012, referencing rEFInd 0.2.3

I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!

diff --git a/docs/refind/features.html b/docs/refind/features.html index 6ebadfc..7b045d7 100644 --- a/docs/refind/features.html +++ b/docs/refind/features.html @@ -14,7 +14,7 @@

by Roderick W. Smith, rodsmith@rodsbooks.com

-

Originally written: 3/14/2012; last Web page update: 3/23/2012, referencing rEFInd 0.2.2

+

Originally written: 3/14/2012; last Web page update: 3/26/2012, referencing rEFInd 0.2.3

I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!

diff --git a/docs/refind/getting.html b/docs/refind/getting.html index b741db1..7b1aefa 100644 --- a/docs/refind/getting.html +++ b/docs/refind/getting.html @@ -14,7 +14,7 @@

by Roderick W. Smith, rodsmith@rodsbooks.com

-

Originally written: 3/14/2012; last Web page update: 3/23/2012, referencing rEFInd 0.2.2

+

Originally written: 3/14/2012; last Web page update: 3/26/2012, referencing rEFInd 0.2.3

I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!

@@ -90,12 +90,14 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com

Note: I consider rEFInd to be alpha-quality software! Although rEFIt 0.14, upon which rEFInd is based, is beta-quality, I've changed a great deal of the code, and I'm still learning about it. I'm discovering bugs (old and new) and fixing them every day or two. That said, rEFInd is a usable program in its current form on many systems. If you have problems, feel free to drop me a line.

+

Getting rEFInd from Sourceforge

+

You can find the rEFInd source code and binary packages at its SourceForge page. Note that rEFInd is OS-independent—it runs before the OS, so you download the same binary package for any OS. You can obtain rEFInd in three different forms:

diff --git a/docs/refind/installing.html b/docs/refind/installing.html index f36d85b..84e70ac 100644 --- a/docs/refind/installing.html +++ b/docs/refind/installing.html @@ -14,7 +14,7 @@

by Roderick W. Smith, rodsmith@rodsbooks.com

-

Originally written: 3/14/2012; last Web page update: 3/23/2012, referencing rEFInd 0.2.2

+

Originally written: 3/14/2012; last Web page update: 3/26/2012, referencing rEFInd 0.2.3

I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!

diff --git a/docs/refind/linux.html b/docs/refind/linux.html index a0023ef..ed93b38 100644 --- a/docs/refind/linux.html +++ b/docs/refind/linux.html @@ -14,7 +14,7 @@

by Roderick W. Smith, rodsmith@rodsbooks.com

-

Originally written: 3/19/2012; last Web page update: 3/23/2012, referencing rEFInd 0.2.2

+

Originally written: 3/19/2012; last Web page update: 3/26/2012, referencing rEFInd 0.2.3

I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!

@@ -111,21 +111,19 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com

    -
  1. rEFInd looks for boot loaders whose names include the strings bzImage or vmlinuz and that end in .efi. For instance, bzImage-3.3.0.efi or vmlinuz-3.3.0-fc17.efi would match, and trigger subsequent steps in this procedure. Note that to use this system, you must give your kernel file a .efi extension, at least on the ESP!
  2. +
  3. rEFInd looks for boot loaders whose names include the strings bzImage or vmlinuz and that end in .efi. For instance, bzImage-3.3.0.efi or vmlinuz-3.3.0-fc17.efi would match, and trigger subsequent steps in this procedure. Note that to use this system, you must give your kernel file a .efi extension, at least on the ESP (or other boot loader partition, for Macs)!
  4. - +
  5. rEFInd looks for an initial RAM disk in the same directory as the kernel file. A matching initial RAM disk has a name that begins with init and that includes the same version string as the kernel. The version string is defined as the part of the filename from the first digit to the last digit, inclusive. Note that the version string can include non-digits. For instance, the version string for bzImage-3.3.0.efi is 3.3.0, which matches initramfs-3.3.0.bz; and vmlinuz-3.3.0-fc17.efi's version string is 3.3.0-fc17, which matches initrd-3.3.0-fc17.img. Many other matches are possible. If an initial RAM disk is identified, rEFInd passes a suitable initrd= option to the kernel when it boots.
  6. -
  7. rEFInd looks for a file called linux.conf in the same directory as the kernel file. This file is a practical requirement for booting from an auto-detected kernel. It consists of a series of lines, each of which consists of a label followed by a series of kernel options. The first line sets default options, and subsequent lines set options that are accessible from the main menu tag's submenu screen.
  8. + + +
  9. rEFInd looks for a file called refind_linux.conf in the same directory as the kernel file. This file is a practical requirement for booting from an auto-detected kernel. It consists of a series of lines, each of which consists of a label followed by a series of kernel options. The first line sets default options, and subsequent lines set options that are accessible from the main menu tag's submenu screen.
-

The intent of this system is that distribution maintainers can place their kernels, initial RAM disks, and a linux.conf file in their own subdirectory on the ESP. rEFInd will detect their kernels and create one main menu entry for each kernel. Each entry will implement as many options as there are lines in the linux.conf file. In this way, two or more distributions can each maintain their boot loader entries, without being too concerned for who maintains rEFInd as a whole.

+

The intent of this system is that distribution maintainers can place their kernels, initial RAM disks, and a refind_linux.conf file in their own subdirectory on the ESP. rEFInd will detect their kernels and create one main menu entry for each kernel. Each entry will implement as many options as there are lines in the refind_linux.conf file. In this way, two or more distributions can each maintain their boot loader entries, without being too concerned about who maintains rEFInd as a whole.

As an example, consider the following file configuration:

@@ -135,10 +133,10 @@ total 17943 -rwxr-xr-x 1 root root 4781632 2012-03-18 12:01 bzImage-3.3.0.efi -rwxr-xr-x 1 root root 131072 2011-10-14 04:10 grubx64.EFI -rwxr-xr-x 1 root root 13459936 2012-03-18 12:02 initrd.img-3.3.0 --rwxr-xr-x 1 root root 266 2012-03-18 19:39 linux.conf +-rwxr-xr-x 1 root root 266 2012-03-26 19:39 refind_linux.conf -

When rEFInd scans this directory, it will find two EFI boot loaders in EFI/ubuntu: grubx64.EFI and bzImage-3.3.0.efi. rEFInd will create two main-menu tags for these two loaders, one of which will launch Ubuntu's standard GRUB and the other of which will launch the 3.3.0 kernel file directly. The linux.conf file contains a list of labels and options:

+

When rEFInd scans this directory, it will find two EFI boot loaders in EFI/ubuntu: grubx64.EFI and bzImage-3.3.0.efi. rEFInd will create two main-menu tags for these two loaders, one of which will launch Ubuntu's standard GRUB and the other of which will launch the 3.3.0 kernel file directly. The refind_linux.conf file contains a list of labels and options:

 "Boot with defaults"         "root=/dev/sda3 ro quiet splash vt.handoff=7"
@@ -153,10 +151,10 @@ total 17943
 
     
rEFInd can load Linux boot options from
-    a linux.conf file in the Linux kernel's directory.

-

Note that the first entry shown here takes a name that's set in rEFInd rather than the one specified in the linux.conf file. The remaining names match those specified in the file, though.

+

Note that the first entry shown here takes a name that's set in rEFInd rather than the one specified in the refind_linux.conf file. The remaining names match those specified in the file, though.

From a user's perspective, the submenus defined in this way work just like submenus defined via the submenuentry options in refind.conf, or like the submenus that rEFInd creates automatically for Mac OS X or ELILO. There are, however, limitations in what you can accomplish with this method:

@@ -164,19 +162,19 @@ total 17943
  • Your kernels must be compiled with EFI stub loader support.
  • -
  • You can't set an option to boot via a different boot loader, such as ELILO or GRUB; all the options apply to a single boot loader—that is, a single kernel.
  • +
  • You can't set a submenu option to boot via a different boot loader, such as ELILO or GRUB; all the submenu options apply to a single boot loader—that is, a single kernel. (rEFInd will still detect other boot loaders and provide separate main-menu tags for them, though.)
  • If an installation includes two or more kernel files, each one receives its own main-menu entry; you can't combine them together in one menu item. This is essentially a corollary of the preceding limitation. The result can be an overburdened main menu if your system has many kernels.
  • -
  • All the kernels in a given directory use the same linux.conf file. If you need to set different options for different kernels, you'll need to place those kernels in different directories.
  • +
  • All the kernels in a given directory use the same refind_linux.conf file. If you need to set different options for different kernels, you'll need to place those kernels in different directories.
  • You must place your kernels in a directory other than the one that holds the main rEFInd .efi file. This is because rEFInd does not scan its own directory for boot loaders.
  • -

    On the whole, this method of configuration has a lot going for it. For distribution maintainers, if you place your Linux kernel files (with EFI stub support) on the ESP, with suitable filenames, matching initial RAM disk files, and a linux.conf file, then any rEFInd 0.2.1 or later installation should detect your files, even if the user installs another distribution with another rEFInd that takes over from yours. (If the user, or this other rEFInd installation, disables auto-detection, this won't work.)

    +

    On the whole, this method of configuration has a lot going for it. For distribution maintainers, if you place your Linux kernel files (with EFI stub support) on the ESP, with suitable filenames, matching initial RAM disk files, and a refind_linux.conf file, then any rEFInd 0.2.3 or later installation should detect your files, even if the user installs another distribution with another rEFInd that takes over from yours. (If the user, or this other rEFInd installation, disables auto-detection, this won't work.)

    -

    For end users, this method is simpler than maintaining manual configurations in refind.conf (or equivalents for ELILO or GRUB). To install a new kernel, you need only copy it and its initial RAM disk, under suitable names, to a scanned directory on the ESP. There's no need to touch any configuration file, provided you've already set up linux.conf in your kernel's directory. You will, however, have to adjust linux.conf if you make certain changes, such as if your root directory identifier changes.

    +

    For end users, this method is simpler than maintaining manual configurations in refind.conf (or equivalents for ELILO or GRUB). To install a new kernel, you need only copy it and its initial RAM disk, under suitable names, to a scanned directory on the ESP. There's no need to touch any configuration file, provided you've already set up refind_linux.conf in your kernel's directory. You will, however, have to adjust refind_linux.conf if you make certain changes, such as if your root directory identifier changes.


    diff --git a/docs/refind/revisions.html b/docs/refind/revisions.html index be8214d..0115e7f 100644 --- a/docs/refind/revisions.html +++ b/docs/refind/revisions.html @@ -14,7 +14,7 @@

    by Roderick W. Smith, rodsmith@rodsbooks.com

    -

    Last Web page update: 3/23/2012

    +

    Last Web page update: 3/26/2012

    I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!

    @@ -93,6 +93,8 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com