]> code.delx.au - refind/blob - docs/refind/bootmode.html
Version 0.6.12 release.
[refind] / docs / refind / bootmode.html
1 <?xml version="1.0" encoding="utf-8" standalone="no"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
3 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
4
5 <html xmlns="http://www.w3.org/1999/xhtml">
6 <head>
7 <title>The rEFInd Boot Manager: What's Your Boot Mode?</title>
8 <link href="../Styles/styles.css" rel="stylesheet" type="text/css" />
9 </head>
10
11 <body>
12 <h1>The rEFInd Boot Manager:<br />What's Your Boot Mode?</h1>
13
14 <p class="subhead">by Roderick W. Smith, <a
15 href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
16
17 <p>Originally written: 3/14/2012; last Web page update:
18 6/18/2013, referencing rEFInd 0.6.12</p>
19
20
21 <p>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!</p>
22
23 <table border="1">
24 <tr>
25 <td>Donate $1.00</td>
26 <td>Donate $2.50</td>
27 <td>Donate $5.00</td>
28 <td>Donate $10.00</td>
29 <td>Donate $20.00</td>
30 <td>Donate another value</td>
31 </tr>
32 <tr>
33
34 <td>
35 <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
36 <input type="hidden" name="cmd" value="_donations">
37 <input type="hidden" name="business" value="rodsmith@rodsbooks.com">
38 <input type="hidden" name="lc" value="US">
39 <input type="hidden" name="no_note" value="0">
40 <input type="hidden" name="currency_code" value="USD">
41 <input type="hidden" name="amount" value="1.00">
42 <input type="hidden" name="item_name" value="rEFInd Boot Manager">
43 <input type="hidden" name="bn" value="PP-DonationsBF:btn_donate_LG.gif:NonHostedGuest">
44 <input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
45 <img alt="Donate with PayPal" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
46 </form>
47 </td>
48
49 <td>
50 <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
51 <input type="hidden" name="cmd" value="_donations">
52 <input type="hidden" name="business" value="rodsmith@rodsbooks.com">
53 <input type="hidden" name="lc" value="US">
54 <input type="hidden" name="no_note" value="0">
55 <input type="hidden" name="currency_code" value="USD">
56 <input type="hidden" name="amount" value="2.50">
57 <input type="hidden" name="item_name" value="rEFInd Boot Manager">
58 <input type="hidden" name="bn" value="PP-DonationsBF:btn_donate_LG.gif:NonHostedGuest">
59 <input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
60 <img alt="Donate with PayPal" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
61 </form>
62 </td>
63
64
65 <td>
66 <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
67 <input type="hidden" name="cmd" value="_donations">
68 <input type="hidden" name="business" value="rodsmith@rodsbooks.com">
69 <input type="hidden" name="lc" value="US">
70 <input type="hidden" name="no_note" value="0">
71 <input type="hidden" name="currency_code" value="USD">
72 <input type="hidden" name="amount" value="5.00">
73 <input type="hidden" name="item_name" value="rEFInd Boot Manager">
74 <input type="hidden" name="bn" value="PP-DonationsBF:btn_donate_LG.gif:NonHostedGuest">
75 <input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
76 <img alt="Donate with PayPal" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
77 </form>
78 </td>
79
80 <td>
81 <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
82 <input type="hidden" name="cmd" value="_donations">
83 <input type="hidden" name="business" value="rodsmith@rodsbooks.com">
84 <input type="hidden" name="lc" value="US">
85 <input type="hidden" name="no_note" value="0">
86 <input type="hidden" name="currency_code" value="USD">
87 <input type="hidden" name="amount" value="10.00">
88 <input type="hidden" name="item_name" value="rEFInd Boot Manager">
89 <input type="hidden" name="bn" value="PP-DonationsBF:btn_donate_LG.gif:NonHostedGuest">
90 <input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
91 <img alt="Donate with PayPal" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
92 </form>
93 </td>
94
95 <td>
96 <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
97 <input type="hidden" name="cmd" value="_donations">
98 <input type="hidden" name="business" value="rodsmith@rodsbooks.com">
99 <input type="hidden" name="lc" value="US">
100 <input type="hidden" name="no_note" value="0">
101 <input type="hidden" name="currency_code" value="USD">
102 <input type="hidden" name="amount" value="20.00">
103 <input type="hidden" name="item_name" value="rEFInd Boot Manager">
104 <input type="hidden" name="bn" value="PP-DonationsBF:btn_donate_LG.gif:NonHostedGuest">
105 <input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
106 <img alt="Donate with PayPal" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
107 </form>
108 </td>
109
110 <td>
111 <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
112 <input type="hidden" name="cmd" value="_donations">
113 <input type="hidden" name="business" value="rodsmith@rodsbooks.com">
114 <input type="hidden" name="lc" value="US">
115 <input type="hidden" name="no_note" value="0">
116 <input type="hidden" name="currency_code" value="USD">
117 <input type="hidden" name="item_name" value="rEFInd Boot Manager">
118 <input type="hidden" name="bn" value="PP-DonationsBF:btn_donate_LG.gif:NonHostedGuest">
119 <input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
120 <img alt="Donate with PayPal" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
121 </form>
122 </td></tr>
123 </table>
124
125 <hr />
126
127 <p>This page is part of the documentation for the rEFInd boot manager. If a Web search has brought you here, you may want to start at the <a href="index.html">main page.</a></p>
128
129 <hr />
130
131 <div style="float:right; width:55%">
132
133 <p>Before you invest time in downloading and trying to install rEFInd, you may want to verify that you can actually use the program at all. rEFInd is useful only on EFI-based computers, not older BIOS-based computers. In fact, most EFI-based <i>x</i>86-64 computers provide a Compatibility Support Module (CSM), which is essentially a BIOS emulation mode. Some EFI implementations are in fact built atop a conventional BIOS, and retain BIOS's boot abilities via this underlying code. Thus, it's possible that you're currently booting a modern EFI-capable computer in BIOS mode.</p>
134
135 </div>
136
137 <div class="navbar">
138
139 <h4 class="tight">Contents</h4>
140
141 <ul>
142
143 <li class="tight"><a href="#identifying">Identifying Your Hardware's Capabilities</li>
144
145 <li class="tight"><a href="#linux">Identifying Your Linux Boot Mode</a></li>
146
147 <li class="tight"><a href="#windows">Identifying Your Windows Boot Mode</a></li>
148
149 </ul>
150
151 </div>
152
153 <p>Unfortunately, determining which mode you're using can be tricky; the clues are subtle or hidden in ways that require specialized knowledge to extract. This page will help you figure it out. I first present general information on identifying your hardware's capabilities. I then describe ways to identify your current boot mode in both Linux and Windows.</p>
154
155 <a name="identifying">
156 <h2>Identifying Your Hardware's Capabilities</h2>
157 </a>
158
159 <p>Let's get the easy case out of the way: If you have a Macintosh with an Intel CPU, it's got EFI capabilities, and you'll be able to use rEFInd. Earlier Macs with PowerPC CPUs use OpenFirmware, and rEFInd can't be used with them.</p>
160
161 <p>For everything else, it can be harder to tell. Your best bet is to locate a PDF version of your computer's or motherboard's manual and search it for the string <i>EFI</i>. Checking your firmware's options via the firmware setup utility (typically access by pressing Del, F2, F10, or F12 at boot time) is also worth doing, but you'll need to check every option yourself. Most EFI-enabled PCs include at least one reference to an option you can set; however, manuals and firmware setup tools often don't make a big deal of this feature, particularly on boards with relatively primitive EFI support. For instance, the manual for a Gigabyte GA-78LMT-S2P motherboard includes the following paragraph, on p. 28:</p>
162
163 <div class="quote">
164 <ul>
165 <li><b>EFI CD/DVD Boot Option</b><br/>Set this item to <b>EFI</b> if you want to install the operating system to a hard drive larger than 2.2 TB. Make sure the operating system to be installed supports booting from a GPT partition, such as Windows 7 64-bit and Windows Server 2003 64-bit. <b>Auto</b> lets the BIOS automatically configure this setting depending on the hard drive you install. (Default: Auto)</li>
166 </ul>
167 </div>
168
169 <p>A casual reader might easily overlook this option, or misinterpret it to mean that the feature is much less important than it is. In fact, this particular motherboard offers very poor control over its EFI vs. BIOS booting features. (See <a href="http://www.rodsbooks.com/gb-hybrid-efi/">my Web page on this EFI implementation</a> for details.)</p>
170
171 <p>Some manuals omit even mention of EFI, and instead refer to "legacy boot" or some similar term, referring to BIOS-style booting. The firmware for my ASUS P8H77-I motherboard uses the technical term <i>CSM,</i> which of course will be baffling to the uninitiated. (I referred to it earlier. It's the <i>Compatibility Support Module</i>&mdash;in other words, the BIOS support code.) Such references may imply that the firmware supports EFI booting if the "legacy boot" mode is disabled or restricted in some way.</p>
172
173 <p>Understated EFI features often indicate a slapdash approach to EFI. Such systems sometimes implement EFI as a layer atop a conventional BIOS. More modern EFIs, though, completely replace the BIOS. Some manufacturers, such as ASUS and its sibling ASRock, are now actively promoting their more advanced EFI implementations. Such products often come with flashy new GUIs in their firmware.</p>
174
175 <p>Positive identification of EFI support in your firmware does <i>not</i> guarantee that your current OSes are booting in EFI mode. (Mac OS X booting on a Mac is an exception to this rule, though.) For that, you'll need to run some tests in your running OSes.</p>
176
177 <a name="linux">
178 <h2>Identifying Your Linux Boot Mode</h2>
179 </a>
180
181 <p>Identifying your boot mode in Linux is relatively straightforward. The simplest way is to check for the presence of a <tt>/sys/firmware/efi</tt> directory. The mere existence of this directory indicates that the computer has booted in EFI mode. Its absence suggests a BIOS-mode boot&mdash;but see below for an important caveat.</p>
182
183 <p>Another test, which produces more detailed information about the EFI implementation, is to check the kernel ring buffer for references to EFI. You can do this as follows:</p>
184
185 <ol>
186
187 <li>Launch a terminal program in GUI mode, or log in using text mode.</li>
188
189 <li>Type <b><tt>dmesg | grep EFI</tt></b>.
190
191 </ol>
192
193 <p>The result on a BIOS-based computer should be few or no lines of output. On an EFI-based computer, though, the output will be extensive:</p>
194
195 <pre class="listing">
196 [ 0.000000] Command line: BOOT_IMAGE=dev000:\EFI\elilo\bzImage-3.2.7 root=/dev/mapper/nessus-g_root dolvm ro
197 [ 0.000000] EFI v2.10 by TianoCore.org
198 [ 0.000000] Kernel-defined memdesc doesn't match the one from EFI!
199 [ 0.000000] EFI: mem00: type=7, attr=0xf, range=[0x0000000000086000-0x000000000009c000) (0MB)
200 [ 0.000000] EFI: mem01: type=4, attr=0xf, range=[0x000000000009c000-0x000000000009d000) (0MB)
201 ...
202 [ 0.000000] EFI: mem58: type=0, attr=0x1, range=[0x00000000fec00000-0x0000000100000000) (20MB)
203 [ 0.000000] EFI: mem59: type=7, attr=0xf, range=[0x0000000100000000-0x0000000230000000) (4864MB)
204 [ 0.000000] Kernel command line: BOOT_IMAGE=dev000:\EFI\elilo\bzImage-3.2.7 root=/dev/mapper/nessus-g_root dolvm ro
205 [ 0.844752] fbcon: EFI VGA (fb0) is primary device
206 [ 0.853525] fb0: EFI VGA frame buffer device
207 [ 1.061571] EFI Variables Facility v0.08 2004-May-17
208 </pre>
209
210 <p>I've actually cut quite a few lines from this output; there are a total of 60 <tt>EFI: mem<i>##</i></tt> lines on this computer. (Another of my computers has 148 such lines!) A BIOS-based computer will lack most or all of these lines, and certainly the <tt>EFI: mem<i>##</i></tt> lines. I've heard of some BIOS-based computers that produce the final <tt>EFI Variables Facility</tt> line, though.</p>
211
212 <p>One caveat exists to these tests: It's possible to boot Linux in EFI mode but disable the EFI features that create the <tt>/sys/firmware/efi</tt> directory and the copious EFI output in <tt>dmesg</tt>. This can happen because your kernel was compiled without EFI support or because you've added the <tt>noefi</tt> line to your existing BIOS boot loader configuration. Some of these features will also be absent if the <tt>efivars</tt> driver is not built into the kernel and is not loaded as a module. Typing <tt class="userinput">modprobe efivars</tt> should load this module, so you might try that before concluding you've booted in BIOS mode. To the best of my knowledge, no major Linux distribution ships with EFI support disabled in any of these ways, so chances are your tests won't mislead you to thinking you're using BIOS mode unless you've recompiled your kernel or deliberately added a <tt>noefi</tt> parameter to your boot loader configuration.</p>
213
214 <a name="windows">
215 <h2>Identifying Your Windows Boot Mode</h2>
216 </a>
217
218 <!-- NOTE: I have serious doubts about this method's reliability, so I'm commenting it out for now....
219
220 <p>The easiest way to determine your boot mode in Windows is probably to use the <tt>bcdedit</tt> program to examine your boot loader configuration. To do so, launch an administrative Command Prompt (by right-clicking a Command Prompt icon and selecting Run As Administrator from the context menu) and then type <tt class="userinput">bcdedit</tt> in the window. The result will include two blocks of information, on the boot manager and the boot loader. The latter is more diagnostic. On an EFI-booted system, it will resemble the following:</p>
221
222 <pre class="listing">Windows Boot Loader
223 -------------------
224 identifier {current}
225 device partition=C:
226 path \Windows\system32\winload.efi
227 description Windows 7 Home Premium (recovered)
228 locale en-US
229 recoverysequence {2844aaae-9978-11e0-a381-afc0564c0e08}
230 recoveryenabled Yes
231 osdevice partition=C:
232 systemroot \Windows
233 resumeobject {3aa4c728-9935-11e0-9f12-806e6f6e6963}</pre>
234
235 <p>The important part is the value of the <tt>path</tt> line. Note that it identifies an EFI executable&mdash;<tt>\Windows\system32\winload.efi</tt>. On a BIOS-based computer, by contrast, this line refers to <tt>\Windows\system32\winload.exe</tt>&mdash;a standard Windows <tt>.exe</tt> file, not an EFI <tt>.efi</tt> file.</p>
236 -->
237
238 <p>The most reliable way I know of to identify your boot mode is to examine your partitions. Microsoft has tied use of the GUID Partition Table (GPT) to EFI booting. If you've booted from a GPT disk, then you <i>must</i> be using EFI, and if you've booted from a Master Boot Record (MBR) disk, you <i>must</i> have booted in BIOS mode. Therefore, you can check your partition table type as a proxy for your boot mode. To do this in Windows 7, follow these steps:</p>
239
240 <ol>
241
242 <li>Open the Control Panel.</li>
243
244 <li>Click System and Security.</li>
245
246 <li>Click Create and Format Hard Disk Partitions under Administrative Tools. The Disk Management window should open.</li>
247
248 <li>Right-click on Disk 0 on the left side of the bottom pane of the window. A context menu should appear.</li>
249
250 <li>Click Properties in the context menu. A Properties dialog box should open.</li>
251
252 <li>Select the Volumes tab. The result should resemble the below figure. The Partition Style item identifies the partition table type&mdash;GPT in this example.</li>
253
254 </ol>
255
256 <br /><img src="windows-gpt.png" align="center" width="414"
257 height="461" alt="Under Windows, you can use the disk's partition table
258 type to determine your boot mode." border=2> <br />
259
260 <p>An important caveat with this method is that you must examine your boot disk. It's possible to use GPT on a data disk even on a BIOS-based computer, or to use an MBR data disk even on an EFI-based computer. Thus, if you examine the wrong disk, you can be led to an incorrect conclusion about your computer's boot mode.</p>
261
262 <hr />
263
264 <p>copyright &copy; 2012&ndash;2013 by Roderick W. Smith</p>
265
266 <p>This document is licensed under the terms of the <a href="FDL-1.3.txt">GNU Free Documentation License (FDL), version 1.3.</a></p>
267
268 <p>If you have problems with or comments about this Web page, please e-mail me at <a href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com.</a> Thanks.</p>
269
270 <p><a href="index.html">Go to the main rEFInd page</a></p>
271
272 <p><a href="using.html">Learn how to use rEFInd</a></p>
273
274 <p><a href="http://www.rodsbooks.com/">Return</a> to my main Web page.</p>
275 </body>
276 </html>