You are not logged in.
I am trying to do a Grub UEFI installation, since neither rEFInd or gummiboot have worked for me.
I am unable to open the BIOS configuration menu (with F2) or the multiboot menu (with F12) anymore. I can only reach the grub rescue screen:
Welcome to GRUB!
error: file '/boot/grub/x86_64-efi/normal.mod' not found.
Entering rescue mode...
grub rescue> ls
(hd0) (hd0,gpt4) (hd0,gpt3) (hd0,gpt2) (hd0,gpt1) (cd0)
grub rescue> _
Before rebooting, during the configuration of grub, I moved /boot/grub/ to /boot/efi/grub, because that was my efi-directory:
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck --debug
My partitioning is like this:
/dev/sda1 --- 1G --- FAT --- UEFI system partition
/dev/sda2 --- 4G --- swap --- swap
/dev/sda3 --- 40G --- ext4 --- root
/dev/sda4 --- the rest --- ext4 --- home
Not sure what I should do at this point. I wanted to disable UEFI and install with legacy bootloader, but I cannot reach the boot configuration. Nor can I boot from the Arch Install CD now, either.
I have read the pages for UEFI, UEFI bootloaders, the bootloader section of the beginner's guide, gummiboot, GRUB2#UEFI, etc., but it's confusing to synthesize all the material and do it right.
Offline
So if that file was not found and expected to be at /boot/grub.... have you tried putting that crap back? The wiki page seems to say nothing about creating a /boot/efi/grub directory so I am not sure why you felt this was the right thing to do.
Grub has filesystem drivers (read-only) that allow it to find stuff like configuration, kernels, and initrds in /boot. So there *should* be no need to make sure that everything is on your ESP.
Having said all that, i am not sure how you thought that trying grub was better than simply trying to figure out where you wre going wrong with refind or gummiboot. Honestly, I think that the gummiboot configuration is the easiest I have ever seen... so moving from that to the complexities of grub seem a bit ludicrous to me.
Offline
So if that file was not found and expected to be at /boot/grub.... have you tried putting that crap back? The wiki page seems to say nothing about creating a /boot/efi/grub directory so I am not sure why you felt this was the right thing to do.
Grub has filesystem drivers (read-only) that allow it to find stuff like configuration, kernels, and initrds in /boot. So there *should* be no need to make sure that everything is on your ESP.
Having said all that, i am not sure how you thought that trying grub was better than simply trying to figure out where you wre going wrong with refind or gummiboot. Honestly, I think that the gummiboot configuration is the easiest I have ever seen... so moving from that to the complexities of grub seem a bit ludicrous to me.
That's the thing: I'm not sure how to do that. I was reading https://wiki.archlinux.org/index.php/GR … ue_console, but:
grub rescue> ls (hd0,gpt3)/boot
./ ../ efi/ vmlinuz-linux initramfs-linux.img initramfs-fallback.img
grub rescue> ls (hd0,gpt3)/boot/efi
./ ../
Can't even find the grub/ directory...
Offline
Can't you boot the kernel, loading the initramfs, directly from the rescue shell and then sort out the mess once booted?
Just to be sure: you are not using a Samsung, are you?
CLI Paste | How To Ask Questions
Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L
Offline
Can't you boot the kernel, loading the initramfs, directly from the rescue shell and then sort out the mess once booted?
Just to be sure: you are not using a Samsung, are you?
I am using a Lenovo Z580.
I would like to boot the kernel like you said, but first need to insert the "normal" module, because right now in the rescue shell, I only have commands
insmod, ls, set, unset
That is what caused the error in the first place, normal.mod is missing.
Offline
This breakthrough deserves a new post:
grub rescue> set
prefix=(hd0,gpt3)/boot/grub
root=hd0,gpt3
grub rescue> ls /
./ ../ lost+found/ home/ boot/ var/ dev/ run/ etc/ tmp/ sys/ proc/ usr/ lib lib64 mnt/ opt/ root/ srv/ sbin/ bin/
grub rescue> ls /etc/grub.d
./ ../ 41_custom 10_linux 20_linux_xen 20_memtest86+ README 30_os_prober 00_header 40_custom
grub rescue> ls /usr/share/grub
./ ../ euro.pf2 unicode.pf2 ascii.h ascii.pf2 themes/ widthspec.h grub-mkconfig_lib
Would it be possible to find normal.mod somewhere? I have been looking through them, but the grub directories I have found do not have it. Where are packages installed to?
Last edited by wolfcore (2013-03-11 02:36:18)
Offline
/usr/lib/grub/x86_64-efi/normal.mod
CLI Paste | How To Ask Questions
Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L
Offline
You can use pacman to list the files present in an installed package with "pacman -Ql <package>"
Offline
You can use pacman to list the files present in an installed package with "pacman -Ql <package>"
Not if you only have grub's rescue shell to work with!
CLI Paste | How To Ask Questions
Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L
Offline
Alright, so I managed to get to normal mode, by first importing about 5 or 6 other *.mod's the normal module depended on, and so now:
grub>
Possible commands are:
authenticate boot break clear continue export gettext insmod ls menuentry normal normal_exit return set setparams shift submenu terminal_input terminal_output unset
grub> set
-snip-
prefix=(hd0,gpt3)/usr/lib/grub/x86_64-efi
root=hd0,gpt3
grub> kernel /vmlinuz-linux
error: can't find command 'kernel'.
grub> initrd /initramfs-linux.img
error: can't find command 'initrd'.
Now where would I be able to get these? I assume they can also be insmod'ed from somewhere in /usr/lib/grub/x86_64-efi, where there's very many *.mod files.
Also, I probably need to change my prefix and root as well.
Offline
Before rebooting, during the configuration of grub, I moved /boot/grub/ to /boot/efi/grub, because that was my efi-directory:
Move back the directory to /boot/grub. /boot/efi/grubx64.efi is configured to look into /boot/grub (or rather <ESP>/grub, rather than <ESP>/efi/grub). Otherwise there should be no issues in your case.
Offline
CLI Paste | How To Ask Questions
Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L
Offline
I've read this, and I imported the normal module, but there are no Linux, kernel or initrd commands.
I get
Error: can't find command "linux".
Error: can't find command "kernel".
Error: can't find command "initrd".
Last edited by wolfcore (2013-03-12 02:27:44)
Offline
Alright, I have reread the wiki page and missed importing the linux.mod module. Now I have booted, and moved the grub/ directory to /boot. Next I need to make sure that I have everything else correct so it doesn't happen again.
Edit: I understand the rules about double posting, but decided to make a new post since this is not just an add-on our change to the previous.
Last edited by wolfcore (2013-03-12 04:28:09)
Offline