Ask Your Question

thierry46's profile - activity

2016-11-22 08:07:22 -0500 answered a question where is normal.mod located on UEFI GPT system?

By accidentally reading the info of the grub2-efi-modules package my penny dropped and I found my needed answer:

Fedora builds a grubx64.efi (the boot.img and core.img) within their build system and then signs it in order to support UEFI Secure Boot. This signed binary contains the most common GRUB's modules like normal.mod, boot.mod, linux.mod ect. needed to access different filesystems and boot the Linux kernel. Should you need to included more modules, then you can build your own grubx64.efi by choosing the wanted modules provided by the grub2-efi-modules packages.

Conclusion: The /boot/grub2/i386-pc and /boot/grub2/x86_64-efi directories are not needed because all the needed GRUB modules are available in grubx64.efi. Weather it is a TianoCore UEFI Virtualized or a bare metal UEFI system makes no difference.

2016-11-14 14:58:25 -0500 asked a question where is normal.mod located on UEFI GPT system?

I've installed fc24 from his MATE live iso onto a 64-bit qemu/kvm machine with split NVRAM setup and TianoCore (Kraxel OVMF) firmware. The VM starts normally and works fine. The only strange thing is that I can't find the /boot/grub2/i386-pc directory and his content with e.g. normal.mod. Neither is there a /boot/grub2/x86_64-efi directory. The normal.mod file is only present in /usr/lib/grub/i386-pc directory. below, the qemu command that starts my VM and the 'tree /boot/' command output.

On my 32-bit BIOS MBR VM, the /boot/grub2/i386-pc folder exists and in it the normal.mod file. also my x86_64 BIOS/MBR fc24 laptop has the normal.mod in the /boot/grub2/i386-pc directory.

Q1. is the normal.mod needed with UEFI systems that boot with GRUB2 i.e. with
       /boot/efi/EFI/fedora/grubx64.efi or shim.efi ?
Q2. if yes, where is it ?
Q3. or which one is it using ?

I'm asking because while preparing an i386 and x86_64 BIOS/MBR and UEFI/GPT GRUB2 re-install slide set for my Linux students I discovered a difference.

$ qemu-system-x86_64 -enable-kvm -machine pc-i440fx-2.1,accel=kvm -m 1G -drive if=pflash,format=raw,unit=0,readonly=on,file=fedora.code -drive if=pflash,format=raw,unit=1,file=fedora.vars -drive id=disk0,if=none,format=qcow2,file=fc24base-efi_split.qcow2 -device ide-hd,drive=disk0 -vga qxl -spice port=5001,disable-ticketing -soundhw ac97 -device virtio-serial -chardev spicevmc,id=vdagent,debug=0,name=vdagent -device virtserialport,chardev=vdagent,name=com.redhat.spice.0 -device ich9-usb-ehci1,id=usb -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,multifunction=on -device ich9-usb-uhci2,masterbus=usb.0,firstport=2 -device ich9-usb-uhci3,masterbus=usb.0,firstport=4 -chardev spicevmc,name=usbredir,id=usbredirchardev1 -device usb-redir,chardev=usbredirchardev1,id=usbredirdev1 -chardev spicevmc,name=usbredir,id=usbredirchardev2 -device usb-redir,chardev=usbredirchardev2,id=usbredirdev2 -chardev spicevmc,name=usbredir,id=usbredirchardev3 -device usb-redir,chardev=usbredirchardev3,id=usbredirdev3 -netdev tap,id=net0,ifname=vnet0,script=no,downscript=no -device e1000,netdev=net0,mac=54:52:00:12:34:57 &

# tree /boot/
/boot/
├── config-4.5.5-300.fc24.x86_64
├── efi
│   ├── EFI
│   │   ├── BOOT
│   │   │   ├── BOOTX64.EFI
│   │   │   └── fallback.efi
│   │   └── fedora
│   │       ├── BOOT.CSV
│   │       ├── fonts
│   │       │   └── unicode.pf2
│   │       ├── gcdx64.efi
│   │       ├── grub.cfg
│   │       ├── grubenv
│   │       ├── grubx64.efi
│   │       ├── MokManager.efi
│   │       ├── shim.efi
│   │       └── shim-fedora.efi
│   ├── mach_kernel
│   └── System
│       └── Library
│           └── CoreServices
│               └── SystemVersion.plist
├── elf-memtest86+-5.01
├── extlinux
│   ├── cat.c32
│   ├── chain.c32
│   ├── cmd.c32
│   ├── cmenu.c32
│   ├── config.c32
│   ├── cptime.c32
│   ├── cpu.c32
│   ├── cpuid.c32
│   ├── cpuidtest.c32
│   ├── debug.c32
│   ├── dhcp.c32
│   ├── disk.c32
│   ├── dmi.c32
│   ├── dmitest.c32
│   ├── elf.c32
│   ├── ethersel.c32
│   ├── gfxboot.c32
│   ├── gpxecmd.c32
│   ├── hdt.c32
│   ├── hexdump.c32
│   ├── host.c32
│   ├── ifcpu64.c32
│   ├── ifcpu.c32
│   ├── ifmemdsk.c32
│   ├── ifplop.c32
│   ├── kbdmap.c32
│   ├── kontron_wdt.c32
│   ├── ldlinux.c32
│   ├── lfs.c32
│   ├── libcom32.c32
│   ├── libgpl.c32
│   ├── liblua.c32
│   ├── libmenu.c32
│   ├── libutil.c32
│   ├── linux.c32
│   ├── ls.c32
│   ├── lua.c32
│   ├── mboot.c32
│   ├── memdisk
│   ├── meminfo.c32
│   ├── menu.c32
│   ├── pci.c32
│   ├── pcitest.c32
│   ├── pmload.c32
│   ├── poweroff.c32
│   ├── prdhcp.c32
│   ├── pwd.c32
│   ├── pxechn.c32
│   ├── reboot.c32
│   ├── rosh.c32
│   ├── sanboot.c32
│   ├── sdi.c32
│   ├── sysdump.c32
│   ├── syslinux.c32
│   ├── vesa.c32
│   ├── vesainfo ...
(more)