GRUB: Difference between revisions

9 bytes removed ,  9 years ago
m
Trim repeated newlines
[unchecked revision][unchecked revision]
(Move the EFI content from the grub legacy page)
m (Trim repeated newlines)
Line 2:
 
'''GRUB 2''' is the GNU Project's next-generation bootloader. It has a more complete feature set than [[GRUB]] 0.97 (commonly referred to as "GRUB Legacy"). Still, all things considered, [[GRUB]] Legacy is more mature and most of the available documentation is for [[GRUB]] Legacy (hence the brief page).
 
 
== History ==
 
GRUB 2 started its life as the [http://www.nongnu.org/pupa/ PUPA] (note the pun) research project and was rewritten from the ground up. Since then GRUB 2 (actually at time of update 1.97) has grown more stable and even hobby operating systems are starting to make use of the new bootloader instead of GRUB Legacy.
 
 
== Features ==
Line 18 ⟶ 16:
* Internationalization
* Rescue mode
 
 
== Upgrading from GRUB Legacy ==
Line 180 ⟶ 177:
This information might not be applicable to Linux users, who will most probably want to use a loopback device. This is for developers on OSX, which doesn't
have a loopback device and has a finicky image mounter.
 
 
1. First, create a blank, raw image with DD, with the required size. Here, I'll make a 80MB image -- 163840 sectors of 512 bytes.
Line 215 ⟶ 211:
fdisk:*1> quit
</source>
 
 
4. Now that the MBR Partition Table is initialised, you'll want to make a Filesystem on the disk. But first.
Line 250 ⟶ 245:
And there it is! You know have a disk.img, that will have GRUB2 installed, ready to go. It should be mountable in OSX simply by double clicking (or with the mount command).
Enjoy!
 
 
 
 
=== Additional useful options ===
Line 280 ⟶ 272:
'''Important:''' To build GRUB2 so that it can produce a bootloader for your output target you need to have a compiler for that target. So for example, if you want a bootloader for i386-elf (as suggested in the bare bones) you'll need binutils + a compiler for that target. This is required on Mac OS X because the built-in LLVM doesn't know how to make i386-elf binaries. So you can either [http://wiki.osdev.org/GCC_Cross-Compiler build a cross-compiler] or [http://wiki.osdev.org/OS_Specific_Toolchain create an OS-specific toolchain] (recommended) for your target platform.
'''You will need the cross-versions of gcc, objcopy, strip, nm and ranlib in step 4.'''
 
 
'''1.''' Clone the developer version of the sources:
Anonymous user