You are not logged in.

#1 2011-09-25 01:12:17

Rezzie
Member
Registered: 2011-09-25
Posts: 4

GRUB2 UEFI/GPT "error: file not found"

I have an SSD partitioned as follows:

  • 200MB FAT32 EFI System (hd0, gpt1)

  • 128MB Microsoft Reserved (hd0, gpt2)

  • ~80GB NTFS Windows installation (hd0, gpt3)

  • ~30GB ext4 Arch installation (hd0, gpt4)

The SSD is set to use GPT, not MBR, and the computer boots using UEFI. Windows is using UEFI to boot (successfully). I followed this guide to install GRUB2 after installing Arch from Archboot.

When I try and boot the Arch install, grub fails and reverts to a recovery console. The error is:

error: file not found

The prefix/root variables are set to:

grub rescue>set
prefix=(hd0,gpt1)/efi/grub
root=(hd0,gpt1)

If I change prefix/root to use (hd0,gpt4), as per this guide, the error changes to:

error: unknown filesystem

Any pointers as to how I can fix grub to boot the Arch install?

Offline

#2 2011-09-25 05:04:42

skodabenz
Banned
From: Tamilnadu, India
Registered: 2010-04-11
Posts: 382

Re: GRUB2 UEFI/GPT "error: file not found"

Post the contents of (hd0,gpt1)/efi/grub dir and the grub.cfg file inside that dir.


My new forum user/nick name is "the.ridikulus.rat" .

Offline

#3 2011-09-27 07:58:06

Rezzie
Member
Registered: 2011-09-25
Posts: 4

Re: GRUB2 UEFI/GPT "error: file not found"

Sorry for the delay; I'd lost my internet access!

ls (hd0,gpt1)/EFI/GRUB

ACPI.MOD*
AFFS.MOD*
AFS.MOD*
AFS_BE.MOD*
AOUT.MOD*
APPLELDR.MOD*
ATA.MOD*
ATA_PTHR.MOD*
AT_KEYBO.MOD*
BEFS.MOD*
BEFS_BE.MOD*
BITMAP.MOD*
BITMAP_S.MOD*
BLOCKLIS.MOD*
BOOT.MOD*
BSD.MOD*
BTRFS.MOD*
BUFIO.MOD*
CAT.MOD*
CHAIN.MOD*
CMP.MOD*
COMMAND.LST*
CONFIGFI.MOD*
CORE.EFI*
CPIO.MOD*
CPUID.MOD*
CRYPTO.LST*
CRYPTO.MOD*
CS5536.MOD*
DATE.MOD*
DATEHOOK.MOD*
DATETIME.MOD*
DEVICE.MAP*
DM_NV.MOD*
ECHO.MOD*
EFI_GOP.MOD*
EFI_UGA.MOD*
ELF.MOD*
EXAMPLE_.MOD*
EXT2.MOD*
EXTCMD.MOD*
FAT.MOD*
FIXVIDEO.MOD*
FONT.MOD*
FS.LST*
FSHELP.MOD*
FUNCTION.MOD*
GCRY_ARC.MOD*
GCRY_BLO.MOD*
GCRY_CAM.MOD*
GCRY_CAS.MOD*
GCRY_CRC.MOD*
GCRY_DES.MOD*
GCRY_MD4.MOD*
GCRY_MD5.MOD*
GCRY_RFC.MOD*
GCRY_RIJ.MOD*
GCRY_RMD.MOD*
GCRY_SEE.MOD*
GCRY_SER.MOD*
GCRY_SHA.MOD*
GCRY_TIG.MOD*
GCRY_TWO.MOD*
GCRY_WHI.MOD*
GETTEXT.MOD*
GFXMENU.MOD*
GFXTERM.MOD*
GPTSYNC.MOD*
GPXE.MOD*
GPXE_3C5.MOD*
GPXE_3C9.MOD*
GPXE_BIT.MOD*
GPXE_DAV.MOD*
GPXE_DMF.MOD*
GPXE_EEP.MOD*
GPXE_EPI.MOD*
GPXE_I2C.MOD*
GPXE_INF.MOD*
GPXE_IPO.MOD*
GPXE_LEG.MOD*
GPXE_NAT.MOD*
GPXE_NE2.MOD*
GPXE_NS8.MOD*
GPXE_NVS.MOD*
GPXE_PNI.MOD*
GPXE_RTL.MOD*
GPXE_SIS.MOD*
GPXE_SMC.MOD*
GPXE_SPI.MOD*
GPXE_THR.MOD*
GPXE_TUL.MOD*
GPXE_W89.MOD*
GRUB.CFG*
GRUB.EFI*
GRUBENV*
GZIO.MOD*
HALT.MOD*
HASHSUM.MOD*
HDPARM.MOD*
HELLO.MOD*
HELP.MOD*
HEXDUMP.MOD*
HFS.MOD*
HFSPLUS.MOD*
IORW.MOD*
ISO9660.MOD*
JFS.MOD*
JPEG.MOD*
KEYLAYOU.MOD*
KEYSTATU.MOD*
LINUX.MOD*
LOAD.CFG*
LOADBIOS.MOD*
LOADENV.MOD*
LOCALE/
LOOPBACK.MOD*
LS.MOD*
LSACPI.MOD*
LSEFIMMA.MOD*
LSEFISYS.MOD*
LSMMAP.MOD*
LSPCI.MOD*
LSSAL.MOD*
LUA.MOD*
LVM.MOD*
MDRAID09.MOD*
MDRAID1X.MOD*
MEMDISK.MOD*
MEMRW.MOD*
MINICMD.MOD*
MINIX.MOD*
MINIX2.MOD*
MMAP.MOD*
MODDEP.LST*
MSDOSPAR.MOD*
MULTIBOO.MOD*
NILFS2.MOD*
NORMAL.MOD*
NTFS.MOD*
NTFSCOMP.MOD*
OHCI.MOD*
PARTMAP.LST*
PARTTOOL.LST*
PARTTOOL.MOD*
PART_ACO.MOD*
PART_AMI.MOD*
PART_APP.MOD*
PART_BSD.MOD*
PART_GPT.MOD*
PART_MSD.MOD*
PART_SUN.MOD*
PASSWORD.MOD*
PBKDF2.MOD*
PCI.MOD*
PLAY.MOD*
PNG.MOD*
PROBE.MOD*
RAID.MOD*
RAID5REC.MOD*
RAID6REC.MOD*
READ.MOD*
REBOOT.MOD*
REGEXP.MOD*
REISERFS.MOD*
RELOCATO.MOD*
SCSI.MOD*
SEARCH.MOD*
SEARCH_F.MOD*
SEARCH_L.MOD*
SERIAL.MOD*
SETJMP.MOD*
SETPCI.MOD*
SFS.MOD*
SLEEP.MOD*
TAR.MOD*
TERMINAL.LST*
TERMINAL.MOD*
TERMINFO.MOD*
TEST.MOD*
TESTLOAD.MOD*
TEST_BLO.MOD*
TGA.MOD*
TRIG.MOD*
TRUE.MOD*
UDF.MOD*
UFS1.MOD*
UFS2.MOD*
UHCI.MOD*
UNICODE.PF2*
USB.MOD*
USBMS.MOD*
USBSERIA.MOD*
USBTEST.MOD*
USB_KEYB.MOD*
VIDEO.LST*
VIDEO.MOD*
VIDEOINF.MOD*
VIDEOTES.MOD*
VIDEO_BO.MOD*
VIDEO_CI.MOD*
VIDEO_FB.MOD*
XFS.MOD*
XNU.MOD*
XNU_UUID.MOD*
XZIO.MOD*
ZFS.MOD*
ZFSINFO.MOD*

(hd0,gpt1)/EFI/GRUB/grub.cfg

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
insmod part_gpt
insmod part_msdos
if [ -s $prefix/grubenv ]; then
  load_env
fi
set default="0"
if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function load_video {
true
}

set menu_color_normal=light-blue/black
set menu_color_highlight=light-cyan/blue

insmod part_gpt
insmod ext2
set root='(hd0,gpt4)'
search --no-floppy --fs-uuid --set=root 113e01b1-2713-4317-af1c-42e0916ce9b4
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
fi
terminal_input console
terminal_output gfxterm
set timeout=5
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Arch Linux, with Linux linux' --class archlinux --class gnu-linux --class gnu --class os {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_gpt
	insmod ext2
	set root='(hd0,gpt4)'
	search --no-floppy --fs-uuid --set=root 113e01b1-2713-4317-af1c-42e0916ce9b4
	echo	'Loading Linux linux ...'
	linux	/boot/vmlinuz-linux root=UUID=113e01b1-2713-4317-af1c-42e0916ce9b4 ro  quiet
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initramfs-linux.img
}
menuentry 'Arch Linux, with Linux linux Fallback' --class archlinux --class gnu-linux --class gnu --class os {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_gpt
	insmod ext2
	set root='(hd0,gpt4)'
	search --no-floppy --fs-uuid --set=root 113e01b1-2713-4317-af1c-42e0916ce9b4
	echo	'Loading Linux linux ...'
	linux	/boot/vmlinuz-linux root=UUID=113e01b1-2713-4317-af1c-42e0916ce9b4 ro  quiet
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initramfs-linux-fallback.img
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_memtest86+ ###
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

I've also run the Boot Info Script:

                  Boot Info Script 0.60    from 17 May 2011


============================= Boot Info Summary: ===============================

 => No boot loader is installed in the MBR of /dev/sda.

sda1: __________________________________________________________________________

    File system:       vfat
    Boot sector type:  Unknown
    Boot sector info:   No errors found in the Boot Parameter Block.
    Operating System:  
    Boot files:        

sda2: __________________________________________________________________________

    File system:       
    Boot sector type:  -
    Boot sector info:  
    Mounting failed:   mount: unknown filesystem type ''

sda3: __________________________________________________________________________

    File system:       ntfs
    Boot sector type:  Windows Vista/7
    Boot sector info:   No errors found in the Boot Parameter Block.
    Operating System:  Windows 7
    Boot files:        /Windows/System32/winload.exe

sda4: __________________________________________________________________________

    File system:       ext4
    Boot sector type:  -
    Boot sector info:  
    Operating System:  [H[2J Arch Linux () ()
    Boot files:        /boot/grub/grub.cfg /etc/fstab

============================ Drive/Partition Info: =============================

Drive: sda _____________________________________________________________________

Disk /dev/sda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders, total 234441648 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes

Partition  Boot  Start Sector    End Sector  # of Sectors  Id System

/dev/sda1                   1   234,441,647   234,441,647  ee GPT


GUID Partition Table detected.

Partition    Start Sector    End Sector  # of Sectors System
/dev/sda1           2,048       411,647       409,600 EFI System partition
/dev/sda2         411,648       673,791       262,144 Microsoft Reserved Partition (Windows)
/dev/sda3         673,792   171,526,143   170,852,352 Data partition (Windows/Linux)
/dev/sda4     171,526,144   234,440,703    62,914,560 Data partition (Windows/Linux)

"blkid" output: ________________________________________________________________

Device           UUID                                   TYPE       LABEL

/dev/loop0                                              squashfs   
/dev/loop1                                              squashfs   
/dev/sda1        7694-BCC5                              vfat       EFISYSTEM
/dev/sda3        B678A5B578A574B1                       ntfs       Windows
/dev/sda4        113e01b1-2713-4317-af1c-42e0916ce9b4   ext4       Arch

================================ Mount points: =================================

Device           Mount_Point              Type       Options

/dev/sda1        /media/sda1              vfat       (rw,utf8)


=========================== sda4/boot/grub/grub.cfg: ===========================

--------------------------------------------------------------------------------
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
insmod part_gpt
insmod part_msdos
if [ -s $prefix/grubenv ]; then
  load_env
fi
set default="0"
if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function load_video {
  insmod vbe
  insmod vga
  insmod video_bochs
  insmod video_cirrus
}

insmod part_msdos
insmod ext2
set root='(hd0,msdos3)'
search --no-floppy --fs-uuid --set=root fb70f55b-e58a-4ac6-af45-19d19cc24d60
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  insmod part_msdos
  insmod ext2
  set root='(hd0,msdos3)'
  search --no-floppy --fs-uuid --set=root fb70f55b-e58a-4ac6-af45-19d19cc24d60
  set locale_dir=($root)/boot/grub/locale
  set lang=en_US
  insmod gettext
fi
terminal_input console
terminal_output gfxterm
set timeout=5
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Arch Linux, with Linux vmlinuz26-lts' --class archlinux --class gnu-linux --class gnu --class os {
  load_video
  set gfxpayload=keep
  insmod part_msdos
  insmod ext2
  set root='(hd0,msdos3)'
  search --no-floppy --fs-uuid --set=root fb70f55b-e58a-4ac6-af45-19d19cc24d60
  echo  'Loading Linux vmlinuz26-lts ...'
  linux /boot/vmlinuz26-lts root=/dev/disk/by-uuid/fb70f55b-e58a-4ac6-af45-19d19cc24d60 ro  quiet
  echo  'Loading initial ramdisk ...'
  initrd  /boot/kernel26-lts.img
}
menuentry 'Arch Linux, with Linux vmlinuz26-lts Fallback' --class archlinux --class gnu-linux --class gnu --class os {
  load_video
  set gfxpayload=keep
  insmod part_msdos
  insmod ext2
  set root='(hd0,msdos3)'
  search --no-floppy --fs-uuid --set=root fb70f55b-e58a-4ac6-af45-19d19cc24d60
  echo  'Loading Linux vmlinuz26-lts ...Loading Linux Fallback ...'
  linux /boot/vmlinuz26-lts root=/dev/disk/by-uuid/fb70f55b-e58a-4ac6-af45-19d19cc24d60 ro  quiet
  echo  'Loading initial ramdisk ...'
  initrd  /boot/kernel26-lts-fallback.img
}
menuentry 'Arch Linux, with Linux vmlinuz26' --class archlinux --class gnu-linux --class gnu --class os {
  load_video
  set gfxpayload=keep
  insmod part_msdos
  insmod ext2
  set root='(hd0,msdos3)'
  search --no-floppy --fs-uuid --set=root fb70f55b-e58a-4ac6-af45-19d19cc24d60
  echo  'Loading Linux vmlinuz26 ...'
  linux /boot/vmlinuz26 root=/dev/disk/by-uuid/fb70f55b-e58a-4ac6-af45-19d19cc24d60 ro  quiet
  echo  'Loading initial ramdisk ...'
  initrd  /boot/kernel26.img
}
menuentry 'Arch Linux, with Linux vmlinuz26 Fallback' --class archlinux --class gnu-linux --class gnu --class os {
  load_video
  set gfxpayload=keep
  insmod part_msdos
  insmod ext2
  set root='(hd0,msdos3)'
  search --no-floppy --fs-uuid --set=root fb70f55b-e58a-4ac6-af45-19d19cc24d60
  echo  'Loading Linux vmlinuz26 ...Loading Linux Fallback ...'
  linux /boot/vmlinuz26 root=/dev/disk/by-uuid/fb70f55b-e58a-4ac6-af45-19d19cc24d60 ro  quiet
  echo  'Loading initial ramdisk ...'
  initrd  /boot/kernel26-fallback.img
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" --class memtest86 --class gnu --class tool {
  insmod part_msdos
  insmod ext2
  set root='(hd0,msdos3)'
  search --no-floppy --fs-uuid --set=root fb70f55b-e58a-4ac6-af45-19d19cc24d60
  linux16 ($root)/boot/memtest86+/memtest.bin
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
--------------------------------------------------------------------------------

=============================== sda4/etc/fstab: ================================

--------------------------------------------------------------------------------
# 
# /etc/fstab: static file system information
#
# <file system> <dir> <type>  <options> <dump>  <pass>
tmpfs   /tmp  tmpfs nodev,nosuid  0 0
# DEVICE DETAILS: /dev/sda4 UUID=113e01b1-2713-4317-af1c-42e0916ce9b4 LABEL=Arch
UUID=113e01b1-2713-4317-af1c-42e0916ce9b4 / ext4 defaults 0 1
--------------------------------------------------------------------------------

=================== sda4: Location of files loaded by Grub: ====================

           GiB - GB             File                                 Fragment(s)

  97.917221069 = 105.137815552  boot/grub/grub.cfg                             1
  82.189411163 = 88.250208256   boot/initramfs-linux-fallback.img              1
  82.174663544 = 88.234373120   boot/initramfs-linux.img                       1
  97.917213440 = 105.137807360  boot/vmlinuz-linux                             1

======================== Unknown MBRs/Boot Sectors/etc: ========================

Unknown BootLoader on sda1

00000000  eb 58 90 4d 53 44 4f 53  35 2e 30 00 02 04 de 19  |.X.MSDOS5.0.....|
00000010  02 00 00 00 00 f8 00 00  3f 00 ff 00 00 08 00 00  |........?.......|
00000020  00 40 06 00 11 03 00 00  00 00 00 00 02 00 00 00  |.@..............|
00000030  01 00 06 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000040  80 00 29 c5 bc 94 76 45  46 49 53 59 53 54 45 4d  |..)...vEFISYSTEM|
00000050  20 20 46 41 54 33 32 20  20 20 33 c9 8e d1 bc f4  |  FAT32   3.....|
00000060  7b 8e c1 8e d9 bd 00 7c  88 4e 02 8a 56 40 b4 41  |{......|.N..V@.A|
00000070  bb aa 55 cd 13 72 10 81  fb 55 aa 75 0a f6 c1 01  |..U..r...U.u....|
00000080  74 05 fe 46 02 eb 2d 8a  56 40 b4 08 cd 13 73 05  |t..F..-.V@....s.|
00000090  b9 ff ff 8a f1 66 0f b6  c6 40 66 0f b6 d1 80 e2  |.....f...@f.....|
000000a0  3f f7 e2 86 cd c0 ed 06  41 66 0f b7 c9 66 f7 e1  |?.......Af...f..|
000000b0  66 89 46 f8 83 7e 16 00  75 38 83 7e 2a 00 77 32  |f.F..~..u8.~*.w2|
000000c0  66 8b 46 1c 66 83 c0 0c  bb 00 80 b9 01 00 e8 2b  |f.F.f..........+|
000000d0  00 e9 2c 03 a0 fa 7d b4  7d 8b f0 ac 84 c0 74 17  |..,...}.}.....t.|
000000e0  3c ff 74 09 b4 0e bb 07  00 cd 10 eb ee a0 fb 7d  |<.t............}|
000000f0  eb e5 a0 f9 7d eb e0 98  cd 16 cd 19 66 60 80 7e  |....}.......f`.~|
00000100  02 00 0f 84 20 00 66 6a  00 66 50 06 53 66 68 10  |.... .fj.fP.Sfh.|
00000110  00 01 00 b4 42 8a 56 40  8b f4 cd 13 66 58 66 58  |....B.V@....fXfX|
00000120  66 58 66 58 eb 33 66 3b  46 f8 72 03 f9 eb 2a 66  |fXfX.3f;F.r...*f|
00000130  33 d2 66 0f b7 4e 18 66  f7 f1 fe c2 8a ca 66 8b  |3.f..N.f......f.|
00000140  d0 66 c1 ea 10 f7 76 1a  86 d6 8a 56 40 8a e8 c0  |.f....v....V@...|
00000150  e4 06 0a cc b8 01 02 cd  13 66 61 0f 82 75 ff 81  |.........fa..u..|
00000160  c3 00 02 66 40 49 75 94  c3 42 4f 4f 54 4d 47 52  |...f@Iu..BOOTMGR|
00000170  20 20 20 20 00 00 00 00  00 00 00 00 00 00 00 00  |    ............|
00000180  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000001a0  00 00 00 00 00 00 00 00  00 00 00 00 0d 0a 52 65  |..............Re|
000001b0  6d 6f 76 65 20 64 69 73  6b 73 20 6f 72 20 6f 74  |move disks or ot|
000001c0  68 65 72 20 6d 65 64 69  61 2e ff 0d 0a 44 69 73  |her media....Dis|
000001d0  6b 20 65 72 72 6f 72 ff  0d 0a 50 72 65 73 73 20  |k error...Press |
000001e0  61 6e 79 20 6b 65 79 20  74 6f 20 72 65 73 74 61  |any key to resta|
000001f0  72 74 0d 0a 00 00 00 00  00 ac cb d8 00 00 55 aa  |rt............U.|
00000200

=============================== StdErr Messages: ===============================

  No volume groups found
mdadm: No arrays found in config file or automatically

Offline

#4 2011-10-04 06:33:42

skodabenz
Banned
From: Tamilnadu, India
Registered: 2010-04-11
Posts: 382

Re: GRUB2 UEFI/GPT "error: file not found"

Sorry for the late reply. Can you try installing grub2-efi-x86_64 from the Archboot Install script itself? Delete (hd0,gpt1)/efi/grub dir before doing so.

Last edited by skodabenz (2011-10-04 06:36:02)


My new forum user/nick name is "the.ridikulus.rat" .

Offline

#5 2011-10-04 09:28:40

Rezzie
Member
Registered: 2011-09-25
Posts: 4

Re: GRUB2 UEFI/GPT "error: file not found"

I removed (hd0,gpt1)/efi/grub completely and reinstalled as you said. Grub now loads correctly and shows the menu - not a prompt. I believe I'd accidentally mounted the EFI partition as msdos during the original install, rather than vfat, so it couldn't locate any of the files as they'd been renamed to be valid within an msdos filesystem.

Unfortunately, the menu options given don't match my install - I am using the 3.x kernel, which was renamed vmlinuz-linux, but the menu options given are for vmlinuz26. The grub.cfg in the EFI partition obviously lists the 3.x kernel, so grub doesn't appear to be using that file. The entire contents of (hd0,gpt1)/efi/grub is mirrored in (hd0,gpt4)/boot/grub, but the grub.cfg in that directory is as follows:

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
insmod part_gpt
insmod part_msdos
if [ -s $prefix/grubenv ]; then
  load_env
fi
set default="0"
if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function load_video {
  insmod vbe
  insmod vga
  insmod video_bochs
  insmod video_cirrus
}

insmod part_msdos
insmod ext2
set root='(hd0,msdos3)'
search --no-floppy --fs-uuid --set=root fb70f55b-e58a-4ac6-af45-19d19cc24d60
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  insmod part_msdos
  insmod ext2
  set root='(hd0,msdos3)'
  search --no-floppy --fs-uuid --set=root fb70f55b-e58a-4ac6-af45-19d19cc24d60
  set locale_dir=($root)/boot/grub/locale
  set lang=en_US
  insmod gettext
fi
terminal_input console
terminal_output gfxterm
set timeout=5
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Arch Linux, with Linux vmlinuz26-lts' --class archlinux --class gnu-linux --class gnu --class os {
	load_video
	set gfxpayload=keep
	insmod part_msdos
	insmod ext2
	set root='(hd0,msdos3)'
	search --no-floppy --fs-uuid --set=root fb70f55b-e58a-4ac6-af45-19d19cc24d60
	echo	'Loading Linux vmlinuz26-lts ...'
	linux	/boot/vmlinuz26-lts root=/dev/disk/by-uuid/fb70f55b-e58a-4ac6-af45-19d19cc24d60 ro  quiet
	echo	'Loading initial ramdisk ...'
	initrd	/boot/kernel26-lts.img
}
menuentry 'Arch Linux, with Linux vmlinuz26-lts Fallback' --class archlinux --class gnu-linux --class gnu --class os {
	load_video
	set gfxpayload=keep
	insmod part_msdos
	insmod ext2
	set root='(hd0,msdos3)'
	search --no-floppy --fs-uuid --set=root fb70f55b-e58a-4ac6-af45-19d19cc24d60
	echo	'Loading Linux vmlinuz26-lts ...Loading Linux Fallback ...'
	linux	/boot/vmlinuz26-lts root=/dev/disk/by-uuid/fb70f55b-e58a-4ac6-af45-19d19cc24d60 ro  quiet
	echo	'Loading initial ramdisk ...'
	initrd	/boot/kernel26-lts-fallback.img
}
menuentry 'Arch Linux, with Linux vmlinuz26' --class archlinux --class gnu-linux --class gnu --class os {
	load_video
	set gfxpayload=keep
	insmod part_msdos
	insmod ext2
	set root='(hd0,msdos3)'
	search --no-floppy --fs-uuid --set=root fb70f55b-e58a-4ac6-af45-19d19cc24d60
	echo	'Loading Linux vmlinuz26 ...'
	linux	/boot/vmlinuz26 root=/dev/disk/by-uuid/fb70f55b-e58a-4ac6-af45-19d19cc24d60 ro  quiet
	echo	'Loading initial ramdisk ...'
	initrd	/boot/kernel26.img
}
menuentry 'Arch Linux, with Linux vmlinuz26 Fallback' --class archlinux --class gnu-linux --class gnu --class os {
	load_video
	set gfxpayload=keep
	insmod part_msdos
	insmod ext2
	set root='(hd0,msdos3)'
	search --no-floppy --fs-uuid --set=root fb70f55b-e58a-4ac6-af45-19d19cc24d60
	echo	'Loading Linux vmlinuz26 ...Loading Linux Fallback ...'
	linux	/boot/vmlinuz26 root=/dev/disk/by-uuid/fb70f55b-e58a-4ac6-af45-19d19cc24d60 ro  quiet
	echo	'Loading initial ramdisk ...'
	initrd	/boot/kernel26-fallback.img
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" --class memtest86 --class gnu --class tool {
  insmod part_msdos
  insmod ext2
  set root='(hd0,msdos3)'
  search --no-floppy --fs-uuid --set=root fb70f55b-e58a-4ac6-af45-19d19cc24d60
  linux16 ($root)/boot/memtest86+/memtest.bin
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

Is the /boot/grub partition messed up because of the dodgy install earlier? It appears that the .mod and .cfg files are read from (hd0,gpt4)/boot/grub, and not (hd0,gpt1)/efi/grub; so what should be in each directory? Does (hd0,gpt1)/efi/grub just need the core.efi, grub.efi and grubx64.efi files?

If I try and boot any options it obviously fails. If I revert to the console and boot the kernel manually it works:

grub> set root=(hd0,gpt4)
grub> linux /boot/vmlinuz root=/dev/sda4 ro
grub> initrd /boot/initramfs-linux.img
grub> boot

Offline

#6 2011-10-04 09:41:56

skodabenz
Banned
From: Tamilnadu, India
Registered: 2010-04-11
Posts: 382

Re: GRUB2 UEFI/GPT "error: file not found"

Rezzie wrote:

Is the /boot/grub partition messed up because of the dodgy install earlier? It appears that the .mod and .cfg files are read from (hd0,gpt4)/boot/grub, and not (hd0,gpt1)/efi/grub; so what should be in each directory? Does (hd0,gpt1)/efi/grub just need the core.efi, grub.efi and grubx64.efi files?

If I try and boot any options it obviously fails. If I revert to the console and boot the kernel manually it works:

grub> set root=(hd0,gpt4)
grub> linux /boot/vmlinuz root=/dev/sda4 ro
grub> initrd /boot/initramfs-linux.img
grub> boot

/boot/grub is for BIOS install, /boot/efi/efi/grub is for UEFI install. Don't mix both. grub2 UEFI should access NO FILE from /boot/grub since the modules in /boot/grub are for grub2-bios and will not work in grub2-efi. Also the grub2-efi prefix should be (hd0,gpt1)/efi/grub and not (hd0,gpt4)/boot/grub .

Do not copy (hd0,gpt4)/boot/grub/grub.cfg to (hd0,gpt1)/efi/grub/grub.cfg . Recreate a new one instead using grub-mkconfig after updating the grub2-common package in your system. (hd0,gpt1)/efi/grub should contain everything, grub.cfg, *.mod and *.efi files.


My new forum user/nick name is "the.ridikulus.rat" .

Offline

#7 2011-10-04 11:06:58

Rezzie
Member
Registered: 2011-09-25
Posts: 4

Re: GRUB2 UEFI/GPT "error: file not found"

Thanks again for the reply.

So I can safety remove the /boot/grub directory; it's never used as I'm doing a pure UEFI boot?

skodabenz wrote:

Also the grub2-efi prefix should be (hd0,gpt1)/efi/grub and not (hd0,gpt4)/boot/grub ... Recreate a new one instead using grub-mkconfig

Is this as simple as:

grub-mkconfig -o /boot/efi/efi/grub/grub.cfg

The mkconfig script will automatically set the root, prefix and menu entries for the installed kernel accordingly?

Offline

#8 2011-10-04 11:11:04

the.ridikulus.rat
Member
From: Indiana, USA
Registered: 2011-10-04
Posts: 765

Re: GRUB2 UEFI/GPT "error: file not found"

Rezzie wrote:

Thanks again for the reply.

So I can safety remove the /boot/grub directory; it's never used as I'm doing a pure UEFI boot?

Yes

Is this as simple as:

grub-mkconfig -o /boot/efi/efi/grub/grub.cfg

The mkconfig script will automatically set the root, prefix and menu entries for the installed kernel accordingly?

grub-mkconfig will set the menuentries correctly. root and prefix are set by grub.efi automatically.

Offline

Board footer

Powered by FluxBB