You are not logged in.

#1 2023-08-13 00:44:25

zw
Member
Registered: 2022-05-31
Posts: 19

BIOS cannot detect Arch installed to secondary internal SSD

My computer has three internal drives: An M.2 NVME SSD running Fedora, an old SATA HDD running Debian, and a 2.5" SATA SSD that I am attempting to install Arch to.

I installed Arch using the archinstall script and essentially default settings, choosing the "best-effort partition layout" option and the SSD (/dev/sdb) as the target drive with btrfs and default luks encryption. The install script completed normally, and I was able to chroot into the installation and install a few extra packages.

However, when I attempt to boot from the SSD from the BIOS, I get an error saying the drive contains no bootable operating system.

I can mount the SSD with Arch from my Fedora installation by entering the encryption key. Browsing the files, everything appears normal. 

Additionally, although I can manually tell the BIOS to boot from the SSD "this time," it is not listed in the area of my BIOS settings that allows me to choose my boot order--instead, I see listings only for Fedora and Debian.

This leads me to believe that the issue is with my EFI variables. Running efibootmgr from the (working) Fedora installation produces the following output:

> efibootmgr
BootCurrent: 0004
Timeout: 1 seconds
BootOrder: 0004,0005,0000,0006,0001
Boot0000* debian        HD(1,GPT,some_long_uuid,0x800,0x12c000)/File(\EFI\DEBIAN\SHIMX64.EFI)
Boot0001  Hard Drive    BBS(HD,,0x0)0000474f00004e4fa1000000010 (...) 200000007fff04000000424f
Boot0004* Fedora        HD(1,GPT,some_long_uuid,0x800,0x12c000)/File(\EFI\FEDORA\SHIMX64.EFI)
Boot0005* Fedora        HD(1,GPT,some_long_uuid,0x800,0x12c000)/File(\EFI\FEDORA\SHIM.EFI)0000424f
Boot0006* debian        HD(1,GPT,some_long_uuid,0x800,0x12c000)/File(\EFI\DEBIAN\GRUBX64.EFI)0000424f

(the random numbers and letters after "BBS(HD,,0x0)" consume several lines). It seems like the device shown as Hard Drive needs to be updated to match the others somehow.

I read this page on the Arch Wiki, which seems to give instructions for adding an EFI entry for an existing installation using efibootmgr --create. This command requires the following arguments:

1. The disk containing the EFI system partition (ESP). E.g.: /dev/sda, /dev/nvme0n1.
2. The partition number of the ESP on that disk. The Y in /dev/sdaY or /dev/nvme0n1pY.
3. The path to the EFI application (relative to the root of the ESP)

https://wiki.archlinux.org/title/Unifie … efibootmgr

I have items 1 and 2: /dev/sdb and /dev/sdb1. But I don't know what to do for item 3; there is no efi directory on the mounted filesystem (or if there is, I do not know where to look for it).

Also, I checked the ISO file hash and have attempted the install three times (the first time with an old ISO from January, the second and third times with the most recent August ISO).

Additional diagnostics:

> sudo fdisk -l /dev/sdb
Disk /dev/sdb: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: WD Blue SA510 2.
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x6542b6de

Device     Boot  Start        End    Sectors   Size Id Type
/dev/sdb1  *      6144     421887     415744   203M  b W95 FAT32
/dev/sdb2       522240 1953177599 1952655360 931.1G 83 Linux

Edit: Tried installing again, this time selecting Grub instead of systemd-boot as the bootloader. Now, when the install ends and I chroot into the install, the output of efibootmgr is still the same, but when I actually reboot, there is a choice to boot from "UEFI OS" on the SSD. Booting into this gives you the normal Arch grub prompt, but then selecting an option and booting, it fails at initramfs and falls back to an emergency rootfs shell, saying it couldn't find a drive with a certain UUID. It's the same issue as this: https://github.com/archlinux/archinstall/issues/2006

I also tried selecting efistub as the bootloader but the install failed.

Last edited by zw (2023-08-13 01:40:41)

Offline

#2 2023-08-13 07:56:22

jonno2002
Member
Registered: 2016-11-21
Posts: 765

Re: BIOS cannot detect Arch installed to secondary internal SSD

just follow the installation guide and do it properly, could have had a working system by now instead of wasting time with that rubbish installer.

Offline

#3 2023-08-13 10:04:31

Lone_Wolf
Administrator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 13,399

Re: BIOS cannot detect Arch installed to secondary internal SSD

Disklabel type: dos

sdb is formatted as a MBR-drive.
EFI firmware can only detect the Efi System Partition on it when that partition is marked as an ESP with Id ef .

example from one of my systems that boots EFI from such an MBR disk :

# fdisk -l /dev/nvme0n1
Disk /dev/nvme0n1: 232.89 GiB, 250059350016 bytes, 488397168 sectors
Disk model: Samsung SSD 970 EVO 250GB               
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x47430e07

Device         Boot     Start       End   Sectors  Size Id Type
/dev/nvme0n1p1           2048 159385599 159383552   76G 83 Linux
/dev/nvme0n1p2      159385600 484444159 325058560  155G 83 Linux
/dev/nvme0n1p3      484444160 488397167   3953008  1.9G ef EFI (FAT-12/16/32)
# 

https://wiki.archlinux.org/title/EFI_sy … oned_disks has details.

zw, your post history suggests you are capable of making your own decisions and troubleshoot if they don't work.
I doubt very much you need an installer to make decisions for you .
Please try installing following the install guide.


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.

clean chroot building not flexible enough ?
Try clean chroot manager by graysky

Online

#4 2023-08-13 12:24:28

zw
Member
Registered: 2022-05-31
Posts: 19

Re: BIOS cannot detect Arch installed to secondary internal SSD

OK, I reinstalled following the installation guide (without archinstall). Unbelievably, I still have the exact same issue as https://github.com/archlinux/archinstall/issues/2006 . I used grub-install from chroot to install GRUB and used efibootmgr to ensure there was an entry for the new system. Upon reboot, I can select my Arch system, load the GRUB menu, and select the Linux kernel, but the boot sequence fails at initramfs, saying it couldn't find a drive with the right UUID.

> sudo fdisk -l /dev/sdb
Disk /dev/sdb: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: WD Blue SA510 2.
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: some_long_uuid

Device       Start        End    Sectors   Size Type
/dev/sdb1     2048    2099199    2097152     1G Linux filesystem
/dev/sdb2  2099200 1953523711 1951424512 930.5G Linux filesystem

Someone in the Github issue above mentioned that they were able to manually change the UUID, but I don't know where I am supposed to change it or where to find the correct value. The value that appears as the disk identifier in the fdisk output above doesn't match what is shown in /etc/fstab, but I think this is to be expected, because fstab cares about the partition UUID and not that for the physical disk, right?

Offline

#5 2023-08-13 16:54:04

zw
Member
Registered: 2022-05-31
Posts: 19

Re: BIOS cannot detect Arch installed to secondary internal SSD

I have tried a couple of new things:

- Reformatted the boot partition as EFI System (it was Linux System before, but GRUB didn't complain). Same results.
- Reformatted the boot partition again and used systemd bootctl install instead. Same results.

Offline

#6 2023-08-13 21:24:27

jonno2002
Member
Registered: 2016-11-21
Posts: 765

Re: BIOS cannot detect Arch installed to secondary internal SSD

ok this is assuming you mounted the efi partition to /boot which the guide does use but isnt the only option (/efi and /boot/efi are others).
so boot the installation media and mount your root partition to /mnt FIRST and efi partition to /mnt/boot SECOND then 'arch-chroot /mnt' and post output of:

if using grub still:

lsblk -f && cat /etc/fstab && grep vmlinuz /boot/grub/grub.cfg && ls -R /boot/efi

if using systemd-boot:

lsblk -f && cat /etc/fstab && ls -R /boot/EFI && cat /boot/loader/loader.conf /boot/loader/entries/*

EDIT: fixed 'efi partition to /mnt/boot SECOND' , i had 'efi partition to /boot SECOND' which is WRONG

Last edited by jonno2002 (2023-08-13 21:26:29)

Offline

#7 2023-08-19 12:11:09

zw
Member
Registered: 2022-05-31
Posts: 19

Re: BIOS cannot detect Arch installed to secondary internal SSD

Here is lsblk -f && cat /etc/fstab && ls -R /boot/EFI && cat /boot/loader/loader.conf:

NAME        FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
loop0                                              
sda                                                
├─sda1                               510.8M     0% /boot
├─sda2                                             
└─sda3                                             
sdb                                                
├─sdb1                                             
└─sdb2                                             
  └─root                             924.9G     0% /
sdc                                                
├─sdc1                                             
└─sdc2                                             
nvme0n1                                            
├─nvme0n1p1                                        
├─nvme0n1p2                                        
└─nvme0n1p3                                        
# Static information about the filesystems.
# See fstab(5) for details.

# <file system> <dir> <type> <options> <dump> <pass>
# /dev/mapper/root
UUID=some_long_uuid	/         	btrfs     	rw,relatime,ssd,space_cache=v2,subvolid=5,subvol=/	0 0

# /dev/sdb1
UUID=some_short_uuid      	/boot     	vfat      	rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro	0 2

boot/EFI/:
BOOT
Linux
systemd

boot/EFI/BOOT:
BOOTX64.EFI

boot/EFI/Linux:

boot/EFI/systemd:
systemd-bootx64.efi
#timeout 3
#console-mode keep

The /boot/loader/entries directory doesn't exist.

Offline

#8 2023-08-19 23:07:18

jonno2002
Member
Registered: 2016-11-21
Posts: 765

Re: BIOS cannot detect Arch installed to secondary internal SSD

you need to configure systemd-boot: https://wiki.archlinux.org/title/System … figuration
i could have helped with an example but youve chosen to mask/remove all your uuid's and lots of other useful info from the output i requested

Last edited by jonno2002 (2023-08-19 23:08:03)

Offline

Board footer

Powered by FluxBB