X-Git-Url: https://code.delx.au/refind/blobdiff_plain/315c06865c0b4e3dfceec2107e6e12713813ea8a..c234a62eb700ca3167345fc1be035fdcf19999b4:/docs/refind/drivers.html diff --git a/docs/refind/drivers.html b/docs/refind/drivers.html index b94291c..7dc2311 100644 --- a/docs/refind/drivers.html +++ b/docs/refind/drivers.html @@ -8,6 +8,8 @@ + +

The rEFInd Boot Manager:
Using EFI Drivers

@@ -15,10 +17,10 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com

Originally written: 4/19/2012; last Web page update: -12/11/2012, referencing rEFInd 0.5.1

+4/24/2016, referencing rEFInd 0.10.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!

+

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!

@@ -26,49 +28,82 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com

+ - - - - + + -
Donate $2.50 Donate $5.00 Donate $10.00Donate $20.00 Donate another value
- + +
+ + - + + - + + + -
- + +
+ + - + + - + + + -
- + + +
+ + - + + - + + + -
- + +
+ + - + + - + + + + +
+ + + + + + + + + +
@@ -78,11 +113,10 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com

- -Donate with PayPal +
+
@@ -90,15 +124,42 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com


+
+

Beginning with version 0.2.7, rEFInd has been able to load EFI drivers, and as of version 0.4.0, it has shipped with some EFI filesystem drivers. Although EFI implementations should be able to load drivers prior to rEFInd's launch, in my experience, most EFI implementations offer such poor control over EFI driver loading that they can't be counted on to do this. Thus, if you want to use EFI drivers, rEFInd's ability to do so can be useful. This page tells you why you might want to use drivers, how you can install and use rEFInd's own drivers, where you can go to find other drivers, and provides tips on a few specific drivers.

+
+ + + +
+

Why Should You Use EFI Drivers?

+

EFI supports drivers, which can activate hardware or filesystems in the pre-boot environment. At the moment, EFI drivers are few and far between; but you can or might want to use them for various reasons:

+ +

Driver availability could increase in the future. If you know of +additional EFI drivers, please tell +me about them, so I can share the information here. Likewise if you +know of a source for other EFI drivers—say, for a video card or disk +controller card.

Once you've obtained an EFI driver, you can install it in rEFInd just as you would install rEFInd's own drivers, as described earlier.

@@ -208,19 +361,35 @@ fs0: map -r

Notes on Specific Drivers

-

I've tested several of the drivers described on this page on a handful of systems. The Pfisterer ext2fs driver (from any source) works on both ext2fs and ext3fs, but not on ext4fs—but Agner's derivative ext4fs driver handles ext4fs, so that's not a problem. The ReiserFS driver is obviously useful only on ReiserFS partitions. (Reiser4 is not supported, as far as I know.) Given that ext2fs, ext3fs, and ReiserFS are getting a bit on in age by Linux standards, you might do well to use them on a separate Linux /boot partition; however, if you're willing to use ext3fs or ReiserFS on your root (/) filesystem, you can use the EFI drivers to read your kernel from it. If you use ext4fs on your root (/) filesystem, you can use the ext4fs driver rather than a separate /boot partition. Note that this assumes you use conventional partitions; to the best of my knowledge, there's no EFI driver for Linux's Logical Volume Manager (LVM) or Redundant Array of Independent Disks (RAID) configurations, so the EFI can't access filesystems stored in these ways.

- -

The Pfisterer ReiserFS and ext2fs drivers work, but they are a bit sluggish—particularly the ext2fs driver. The Agner ext4fs driver, when handling an actual ext4 filesystem, is in-between these two drivers in speed. The extent of the problem depends on the computer. In my tests so far, VirtualBox has fared the worst. On it, loading a Linux kernel with EFI stub loader from a FAT partition takes 2 seconds, from the moment of selecting the OS in rEFInd to the moment the kernel messages begin to appear. The equivalent time using ReiserFS or HFS+ is 20 seconds, with ext4fs it's 75 seconds, and with ext2fs it's 200 seconds (that is, 3 minutes and 20 seconds). On a 32-bit Mac Mini, though, the speed problem is much less pronounced—my kernel loads in just 3 seconds from a ReiserFS partition and in 13 seconds from an ext2 filesystem. Speeds were similar with my newest computer, an ASUS P8H77-I board. Times with ext2fs on a UEFI PC with an Intel motherboard are in the 2–4 second range. If you try the ext2fs driver and it seems to hang, be patient; it may finally boot up. If so, and if the delay is too great for you to accept, you might consider using ext4fs or ReiserFS instead of ext2fs or ext3fs, at least if a change is practical. (For a /boot partition, it almost certainly is practical; you can back it up quite easily, create a fresh filesystem on it, and restore it. You may need to adjust your /etc/fstab entry for a new UUID value, though. As noted earlier, be sure to use notail as an option in /etc/fstab for ReiserFS if you want to read it from EFI.) You can even use HFS+ on a Linux /boot partition, although this makes the most sense on a Mac, which has its own EFI HFS+ driver. Of course, you can also create a FAT /boot partition and not deal with drivers at all. Mounting your ESP at /boot is a practical solution for many users.

- -

Since the ext2fs and ReiserFS drivers share a common origin, it should come as no surprise that they perform in much the same way no matter which version (rEFIt, Clover, or rEFInd) you use. The NTFS driver from the Clover Tools package is nice and speedy, so if for some reason you need to place a boot loader on an NTFS volume, this driver might be worth tracking down.

- -

Although ext2fs, ext3fs, ext4fs, and ReiserFS are all case-sensitive, these drivers treat them in a case-insensitive way. Symbolic links work, which opens up possibilities for configuration, such as using a single kernel binary for multiple Linux distributions, with a link in one subdirectory pointing to a file in another directory. (If you try this, though, be sure to use relative links, as in ../otherdist/bzImage.efi, at least if the partition is not Linux's root filesystem.)

+ + +

I've tested several of the drivers described on this page on a handful +of systems. The Pfisterer ext2fs driver (from any source) works on both +ext2fs and ext3fs, but not on ext4fs—but Agner's derivative ext4fs +driver handles ext4fs, so that's not a problem. The ReiserFS driver is +obviously useful only on ReiserFS partitions. (Reiser4 is not supported, as +far as I know.) The Btrfs driver is the newest of the Linux filesystem +drivers included with rEFInd, and so I've tested it the least, but it's +worked for me on several test systems. Given that ext2fs, ext3fs, and +ReiserFS are getting a bit on in age by Linux standards, you might do well +to use them on a separate Linux /boot partition; however, if +you're willing to use ext3fs, ext4fs, Btrfs, or ReiserFS on your root +(/) filesystem, you can use the EFI drivers to read your kernel +from it. Note that this assumes you use conventional partitions; to the +best of my knowledge, there's no EFI driver for Linux's Logical Volume +Manager (LVM) or Redundant Array of Independent Disks (RAID) +configurations, so the EFI can't access filesystems stored in these +ways.

+ +

As noted earlier, rEFInd's drivers prior to version 0.7.0, as well as related drivers from rEFIt, Clover, and VirtualBox, suffer from speed problems. These problems are mostly minor, adding a second or two to boot times; but on some computers, the speed problems can be dramatic, boosting kernel-load times up to as much as three minutes (under VirtualBox). If you run into excessive boot times with such a driver, try switching to the latest rEFInd driver instead. You might also try Pete Batard's efifs drivers.

+ +

Although ext2fs, ext3fs, ext4fs, and ReiserFS are all case-sensitive, these drivers treat them in a case-insensitive way. Symbolic links work; however, rEFInd 0.6.11 and later ignore symbolic links, since many distributions use them in a way that creates redundant or non-functional entries in the rEFInd menu. You should be able to use hard links if you want to use a single kernel file in multiple ways (say for two distributions).


-

copyright © 2012 by Roderick W. Smith

+

copyright © 2012–2016 by Roderick W. Smith

This document is licensed under the terms of the GNU Free Documentation License (FDL), version 1.3.