Fedora Linux Support Community & Resources Center
  #1  
Old 17th May 2012, 03:33 AM
Thetargos's Avatar
Thetargos Offline
Registered User
 
Join Date: May 2004
Location: Mexico City, Mexico
Age: 35
Posts: 4,418
linuxfirefox
Grub2, EFI, bad ELF header...

Hi all... I found on some of the references for running Linux on Mac and (U)EFI systems something about rebuilding the EFI grub application, in order to that one would have to issue the following command, either as root with sudo:

Code:
grub2-mkimage -d . -o grub2.efi -p "" part_gpt part_msdos ntfs ntfscomp hfsplus fat ext2 normal chain boot configfile linux multiboot -O $(uname -m)-efi
When I add a --verbose in there before the -d option I see the following:

Code:
grub2-mkimage: info: getting the size of ./part_gpt.mod.
...
grub2-mkimage: info: getting the size of ./multiboot.mod.
grub2-mkimage: info: the total module size is 0x5aca8.
grub2-mkimage: info: getting the size of ./kernel.img.
grub2-mkimage: info: reading ./kernel.img.
grub2-mkimage: info: getting the size of ./kernel.img.
grub2-mkimage: error: invalid ELF header.
Doing a 'file' command on the kernel.img file yields:

Code:
kernel.img: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, stripped
Now, this is on an x86_64 system, replicated this on my main x86_64 workstation to verify and sure enough is the same... Why is a 32-bit kernel.img file being supplied by the x86_64 version of Grub2? What's more, pretty much all modules are 32-bit:

Code:
rpm -ql grub2
...
/usr/lib/grub2/i386-pc
/usr/lib/grub2/i386-pc/acpi.mod
/usr/lib/grub2/i386-pc/affs.mod
/usr/lib/grub2/i386-pc/afs.mod
/usr/lib/grub2/i386-pc/afs_be.mod
/usr/lib/grub2/i386-pc/aout.mod
/usr/lib/grub2/i386-pc/at_keyboard.mod
/usr/lib/grub2/i386-pc/ata.mod
/usr/lib/grub2/i386-pc/ata_pthru.mod
/usr/lib/grub2/i386-pc/befs.mod
/usr/lib/grub2/i386-pc/befs_be.mod
/usr/lib/grub2/i386-pc/biosdisk.mod
/usr/lib/grub2/i386-pc/bitmap.mod
/usr/lib/grub2/i386-pc/bitmap_scale.mod
/usr/lib/grub2/i386-pc/blocklist.mod
/usr/lib/grub2/i386-pc/boot.img
/usr/lib/grub2/i386-pc/boot.mod
/usr/lib/grub2/i386-pc/bsd.mod
/usr/lib/grub2/i386-pc/btrfs.mod
/usr/lib/grub2/i386-pc/bufio.mod
/usr/lib/grub2/i386-pc/cat.mod
/usr/lib/grub2/i386-pc/cdboot.img
/usr/lib/grub2/i386-pc/chain.mod
/usr/lib/grub2/i386-pc/cmostest.mod
/usr/lib/grub2/i386-pc/cmp.mod
/usr/lib/grub2/i386-pc/command.lst
/usr/lib/grub2/i386-pc/config.h
/usr/lib/grub2/i386-pc/configfile.mod
/usr/lib/grub2/i386-pc/cpio.mod
/usr/lib/grub2/i386-pc/cpuid.mod
/usr/lib/grub2/i386-pc/crypto.lst
/usr/lib/grub2/i386-pc/crypto.mod
/usr/lib/grub2/i386-pc/cs5536.mod
/usr/lib/grub2/i386-pc/date.mod
/usr/lib/grub2/i386-pc/datehook.mod
/usr/lib/grub2/i386-pc/datetime.mod
/usr/lib/grub2/i386-pc/diskboot.img
/usr/lib/grub2/i386-pc/dm_nv.mod
/usr/lib/grub2/i386-pc/drivemap.mod
/usr/lib/grub2/i386-pc/echo.mod
/usr/lib/grub2/i386-pc/efiemu.mod
/usr/lib/grub2/i386-pc/efiemu32.o
/usr/lib/grub2/i386-pc/efiemu64.o
/usr/lib/grub2/i386-pc/elf.mod
/usr/lib/grub2/i386-pc/example_functional_test.mod
/usr/lib/grub2/i386-pc/ext2.mod
/usr/lib/grub2/i386-pc/extcmd.mod
/usr/lib/grub2/i386-pc/fat.mod
/usr/lib/grub2/i386-pc/font.mod
/usr/lib/grub2/i386-pc/fs.lst
/usr/lib/grub2/i386-pc/fshelp.mod
/usr/lib/grub2/i386-pc/functional_test.mod
/usr/lib/grub2/i386-pc/gcry_arcfour.mod
/usr/lib/grub2/i386-pc/gcry_blowfish.mod
/usr/lib/grub2/i386-pc/gcry_camellia.mod
/usr/lib/grub2/i386-pc/gcry_cast5.mod
/usr/lib/grub2/i386-pc/gcry_crc.mod
/usr/lib/grub2/i386-pc/gcry_des.mod
/usr/lib/grub2/i386-pc/gcry_md4.mod
/usr/lib/grub2/i386-pc/gcry_md5.mod
/usr/lib/grub2/i386-pc/gcry_rfc2268.mod
/usr/lib/grub2/i386-pc/gcry_rijndael.mod
/usr/lib/grub2/i386-pc/gcry_rmd160.mod
/usr/lib/grub2/i386-pc/gcry_seed.mod
/usr/lib/grub2/i386-pc/gcry_serpent.mod
/usr/lib/grub2/i386-pc/gcry_sha1.mod
/usr/lib/grub2/i386-pc/gcry_sha256.mod
/usr/lib/grub2/i386-pc/gcry_sha512.mod
/usr/lib/grub2/i386-pc/gcry_tiger.mod
/usr/lib/grub2/i386-pc/gcry_twofish.mod
/usr/lib/grub2/i386-pc/gcry_whirlpool.mod
/usr/lib/grub2/i386-pc/gettext.mod
/usr/lib/grub2/i386-pc/gfxmenu.mod
/usr/lib/grub2/i386-pc/gfxterm.mod
/usr/lib/grub2/i386-pc/gptsync.mod
/usr/lib/grub2/i386-pc/gzio.mod
/usr/lib/grub2/i386-pc/halt.mod
/usr/lib/grub2/i386-pc/hashsum.mod
/usr/lib/grub2/i386-pc/hdparm.mod
/usr/lib/grub2/i386-pc/hello.mod
/usr/lib/grub2/i386-pc/help.mod
/usr/lib/grub2/i386-pc/hexdump.mod
/usr/lib/grub2/i386-pc/hfs.mod
/usr/lib/grub2/i386-pc/hfsplus.mod
/usr/lib/grub2/i386-pc/iorw.mod
/usr/lib/grub2/i386-pc/iso9660.mod
/usr/lib/grub2/i386-pc/jfs.mod
/usr/lib/grub2/i386-pc/jpeg.mod
/usr/lib/grub2/i386-pc/kernel.img
/usr/lib/grub2/i386-pc/keylayouts.mod
/usr/lib/grub2/i386-pc/keystatus.mod
/usr/lib/grub2/i386-pc/legacycfg.mod
/usr/lib/grub2/i386-pc/linux.mod
/usr/lib/grub2/i386-pc/linux16.mod
/usr/lib/grub2/i386-pc/lnxboot.img
/usr/lib/grub2/i386-pc/loadenv.mod
/usr/lib/grub2/i386-pc/loopback.mod
/usr/lib/grub2/i386-pc/ls.mod
/usr/lib/grub2/i386-pc/lsacpi.mod
/usr/lib/grub2/i386-pc/lsapm.mod
/usr/lib/grub2/i386-pc/lsmmap.mod
/usr/lib/grub2/i386-pc/lspci.mod
/usr/lib/grub2/i386-pc/lvm.mod
/usr/lib/grub2/i386-pc/mdraid09.mod
/usr/lib/grub2/i386-pc/mdraid1x.mod
/usr/lib/grub2/i386-pc/memdisk.mod
/usr/lib/grub2/i386-pc/memrw.mod
/usr/lib/grub2/i386-pc/minicmd.mod
/usr/lib/grub2/i386-pc/minix.mod
/usr/lib/grub2/i386-pc/minix2.mod
/usr/lib/grub2/i386-pc/mmap.mod
/usr/lib/grub2/i386-pc/moddep.lst
/usr/lib/grub2/i386-pc/msdospart.mod
/usr/lib/grub2/i386-pc/multiboot.mod
/usr/lib/grub2/i386-pc/multiboot2.mod
/usr/lib/grub2/i386-pc/nilfs2.mod
/usr/lib/grub2/i386-pc/normal.mod
/usr/lib/grub2/i386-pc/ntfs.mod
/usr/lib/grub2/i386-pc/ntfscomp.mod
/usr/lib/grub2/i386-pc/ntldr.mod
/usr/lib/grub2/i386-pc/ohci.mod
/usr/lib/grub2/i386-pc/part_acorn.mod
/usr/lib/grub2/i386-pc/part_amiga.mod
/usr/lib/grub2/i386-pc/part_apple.mod
/usr/lib/grub2/i386-pc/part_bsd.mod
/usr/lib/grub2/i386-pc/part_gpt.mod
/usr/lib/grub2/i386-pc/part_msdos.mod
/usr/lib/grub2/i386-pc/part_sun.mod
/usr/lib/grub2/i386-pc/part_sunpc.mod
/usr/lib/grub2/i386-pc/partmap.lst
/usr/lib/grub2/i386-pc/parttool.lst
/usr/lib/grub2/i386-pc/parttool.mod
/usr/lib/grub2/i386-pc/password.mod
/usr/lib/grub2/i386-pc/password_pbkdf2.mod
/usr/lib/grub2/i386-pc/pbkdf2.mod
/usr/lib/grub2/i386-pc/pci.mod
/usr/lib/grub2/i386-pc/play.mod
/usr/lib/grub2/i386-pc/png.mod
/usr/lib/grub2/i386-pc/probe.mod
/usr/lib/grub2/i386-pc/pxe.mod
/usr/lib/grub2/i386-pc/pxeboot.img
/usr/lib/grub2/i386-pc/pxecmd.mod
/usr/lib/grub2/i386-pc/raid.mod
/usr/lib/grub2/i386-pc/raid5rec.mod
/usr/lib/grub2/i386-pc/raid6rec.mod
/usr/lib/grub2/i386-pc/read.mod
/usr/lib/grub2/i386-pc/reboot.mod
/usr/lib/grub2/i386-pc/regexp.mod
/usr/lib/grub2/i386-pc/reiserfs.mod
/usr/lib/grub2/i386-pc/relocator.mod
/usr/lib/grub2/i386-pc/scsi.mod
/usr/lib/grub2/i386-pc/search.mod
/usr/lib/grub2/i386-pc/search_fs_file.mod
/usr/lib/grub2/i386-pc/search_fs_uuid.mod
/usr/lib/grub2/i386-pc/search_label.mod
/usr/lib/grub2/i386-pc/sendkey.mod
/usr/lib/grub2/i386-pc/serial.mod
/usr/lib/grub2/i386-pc/setjmp.mod
/usr/lib/grub2/i386-pc/setpci.mod
/usr/lib/grub2/i386-pc/sfs.mod
/usr/lib/grub2/i386-pc/sleep.mod
/usr/lib/grub2/i386-pc/tar.mod
/usr/lib/grub2/i386-pc/terminal.lst
/usr/lib/grub2/i386-pc/terminal.mod
/usr/lib/grub2/i386-pc/terminfo.mod
/usr/lib/grub2/i386-pc/test.mod
/usr/lib/grub2/i386-pc/test_blockarg.mod
/usr/lib/grub2/i386-pc/testload.mod
/usr/lib/grub2/i386-pc/tga.mod
/usr/lib/grub2/i386-pc/trig.mod
/usr/lib/grub2/i386-pc/true.mod
/usr/lib/grub2/i386-pc/udf.mod
/usr/lib/grub2/i386-pc/ufs1.mod
/usr/lib/grub2/i386-pc/ufs2.mod
/usr/lib/grub2/i386-pc/uhci.mod
/usr/lib/grub2/i386-pc/usb.mod
/usr/lib/grub2/i386-pc/usb_keyboard.mod
/usr/lib/grub2/i386-pc/usbms.mod
/usr/lib/grub2/i386-pc/usbserial_common.mod
/usr/lib/grub2/i386-pc/usbserial_ftdi.mod
/usr/lib/grub2/i386-pc/usbserial_pl2303.mod
/usr/lib/grub2/i386-pc/usbtest.mod
/usr/lib/grub2/i386-pc/vbe.mod
/usr/lib/grub2/i386-pc/vga.mod
/usr/lib/grub2/i386-pc/vga_text.mod
/usr/lib/grub2/i386-pc/video.lst
/usr/lib/grub2/i386-pc/video.mod
/usr/lib/grub2/i386-pc/video_bochs.mod
/usr/lib/grub2/i386-pc/video_cirrus.mod
/usr/lib/grub2/i386-pc/video_fb.mod
/usr/lib/grub2/i386-pc/videoinfo.mod
/usr/lib/grub2/i386-pc/videotest.mod
/usr/lib/grub2/i386-pc/xfs.mod
/usr/lib/grub2/i386-pc/xnu.mod
/usr/lib/grub2/i386-pc/xnu_uuid.mod
/usr/lib/grub2/i386-pc/xzio.mod
/usr/lib/grub2/i386-pc/zfs.mod
/usr/lib/grub2/i386-pc/zfsinfo.mod
...
How am I supposed to build a 64-bit grub2.efi file then? If I perform a 'file' command on the generated grub2.efi file, the file is empty.

---------- Post added at 09:33 PM ---------- Previous post was at 08:12 PM ----------

I should have paid more attention to the output of yum search grub...

It so happens that there is a grub2-efi rpm which provides both an .efi image and the missing modules installed to /usr/lib/grub2/x86_64-efi... Now if only I could find a way for it to actually find its confiuration file, instead of having it load into rescue console... But I have managed to get the menu by manually loading the configuration file, and was successful at loading a kernel in EFI mode this way...
__________________
If ain't broken, don't fix it! :eek:
If can be improved, go for it! :cool:

FedoraForum Community forums lurker.
Fedora user since RHL 5.2 :cool:

Systems: Laptop, Main System, Netbook.
Reply With Quote
  #2  
Old 27th May 2012, 06:49 PM
chrismurphy Offline
Registered User
 
Join Date: May 2010
Posts: 867
macoschrome
Re: Grub2, EFI, bad ELF header...

Most of the patches for EFI in Grub Legacy have not yet made it into GRUB2. That work is continuing and should be done for F18. In the meantime, it's Grub Legacy EFI for Macs and Fedora 17.
Reply With Quote
Reply

Tags
bad, efi, elf, grub2, grub2-mkimage, header

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
[SOLVED] Grub2, dev modifications from satndard grub2 install jakebpg Using Fedora 16 9th March 2012 08:39 AM
Grub2 duke11235 Using Fedora 8 13th October 2009 02:14 PM


Current GMT-time: 01:25 (Saturday, 25-05-2013)

TopSubscribe to XML RSS for all Threads in all ForumsFedoraForumDotOrg Archive
logo

All trademarks, and forum posts in this site are property of their respective owner(s).
FedoraForum.org is privately owned and is not directly sponsored by the Fedora Project or Red Hat, Inc.

Privacy Policy | Term of Use | Posting Guidelines | Archive | Contact Us | Founding Members

Powered by vBulletin® Copyright ©2000 - 2012, vBulletin Solutions, Inc.

FedoraForum is Powered by RedHat