I've installed CentOS 6.4 on UEFI machine. Created /boot/efi partition and installed grub in it.

But when I open Other in the grub menu I get this error:

Error 1: Filename must be either an absolute pathname or blocklist

I've Windows 8 installed in /dev/sda2 and here's my grub.conf :

device (hd0) HD(4,a126000,32000,8531805b-e9fb-4220-bdcd-7eec68f1e1c7)
title CentOS (2.6.32-358.el6.x86_64)
        root (hd0,8)
        kernel /boot/vmlinuz-2.6.32-358.el6.x86_64 ro root=UUID=9f88ba7d-4787-4ecb-8294-436170ecd53e rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb$
        initrd /boot/initramfs-2.6.32-358.el6.x86_64.img
title Other
    rootnoverify (hd0,1)
        chainloader +1

Any help would be appreciated.

  • Why do you use grub in the first place? UEFI already acts as a boot loader and in general it's not required or sensible to chain several boot loaders. If the kernel is compiled with EFI_STUB (most modern kernels are) the UEFI can directly load the kernel. – Marco May 25 '13 at 13:39
  • @Marco So what should i do when i install CentOS 6.4 ? not to install grub ? But does it give me the option to do that ? – Rafael Adel May 25 '13 at 13:43
  • I don't know about CentOS, but on Debian the grub package is not required. In any case, even if you installed grub, you can use efibootmgr to add the kernel to your UEFI boot menu to directly boot the kernel and bypass grub. The only thing to do after a kernel update is to copy the new kernel from /boot/vmlinuz-version to /boot/efi/EFI/foo/vmlinuz-version.efi and run efibootmgr to point to the new version, but that's a simple shell three-liner. – Marco May 25 '13 at 13:47
  • @Marco Sorry i'm kinda beginner to this, how can i use efibootmgr instead of already installed grub ? is efibootmgr is a different bootloader ? because i tried to install it, and i found that it's already installed ! – Rafael Adel May 25 '13 at 14:16
  • I wrote a detailed answer here: What should I do before dual-booting Windows 7 and Debian on EFI? You can probably skip the kernel compilation part, setting up the efi system partition, copying kernel and initramfs and calling efibootmgr should be sufficient on recent distros. efibootmgr is not a boot loader, UEFI itself acts as a boot loader and efibootmgr is a means to interact with it to to/add/remove/change the operating systems or applications it offers to start during boot. – Marco May 25 '13 at 16:06

You might want to install refind somewhere, I doubt centos6's grub was ever intended to do that.


chainloader +1 is nonsense in UEFI. You want an entry like this:

menuentry "Windows bootmgfw.efi, generated by Boot-Repair" {
search --fs-uuid --no-floppy --set=root 18FE-69D8
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.