Hey all. Not new to Linux, been using Linux for quite a few years now. I am however, new to Arch and decided to try installing in a VM in VB today. I think I figured everything out and carried out the installation as per the Arch wiki installation instructions.
Problem is now I’m not sure I’ve installed it correctly. Upon reboot (and removing the ISO), it boots to a Shell> prompt. I installed grub but it doesn’t show the grub at all. None of the typical Linux commands I know work in this shell CLI. I tried searching the wiki pages for this and all it points me to is a list of recommendations (for new software to install) and doesn’t tell you what to do once you’re at this prompt. I’ve tried google search and can’t seem to find anything on this. Screenshot attached. Any help would be appreciated.
it might have something to do with UEFI installation mode.
Because you dont seem to get to grub yet.
I´m not a Linux guru in that extended troubleshoot level myself unfortunatlly.
but i guess we have plenty of people arround that can help.
I have not looked at setting up vanilla Arch for a long time,
Because nowdays there are plenty of Arch installers that makes the process allot easier.
Can’t really read the console from the picture on mobile, but the yellow is a dead give away.
Swapped to desktop, can see a bit better now. Looking at your browser URL, your using the on metal wiki, Link below gets you to the arch Virtualbox wiki. Specifically the section about booting into the UEFI shell.
This is an UEFI console Shell. Your not yet getting to grub.
Thanks for the suggestion. I’ve installed and experimented with a wide variety (probably 20 or more over the years) of distros - all with “easy to use” installation GUIs. I purposely want to learn to install vanilla Arch for the learning experience and to learn what is actually happening “under the hood” during installation.
I’ll read through that and try following what it says there. Not sure how I missed that before.
By the looks of it, it’s actually easier to install Arch on bare metal than it is in a VB VM, lol. Still, this is a great learning experience and I want to see if I can get this to work.
Will post the results of my efforts later tonight. Wish me luck…
When booting from bare metal, the systems are generally in line for the boot process. Most people here are from the BIOS age. Static pointer implementation that always looks at the boot device for a specific block location.
Easy to emulate.
UEFI is a “smarter” system. Polling the ESP(s) [Efi System Partition] for new BOOT.EFI files at a/n periodicity/event determined by the manufacrers specification.
Boot process also performs hardware IRQ enumeration, #HCI handoff that can either be accepted by the host bootloader/bootstrap, or disregarded and OS hardware enumeration performed from scratch.
When putting a type one or type two hypervisor on top of your host, BIOS is easier to emulate than EFI because it’s looking at your actual chip on the motherboard, unless specified. UEFI is a much more dynamic evolution handler then BIOS, allowing greater flexibility, but being a much bigger pain in the ass when using legacy knowledge.
So for virtualbox, it’s looking at your boards quarries to the ESP. obviously the VB BOOTx64.EFI doesn’t exist in this pool(usually if installed to a virtual disk) hence the startup.nsh file, with entrance to the EFI shell.
So on boot, you can either allow the timeout to be performed, allowing the startup.nsh(which can be customized) file to do it’s thing. Or you can manually point the shell to it correct path.
Yeah… I’m lost. I’ve read the relevant wiki instructions and what-not and I don’t know what to do at this stage. This is beyond my understanding. If someone could help point me in the right direction, that would be awesome.
your “bcfg boot dump -v” Option: 01 is the ESP(Option: 00 being the DVD/CD), which doesn’t contain kernels(depending on how the install was performed). I could be wrong about fs0/1
To look at its contents of the filesystem; (The objective here is to find which fs(0/1) contains a path related to /EFI/BOOT/BOOTX64.EFI)
Shell> map
it will shit out(if im correct) fs0=DVD/CD, fs1=ESP. Listing the browsable filesystems.
Find the one that looks to be the ESP;
Shell> fs1:
The above will mount fs1 and put you at its /
ls and cd commands work for navigation.
fs1:\> ls
hopefully will list /EFI
then
fs1:\> cd /EFI
you can follow the progression to /EFI/BOOT/BOOTX64.EFI to verify the proper path.
You are actually correct what he needs to do is obtain and or build the efibootmgr package. Create a partition of circa 502 MBs in size and install it there. Then he needs to make sure that the UEFI mode of his system is not in secure boot mode as that is the only way to use certain drivers etc now. As you can see when you install openSUSE or Ubuntu its the same mechanism you install grub-efi and configure it to see your linux and windows distributions. When you want to install graphics drivers youll find you need to disable secure boot so its best to disable it from the get go.
If any arch gurus are in here can grub-efi be used instead? I havent used arch since pre uefi
That is not true. Linux and Secure Boot have never gotten along well together. UEFI is simply unified EFI to bring about a unified standard for EFI on non MAC os machines. Secure Boot is the issue in UEFI which thank fully can be disabled. Secure Boot isnt even really secure. Its been circumvented and broken many times
In the install wiki for both bare metal installs and VBox installs, I did not see where it tells you to do this or shows how to do this… Is it possible to do this via the Shell prompt screen I’m at? Or do I need to start over from scratch?
I said I could be wrong about the numbering schemes in addition to virtualbox translation.
Yes this should be possible from the EFI shell, pending on how you installed to get here. It’s saying you have an ESP, just need to figure out how to mount and look at it.
BLK0 is the DVD
BLD1 is the “hard drive” esp Partition
What does fs0: get you?
Your not really changing anything at the moment, so no harm in poking around. There is a uefi shell help command, think it’s
help -b
Or just
help
That can give you some more info.
As for wiping the VM and starting over. That’s your call, I don’t know what wiki you followed to the T before getting to this point, or if your getting confused on what has been done with your current condition/location, what kernel modules you put on the VM vs host.
I recommend looking up what the steps are trying to do, as in what’s the intent (man pages) vice verbatim compliance. VB adds a layer of obfuscation that can get obfuscated.