Amongst others, GRUB2 offers EFI support, which GRUB Legacy
doesn't provide.
- Notes on using Grub2 for BIOS-based platforms
- =============================================
-
- 1. Create a disk image
- dd if=/dev/zero of=disk.img bs=1M count=32
- 2. Partition it (either legacy or GPT style partitions work)
- cfdisk disk.img
- - Create one partition, type Linux, for the root
- filesystem. The only constraint is to make sure there
- is enough free space *before* the first partition to
- store Grub2. Leaving 1 MB of free space is safe.
- 3. Setup loop device and loop partitions
- sudo losetup -f disk.img
- sudo partx -a /dev/loop0
- 4. Prepare the root partition
- sudo mkfs.ext3 -L root /dev/loop0p1
- sudo mount /dev/loop0p1 /mnt
- sudo tar -C /mnt -xf output/images/rootfs.tar
- sudo umount /mnt
- 5. Install Grub2
- sudo ./output/host/sbin/grub-bios-setup \
- -b ./output/host/lib/grub/i386-pc/boot.img \
- -c ./output/images/grub.img -d . /dev/loop0
- 6. Cleanup loop device
- sudo partx -d /dev/loop0
- sudo losetup -d /dev/loop0
- 7. Your disk.img is ready!
-
- Using genimage
- --------------
-
- If you use genimage to generate your complete image,
- installing Grub can be tricky. Here is how to achieve Grub's
- installation with genimage:
-
- partition boot {
- in-partition-table = "no"
- image = "path_to_boot.img"
- offset = 0
- size = 512
- }
- partition grub {
- in-partition-table = "no"
- image = "path_to_grub.img"
- offset = 512
- }
-
- The result is not byte to byte identical to what
- grub-bios-setup does but it works anyway.
-
- To test your BIOS image in Qemu
- -------------------------------
-
- qemu-system-{i386,x86-64} -hda disk.img
-
- Notes on using Grub2 for EFI-based platforms
- ============================================
-
- 1. Create a disk image
- dd if=/dev/zero of=disk.img bs=1M count=32
- 2. Partition it with GPT partitions
- cgdisk disk.img
- - Create a first partition, type EF00, for the
- bootloader and kernel image
- - Create a second partition, type 8300, for the root
- filesystem.
- 3. Setup loop device and loop partitions
- sudo losetup -f disk.img
- sudo partx -a /dev/loop0
- 4. Prepare the boot partition
- sudo mkfs.vfat -n boot /dev/loop0p1
- sudo mount /dev/loop0p1 /mnt
- sudo cp -a output/images/efi-part/* /mnt/
- sudo cp output/images/bzImage /mnt/
- sudo umount /mnt
- 5. Prepare the root partition
- sudo mkfs.ext3 -L root /dev/loop0p2
- sudo mount /dev/loop0p2 /mnt
- sudo tar -C /mnt -xf output/images/rootfs.tar
- sudo umount /mnt
- 6 Cleanup loop device
- sudo partx -d /dev/loop0
- sudo losetup -d /dev/loop0
- 7. Your disk.img is ready!
-
- To test your EFI image in Qemu
- ------------------------------
-
- 1. Download the EFI BIOS for Qemu
- Version IA32 or X64 depending on the chosen Grub2
- platform (i386-efi vs. x86-64-efi)
- http://sourceforge.net/projects/edk2/files/OVMF/
- 2. Extract, and rename OVMF.fd to bios.bin and
- CirrusLogic5446.rom to vgabios-cirrus.bin.
- 3. qemu-system-{i386,x86-64} -L ovmf-dir/ -hda disk.img
- 4. Make sure to pass pci=nocrs to the kernel command line,
- to workaround a bug in the EFI BIOS regarding the
- EFI framebuffer.
+ For additional notes on using Grub 2 with Buildroot, see
+ boot/grub2/readme.txt
http://www.gnu.org/software/grub/
--- /dev/null
+Notes on using Grub2 for BIOS-based platforms
+=============================================
+
+1. Create a disk image
+ dd if=/dev/zero of=disk.img bs=1M count=32
+2. Partition it (either legacy or GPT style partitions work)
+ cfdisk disk.img
+ - Create one partition, type Linux, for the root
+ filesystem. The only constraint is to make sure there
+ is enough free space *before* the first partition to
+ store Grub2. Leaving 1 MB of free space is safe.
+3. Setup loop device and loop partitions
+ sudo losetup -f disk.img
+ sudo partx -a /dev/loop0
+4. Prepare the root partition
+ sudo mkfs.ext3 -L root /dev/loop0p1
+ sudo mount /dev/loop0p1 /mnt
+ sudo tar -C /mnt -xf output/images/rootfs.tar
+ sudo umount /mnt
+5. Install Grub2
+ sudo ./output/host/sbin/grub-bios-setup \
+ -b ./output/host/lib/grub/i386-pc/boot.img \
+ -c ./output/images/grub.img -d . /dev/loop0
+6. Cleanup loop device
+ sudo partx -d /dev/loop0
+ sudo losetup -d /dev/loop0
+7. Your disk.img is ready!
+
+Using genimage
+--------------
+
+If you use genimage to generate your complete image,
+installing Grub can be tricky. Here is how to achieve Grub's
+installation with genimage:
+
+partition boot {
+ in-partition-table = "no"
+ image = "path_to_boot.img"
+ offset = 0
+ size = 512
+}
+partition grub {
+ in-partition-table = "no"
+ image = "path_to_grub.img"
+ offset = 512
+}
+
+The result is not byte to byte identical to what
+grub-bios-setup does but it works anyway.
+
+To test your BIOS image in Qemu
+-------------------------------
+
+qemu-system-{i386,x86-64} -hda disk.img
+
+Notes on using Grub2 for EFI-based platforms
+============================================
+
+1. Create a disk image
+ dd if=/dev/zero of=disk.img bs=1M count=32
+2. Partition it with GPT partitions
+ cgdisk disk.img
+ - Create a first partition, type EF00, for the
+ bootloader and kernel image
+ - Create a second partition, type 8300, for the root
+ filesystem.
+3. Setup loop device and loop partitions
+ sudo losetup -f disk.img
+ sudo partx -a /dev/loop0
+4. Prepare the boot partition
+ sudo mkfs.vfat -n boot /dev/loop0p1
+ sudo mount /dev/loop0p1 /mnt
+ sudo cp -a output/images/efi-part/* /mnt/
+ sudo cp output/images/bzImage /mnt/
+ sudo umount /mnt
+5. Prepare the root partition
+ sudo mkfs.ext3 -L root /dev/loop0p2
+ sudo mount /dev/loop0p2 /mnt
+ sudo tar -C /mnt -xf output/images/rootfs.tar
+ sudo umount /mnt
+6 Cleanup loop device
+ sudo partx -d /dev/loop0
+ sudo losetup -d /dev/loop0
+7. Your disk.img is ready!
+
+To test your EFI image in Qemu
+------------------------------
+
+1. Download the EFI BIOS for Qemu
+ Version IA32 or X64 depending on the chosen Grub2
+ platform (i386-efi vs. x86-64-efi)
+ http://sourceforge.net/projects/edk2/files/OVMF/
+2. Extract, and rename OVMF.fd to bios.bin and
+ CirrusLogic5446.rom to vgabios-cirrus.bin.
+3. qemu-system-{i386,x86-64} -L ovmf-dir/ -hda disk.img
+4. Make sure to pass pci=nocrs to the kernel command line,
+ to workaround a bug in the EFI BIOS regarding the
+ EFI framebuffer.