Help with Arch Linux install

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.

Screenshot from 2017-11-19 18-06-03

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.

I am in the same shoes as you. I tried gentoo and didn’t get very far. Solus is also a rolling release distribution.

Download at https://solus-project.com/

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.

Edit: Found it, VirtualBox_Installation_in_EFI_mode

Edit2: words and onelines

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. :wink:

1 Like

Thanks. I did see that wiki and I did try to follow what it says, but I think I missed the steps for how to launch the UEFI manually, found here: https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface#UEFI_Shell

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. :wink:

Will post the results of my efforts later tonight. Wish me luck… :stuck_out_tongue:

1 Like

linux and uefi have never gone well together

Take this as allegory;

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.

Further reading on EFI

A tool by the same author that may be able to be used with virtualbox. It is the cats bananas.

5 Likes

Thanks for the detailed reply. I only understood maybe half of what you said, lol, but still helpful, none-the-less. :wink:

Later this evening I will try following the steps as mentioned in my last reply and go from there.

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. :frowning: If someone could help point me in the right direction, that would be awesome.

This is what I see now:
Screenshot from 2017-11-20 19-38-53

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.

With your findings:

Shell> bcfg boot add 3 fs1:\EFI\BOOT\BOOTX64.EFI “ARCH_VB”

Pay attention to / and \ usage. This is kind of a rambling mess. Let me know if I lost you.

2 Likes

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

2 Likes

So, this is what I get:
Screenshot from 2017-11-21 18-08-49

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.

Edits: additional additions

fs0: returns the same output as fs1: and fs01: as you see in that last screenshot I posted.

I’ve been using the official Arch wiki pages for installation/instructions.

Seems i have been leaving out a step in the procedure.

fs0 and fs1 don’t yet exist.

if you type

alias

it should return nothing as reflected by your screenshot;
BLK0: Alias(s):
BLK1: Alias(s):

If you compare the PciRoot####/Sata####### of BLK1, it matches the EFI Hard Drive entry. Where PciRoot####/Ata matches the EFI DVD/CDROM entry.

Looking at the intel doc, typing fs0: doesn’t explicitly “MOUNT” the volume.

I believe you need to mount it first(usually fs0, fs1, fs3, etc.)

So;

Shell> mount BLK1 efi

you can substitute efi for fs0 if that makes you feel more comfortable

Should say “Success - forced file system mount”

then it should relist mappings

BLK1 should now list aliases for whatever you mounted it as

Shell> efi:

Or

Shell> fs0:

you should now be seeing(efi: going forward)

efi:\>

ls or dir

cd to move through the filesystem

if you just want to verify the .efi is the correct one after you find it, just type the name, it should start the boot process

Keep in mind this is DOS navigation so use \ if you get to the point of creating your own startup.nsh

Edit: Words + Highlights

I haven’t touched an EFI shell or VB in a little while, so bear with me.

Sorry for the delay is response. Been busy the last few days. Anyways, this is what it returned when I tried those commands:
Screenshot from 2017-11-24 18-48-04