LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   UEFI boot problem on Wyse 3040 thin client (https://www.linuxquestions.org/questions/slackware-14/uefi-boot-problem-on-wyse-3040-thin-client-4175734680/)

epitaxial 03-08-2024 10:19 AM

UEFI boot problem on Wyse 3040 thin client
 
I'm having a problem with Slackware 15 booting after an install is performed on this box. For reference these thin clients have emmc storage so the partitions are:

Code:

mmcblk0p1 efi partition
mmcblk0p2 /

When booting the bios complains it can't find anything and the boot entry is always set for using

Code:

\EFI\BOOT\BOOTX64.EFI
Manually adding an entry to point towards anything else fails to boot and it reverts back to the above.

Now I can successfully boot from the Slackware usb installer by picking the grub option to boot installed operating systems and choosing:

Code:

(hd1,gpt1)/efi/Slackware/elilo.efi
I don't understand how to name or structure the files on the efi partition to appease the bios.

hazel 03-08-2024 10:45 AM

You can use efibootmgr (as root) to modify the UEFI's internal menu. The command without any arguments shows the current menu. With arguments, you can reorder the entries, deactivate what you don't want, or delete entries completely.

elcore 03-08-2024 10:56 AM

Quote:

Originally Posted by epitaxial (Post 6488406)
Now I can successfully boot from the Slackware usb installer by picking the grub option to boot installed operating systems and choosing:

Code:

(hd1,gpt1)/efi/Slackware/elilo.efi
I don't understand how to name or structure the files on the efi partition to appease the bios.

I guess if your usb is hd1 then the internal thing must be hd0. What does BIOS say, how many are there?
Loader expects (hd0,gpt1)/.. for GPT, or (hd0,msdos1)/.. for MBR. This is first partition on drive 0 (first drive).
hd0,msdos1 = first dos partition on first drive (if formatted with mbr and not gpt).
You can check in GRUB by hitting E on the line and writing (hd0,msdos1)/<TAB> and see if <TAB> auto-completes to (hd0,msdos1)/efi/..
If not, maybe it's hd2,msdos1 or hd2,gpt1 or even hd0,gpt1...

epitaxial 03-08-2024 12:54 PM

It turns out the bios on these thin clients is a pain to work with. I ended up installing grub via the instructions at https://blog.roberthallam.org/2020/0...-efi-location/

And for completeness the command for my system was

Code:

grub-install --target=x86_64-efi --efi-directory=/boot/efi --removable

yancek 03-08-2024 12:54 PM

If you boot the USB Slackware installer and mount the efi partition (/dev/mmcblk0p1) , you should see a Slackware directory under /boot/efi/EFI with the efi boot files. Did you check that? Did you install Slackware in EFI mode? Did you select to install elilo? Is Slackware the only OS installed?

elcore 03-08-2024 01:04 PM

Quote:

Originally Posted by yancek (Post 6488446)
If you boot the USB Slackware installer and mount the efi partition (/dev/mmcblk0p1) , you should see a Slackware directory under /boot/efi/EFI with the efi boot files. Did you check that? Did you install Slackware in EFI mode? Did you select to install elilo? Is Slackware the only OS installed?

I figure it's all installed fine, but the loader expects it on hd1 because that's what it was configured to do when usb was plugged in.
And yeah installing grub will most certainly fix it since grub's detecting drives differently than elilo which uses the old ways.

epitaxial 03-08-2024 07:11 PM

Quote:

Originally Posted by yancek (Post 6488446)
If you boot the USB Slackware installer and mount the efi partition (/dev/mmcblk0p1) , you should see a Slackware directory under /boot/efi/EFI with the efi boot files. Did you check that? Did you install Slackware in EFI mode? Did you select to install elilo? Is Slackware the only OS installed?

Yes to all your questions. /boot/efi/EFI/Slackware had the elilo files and kernel.

viel 03-09-2024 04:33 AM

Hi,

I put two entry of my efibootmanager hope helps.

Code:

[root@arcadia tmp]# efibootmgr
BootCurrent: 0000
Timeout: 1 seconds
BootOrder: 0000,0002,0001,000E,000F,0010,0011,0012,0003,0004,0005
Boot0000* GRUB-SSD-SLACKWARE    HD(1,GPT,xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,0x800,0x82000)/File(\EFI\SLACKWARE-15.0\GRUBX64.EFI)
Boot0001* GRUB-HDD-SLACKWARE    HD(1,GPT,xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,0x800,0x82000)/File(\EFI\SLACKWARE-15.0\GRUBX64.EFI)

[root@arcadia tmp]# ls -la /boot/efi/EFI/slackware-15.0/grubx64.efi
-rwxr-xr-x 1 root root 139264 Dec 16 19:08 /boot/efi/EFI/slackware-15.0/grubx64.efi

[root@arcadia tmp]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINTS

sdb            8:16  0 447.1G  0 disk
├─sdb1        8:17  0  260M  0 part  /boot/efi

On main it found the disk with PARTUUID then it uses GPT partition 1 and look for file \EFI\SLACKWARE-15.0\GRUBX64.EFI absolut path.

Quote:

Now I can successfully boot from the Slackware usb installer by picking the grub option to boot installed operating systems and choosing:
So if you can boot from usb try add manualy entry to efibootmng like:

Code:

efibootmgr --create --disk /dev/sdX --part 1 -L <label> -l \efi\Slackware\elilo.efi
Notice the \ not /.

You can create more than one, to try.

Then boot inside UEFI and select. You know.

EDITED: Or try copy your elilo.efi to the default entry

Code:

cp /efi/Slackware/elilo.efi /EFI/BOOT/BOOTX64.EFI

Or try boot kernel directly.

https://www.kernel.org/doc/html/late.../efi-stub.html

Code:

# efibootmgr --create --disk /dev/sdX --part Y --label "Slackware" --loader /vmlinuz --unicode 'root=block_device_identifier rw initrd=\initramfs'
Hope helps.
Viel.


All times are GMT -5. The time now is 05:39 AM.