You are not logged in.

#1 2015-10-16 02:09:41

TLRassilon
Member
Registered: 2015-10-16
Posts: 9

[solved] Arch not appearing on my boot options (Windows 10/Arch dual)

Hello all, I've been using Linux Mint for a few months now, and have really enjoyed it. I obtained a new computer, and decided to put arch on it, but am running into an issue. What I am trying to do is dual boot Windows 10 and arch from the same hard drive.

My computer is a Toshiba Satellite Radius running a pre-installed windows 10.
I have disabled secure boot.

I have been following the beginners guide as closely as I can, and will summarize what I've done so far:
My partition table is gpt as shown by # parted.

I made 3 new partitions:
sda5 is an ext4 root (20GB)
sda6 is a swap (4GB)
sda7 is an ext4 home (185GB)

sda1 is the existing EFI system partition

I followed the guide for installing the bases and such.

ran: mount /dev/sda5 /mnt
ran: mkdir -p /mnt/boot
ran: mount /dev/sda1 /mnt/boot

I then chrooted into /mnt /bin/bash and made the changes in the guide. The problem I am running into is in the bootloader section.

I install bootctl and it tells me that it created the EFI boot entry: "Linux boot manager".
I then make arch.conf and edit loader.conf according to the guide.

Made a password, umounted /mnt, and rebooted. I am then greeted with three options:
1. Windows boot manager
2. EFI Default Loader
3. Reboot into Firmware Interface

upon selecting option 2) I am immediately greeted with the same options, sans option 2.

Forgive my ignorance, but where have I gone wrong?

Last edited by TLRassilon (2015-10-20 04:04:40)

Offline

#2 2015-10-16 04:31:47

Blasphemist
Member
From: Colorado
Registered: 2013-01-17
Posts: 160

Re: [solved] Arch not appearing on my boot options (Windows 10/Arch dual)

I don't currently use a boot loader nor boot manager but I have done lots of dual and multi booting in the past. When you install and configure a boot loader or boot manager they usually offer a scripted install/config or a manual method. I think all of the boot loaders or managers use efibootmgr to add the appropriate boot entry to UEFI. I use it to put an entry in the UEFI variables that tells my Toshiba Satellite to launch my Arch kernel directly but normally it is used to tell UEFI to launch the boot manager or loader.

From what you have included here it doesn't look like UEFI knows to launch bootctl. You can likely fix this by using efibootmgr to write the new boot entry to UEFI. You can also use efibootmgr to diagnose this. Use efibootmgr without any switches and it will show you your settings. The man page for efibootmgr is pretty clear and self explanatory. Pay special attention to where defaults may be different than your needed settings.

One thing that can cause no entry to be created in UEFI is if you for some reason don't get your Arch iso booted into UEFI mode. The wiki shows you how to verify this. You can use efivars, efibootmgr or looking for the efi files to ensure you are in UEFI mode.


Simple and Open

Offline

#3 2015-10-16 05:39:24

TLRassilon
Member
Registered: 2015-10-16
Posts: 9

Re: [solved] Arch not appearing on my boot options (Windows 10/Arch dual)

So I used efibootmgr to directly install an arch entry a la:

# efibootmgr -c - d /dev/sda -p 1 -L "Arch Linux" -l /vmlinuz-linux -u "root=/dev/sda5 rw initrd=/initramfs-linux.img"

This added an entry, but does nothing when booting (though efibootmgr says it should load first).

I double checked to make sure my efivars were populated, which they were. I also installed rEFInd which it immediately booted into, though there was no option to boot to Arch from there. I am really at a loss.

Offline

#4 2015-10-16 14:11:57

Blasphemist
Member
From: Colorado
Registered: 2013-01-17
Posts: 160

Re: [solved] Arch not appearing on my boot options (Windows 10/Arch dual)

This is a puzzle. Could you post the output of efibootmgr? Your command to create the entry in UEFI's boot order is the same as mine for launching the kernel directly, except I didn't include rw for the partition in the kernel params. What is your boot order in UEFI shell setup? Is HDD first in line? Make it so if it isn't. Not all UEFI systems have the boot manager that is coming up now for you. Mine doesn't (Insyde H2O). I have to press F12 at boot to see it. See if you can find an option in UEFI setup shell to not have that come up.

Did you manually install rEFInd? It should be finding Arch for sure. Is your mount point for the ESP set to /boot? That's what you efibootmgr line would work for. That means your Arch kernel is at the "root" of the ESP and rEFInd should for sure be finding it since it is on the same partition. It doesn't have to find it on another partition this way. What does rEFInd find?


Simple and Open

Offline

#5 2015-10-16 14:20:23

Blasphemist
Member
From: Colorado
Registered: 2013-01-17
Posts: 160

Re: [solved] Arch not appearing on my boot options (Windows 10/Arch dual)

I should also add that you can always remove an existing entry in the UEFI boot order using this command. In this example 0004 is the boot entry to be removed.

#efibootmgr -b 4 -B

I don't try to edit existing entries I remove them and re-create them.


Simple and Open

Offline

#6 2015-10-16 14:24:21

Scimmia
Fellow
Registered: 2012-09-01
Posts: 11,597

Re: [solved] Arch not appearing on my boot options (Windows 10/Arch dual)

Sounds like your motherboard uses a really bad UEFI implementation. There are a lot of them out there.

Make sure your bootloader is getting installed to $ESP/EFI/boot/bootx64.efi, as that will be the default for a 64-bit EFI system.

Offline

#7 2015-10-16 16:22:19

TLRassilon
Member
Registered: 2015-10-16
Posts: 9

Re: [solved] Arch not appearing on my boot options (Windows 10/Arch dual)

So, when I ran efibootmgr to look at the boot order, my Arch Linux boot had disappeared. After mounting and chrooting I ran the command to directly install Arch boot entry again, and then ran efibootmgr. Here is the output:

BootCurrent: 0000
Timeout: 0 seconds
Boot Order: 0004, 0003, 0002, 0001, 2001, 2002, 2003
Boot0000* EFI USB Device (Generic Flash Disk)
Boot0001* Windows Boot Manager
Boot0002* Linux Boot manager
Boot0003* rEFInd Boot Manager
Boot2001* EFI USB Device
Boot0004* Arch Linux

My bootloader is being installed to /boot/EFI/Root/BOOTX64.EFI

When i booted, Arch was not an option.. It can't seem to find it. I'm going to double check and make sure the Arch entry is still there (Trying to install Arch on this computer).

Offline

#8 2015-10-16 16:39:17

TLRassilon
Member
Registered: 2015-10-16
Posts: 9

Re: [solved] Arch not appearing on my boot options (Windows 10/Arch dual)

I went back to check, and Boot0004* Arch Linux was gone from efibootmgr. Why would it be removing this entry?

I mounted things and ran refind-install, and it installed correctly (upon rebooting I was met with rEFInd but no Linux entry).vmlinuz-linux and initramfs-linux.img are in my root directory.

In /Boot/EFI there are these directories: Boot, Microsoft, refind, systemd, tools, toshiba. Should there be an Arch entry here?

Last edited by TLRassilon (2015-10-16 16:39:59)

Offline

#9 2015-10-17 01:28:48

TLRassilon
Member
Registered: 2015-10-16
Posts: 9

Re: [solved] Arch not appearing on my boot options (Windows 10/Arch dual)

Okay, so I wiped the root partition and started over. Now, when I boot I have an Arch Linux option!

But, when I try to load it, I get this error: vmluniz-linux Not found.

Ideas?

Offline

#10 2015-10-17 03:49:43

Blasphemist
Member
From: Colorado
Registered: 2013-01-17
Posts: 160

Re: [solved] Arch not appearing on my boot options (Windows 10/Arch dual)

You can go through an Arch installation and not install a boot manager nor boot loader on a UEFI system. That's what I have right now since I only have one thing to boot, Arch. Your choice of mount point for the ESP must be /boot to do that. That choice determines which partition holds your kernel files. If you mount the ESP at /boot you are mounting that partition as the directory where the kernel always gets installed to and updated at.

UEFI can only load files with certain properties and only from the ESP. The Arch kernel by default is EFISTUB enabled which means it can be loaded directly by UEFI. Most files that can be loaded by UEFI directly have an efi extention but the Arch Linux kernel is an example of that extension not being a requirement.

At this point in this story we have a UEFI boot capable kernel installed on the ESP where it can be loaded by UEFI directly. Since the ESP is mounted at /boot and since that is where the kernel gets installed by Arch, the kernel resides at /boot which is the root of the ESP so to speak. In Arch it is at /boot. It is not a /boot/efi/EFI/BOOT or any other such sub-directory.

If your mount point for the ESP is /boot/efi, the kernel still gets installed to and updated at /boot. That means the kernel in this case resides on the / partition, not the ESP. UEFI can only load files/kernels from on the ESP so if you use /boot/efi as the mount point you have to use a boot loader that you install to the ESP and have it mount the desired root partition and load the kernel.

I believe the simplest case to be a single boot (not dual or multi boot) system using a /boot mount point for the ESP. You can use a boot loader or manager but to me that just adds complexity that isn't needed. And we want to keep it simple whenever we can right?

The utility to tell UEFI what to load and in what order of preference is efibootmgr as discussed above. The command you show above to create the entry labeled Arch Linux should not bring up any boot manager or loader. It should just launch the kernel. No messing around, just kernel loading. With that as the first entry in the boot order, the kernel should just launch. There has at times been a bug in efibootmgr that did what you describe. It shows your new entry has been added but somehow isn't after a reboot. I've had it happen and have had to reissue the efibootmgr command line and after a couple tries it has always worked for me. I'm not sure why. I know I did use efivar or look at the /sys/firmware/efi/efivars directory to see if new entry showed in the efi file system. Maybe that somehow ensured my change was really saved to the efi file system. That is just organization and storage of variables after all.

When I have a need for a boot manager or loader, I try to keep it simple. I install the package and then manually install the loader or manager to the ESP, instead of using a script that may use some default that doesn't work for me. All the scripts do is copy files to the ESP, in some cases add a config entry to one or more of those files and use efibootmgr to write a new entry to UEFI. When I've used rEFInd it has always found any bootable items that it should at run time. Grub, systemd-boot and rEFInd have all worked well for me. I will recommend though to leave as little to scripts as possible. Do it yourself as much as you can. That's just keeping it simple to me. I tried to make this easy to understand but let me know if it isn't. I just wanted whomever might read it to not have to fight through it too much.

Last edited by Blasphemist (2015-10-17 03:52:53)


Simple and Open

Offline

#11 2015-10-17 04:06:13

Blasphemist
Member
From: Colorado
Registered: 2013-01-17
Posts: 160

Re: [solved] Arch not appearing on my boot options (Windows 10/Arch dual)

TLRassilon wrote:

Okay, so I wiped the root partition and started over. Now, when I boot I have an Arch Linux option!

But, when I try to load it, I get this error: vmluniz-linux Not found.

Ideas?

Sorry I just saw this after my novel above. Be sure your mount point is /boot and the path used in the efibootmgr command matches. Unless you've changed from the above efibootmgr command and using no boot loader. That message is just saying the kernel isn't found where you told UEFI it was.


Simple and Open

Offline

#12 2015-10-17 04:11:46

Blasphemist
Member
From: Colorado
Registered: 2013-01-17
Posts: 160

Re: [solved] Arch not appearing on my boot options (Windows 10/Arch dual)

Another thought. My lappy only brings up a built in boot manager if I press F12. It sounds like yours is coming up without that. That is a good example that there are some confusing differences between different UEFI implementations. There may be a way to turn that off in the UEFI shell (setup).


Simple and Open

Offline

#13 2015-10-17 04:44:32

TLRassilon
Member
Registered: 2015-10-16
Posts: 9

Re: [solved] Arch not appearing on my boot options (Windows 10/Arch dual)

So for mounting my ESP to boot, I use:

 # mount /dev/sda1 /mnt/boot 

/boot is where vmlinuz-linux is now found; not in a sub-directory like /boot/EFI/Boot/.

So if the error message is saying the kernel isn't where I said it was, how do I tell it where to look?

My laptop only loads its built in loader if I press f12 as well. The only two options are HHD, and USB.

Offline

#14 2015-10-17 05:28:25

Blasphemist
Member
From: Colorado
Registered: 2013-01-17
Posts: 160

Re: [solved] Arch not appearing on my boot options (Windows 10/Arch dual)

One character is biting you in the ass :-)

It's backslash since the ESP is FAT32. -l \vmlinuz-linux

This is telling UEFI it should launch \vmlinuz-linux not something else in a subdirectory. If you desired to tell it to load rEFInd you would use it's path and executable.

That's why it isn't found. Sorry I didn't catch that before.

Last edited by Blasphemist (2015-10-17 12:50:58)


Simple and Open

Offline

#15 2015-10-17 19:58:51

Head_on_a_Stick
Member
From: London
Registered: 2014-02-20
Posts: 7,732
Website

Re: [solved] Arch not appearing on my boot options (Windows 10/Arch dual)

TLRassilon wrote:

Okay, so I wiped the root partition and started over. Now, when I boot I have an Arch Linux option!

Did you re-install the system then?

A potential solution is to backup the file at $ESP/Microsoft/Boot/bootmgfw.efi and then copy $ESP/EFI/boot/bootx64.efi to that location to "fool" your firmware into booting the Arch boot manager instead.

I can't test if this would work though as I no longer use Windows.

Offline

#16 2015-10-18 02:55:33

TLRassilon
Member
Registered: 2015-10-16
Posts: 9

Re: [solved] Arch not appearing on my boot options (Windows 10/Arch dual)

Blasphemist wrote:

One character is biting you in the ass :-)

It's backslash since the ESP is FAT32. -l \vmlinuz-linux

This is telling UEFI it should launch \vmlinuz-linux not something else in a subdirectory. If you desired to tell it to load rEFInd you would use it's path and executable.

That's why it isn't found. Sorry I didn't catch that before.

So I replaced that character and got the same error.

Head_on_a_Stick wrote:

Did you re-install the system then?

Yes, exactly.

Offline

#17 2015-10-18 03:14:25

Blasphemist
Member
From: Colorado
Registered: 2013-01-17
Posts: 160

Re: [solved] Arch not appearing on my boot options (Windows 10/Arch dual)

I'm really disappointed. I thought we had it beaten.

What happens at boot? What should be happening from what I understand of what you have done is Arch should be booting without you seeing any boot loader or manager. Please post the last efibootmgr command that you have used. And please post the output from efibootmgr so I can see what is in UEFI's variables now for boot options. You should also be able to boot the arch installation media, go into the arch-chroot environment with the proper partitions mounted and look at /boot contents and see the kernel files.

I think you are really close on this and you should get this handled very soon so hang in though I know it's frustrating.


Simple and Open

Offline

#18 2015-10-18 03:47:46

TLRassilon
Member
Registered: 2015-10-16
Posts: 9

Re: [solved] Arch not appearing on my boot options (Windows 10/Arch dual)

Okay, so when I boot I am taken directly to the Linux Boot Manager (bootctl). It seems to not boot my Arch efi entry, which I assume would give me the error I have been getting if it was launching. My (supposed) boot order is as follows:

BootCurrent: 0000
Timeout: 0 seconds
Boot Order: 0003, 0002, 0001, 2001, 2002, 2003
Boot0000* EFI USB Device (Generic Flash Disk)
Boot0001* Windows Boot Manager
Boot0002* Linux Boot manager
Boot0003* Arch
Boot2001* EFI USB Device
 

I took out rEFInd since it wasn't helping me.

The last efibootmgr command I used was:

# efibootmgr -c -d /dev/sda -p 1 -L "Arch" -l \vmlinuz-linux -u "root=/dev/sda5 rw initrd=/initramfs-linux.img"

the contents of my /boot are:

EFI initramfs-linux-fallback.img initramfs-linux.img loader vmlinuz-linux

Now, in the spirit of just trying things at this point, I edited the arch.conf under /loader/entries to:

title Arch Linux
linux \vmlinuz-linux
initrd /initramfs-linux.img
options root=/dev/sda5 rw

(I also tried booting with no\ or /in arch.conf for linux and initrd).

Something else just occured to me as well. In my efi command, is that supposed to be a lowere-case "el" or upper case "eye" after "arch"? lower-case "l" right?

Thanks for your help and time.

Last edited by TLRassilon (2015-10-18 03:48:08)

Offline

#19 2015-10-18 15:12:43

Blasphemist
Member
From: Colorado
Registered: 2013-01-17
Posts: 160

Re: [solved] Arch not appearing on my boot options (Windows 10/Arch dual)

I want to walk step by step through this and see if something clicks for us. I'll delete and remake my UEFI boot entry for Arch with no bootloader. I see the Toshiba splash screen while UEFI initializes and then the kernel just starts loading. There's nothing to choose unless I press F12 and then I can choose the device to boot, not the OS I want. I think sometime in the past I have seen another boot menu provided by my UEFI so when I reboot I'll check and see if I can get that to show.

First I'll delete my current boot entry. Before I do that here is the output from efibootmgr to see current settings.

james ~/Documents/Arch $  efibootmgr
BootCurrent: 0000
Timeout: 5 seconds
BootOrder: 0000,2003,2001,2002
Boot0000* ArchRoot
Boot0002* EFI Network 0 for IPv4 (00-8C-FA-67-46-C2)
Boot0003* EFI Network 0 for IPv6 (00-8C-FA-67-46-C2)
Boot2001* EFI USB Device
Boot2002* EFI DVD/CDROM
Boot2003* EFI Network

My current label for Arch is ArchRoot because I'm working on some Architect installer experiments and sometimes add another Arch instance with it.

Now I delete my ArchRoot entry.

#efibootmgr -b 0 -B

At this point I have no entry to boot my Arch. I only have these other entries that I guess my Toshiba's Insyde H2O UEFI gives me. Note, I don't know how to use any of these options.

BootCurrent: 0000
Timeout: 5 seconds
BootOrder: 2003,2001,2002
Boot0002* EFI Network 0 for IPv4 (00-8C-FA-67-46-C2)
Boot0003* EFI Network 0 for IPv6 (00-8C-FA-67-46-C2)
Boot2001* EFI USB Device
Boot2002* EFI DVD/CDROM
Boot2003* EFI Network

Now I'll recreate a boot entry for Arch and I'll explain each switch I'm using to do that, as I understand them.

james ~/Documents/Arch $  sudo efibootmgr -d /dev/sda -p 1 -c -L "ArchColo" -l \vmlinuz-linux -u "root=/dev/sda3 rw initrd=/initramfs-linux.img"
BootCurrent: 0000
Timeout: 5 seconds
BootOrder: 0000,2003,2001,2002
Boot0002* EFI Network 0 for IPv4 (00-8C-FA-67-46-C2)
Boot0003* EFI Network 0 for IPv6 (00-8C-FA-67-46-C2)
Boot2001* EFI USB Device
Boot2002* EFI DVD/CDROM
Boot2003* EFI Network
Boot0000* ArchColo

-d /dev/sda is identifying the boot device, sda
-p 1 is identifying the EFI System Partition, sda1 in my case
-c tells UEFI to create a new boot entry and put it first in line in the boot order
- L is defining the label for that boot entry and should be unique. Architect uses ArchLinux so I choose something that is unique.
-l is the path and loader name. In this case it is it is my Arch linux kernel at the root of the ESP. Note, it is letter L in lower case and this is UEFI and a FAT32 partition (no linux loaded yet)so backslash is required in paths. If you were going to create an entry for a boot loader or manager, the path and loader file name would change to whatever the path and file of that should be.
-u stands for unicode and it allows me pass the kernel command line arguements. I'm telling the kernel that the root partition is /dev/sda3, mount it read-write (got that from you TLRassilon) and define the initial ram disk (note that the way I have this shown puts it at the root of ESP, not the root of sda1).
Quotes are around the ASCII.

Now I reboot and make sure it still works :-)


Simple and Open

Offline

#20 2015-10-18 15:25:37

Blasphemist
Member
From: Colorado
Registered: 2013-01-17
Posts: 160

Re: [solved] Arch not appearing on my boot options (Windows 10/Arch dual)

All that checks out again here. I see the Toshiba screen while UEFI initializes and then the kernel starts loading immediately. I haven't found any built in boot loader I can get other than F12 for choosing a device and I'll keep looking at that but that is a side question. Does any of that help in any way?


Simple and Open

Offline

#21 2015-10-20 04:03:35

TLRassilon
Member
Registered: 2015-10-16
Posts: 9

Re: [solved] Arch not appearing on my boot options (Windows 10/Arch dual)

Signing in from my shiny new Arch setup! So mkfs.ext4'ed over my partitions and re-installed the base and base-devel without the -i tag. I then followed your command for booting directly to Arch, without trying to set up a bootloader. I now have access!

Of course, now I need to firgure out how to rescue my windows boot,but that can happen later. Thanks for all your help!

Offline

#22 2015-10-20 04:24:36

Blasphemist
Member
From: Colorado
Registered: 2013-01-17
Posts: 160

Re: [solved] Arch not appearing on my boot options (Windows 10/Arch dual)

That's great to hear! Plan out your boot loader install for getting the windows dual boot back but know if it does give you trouble, you can come back to this boot entry just by changing this back to top in the boot order.


Simple and Open

Offline

Board footer

Powered by FluxBB