You are not logged in.
Earlier today I ran pacman and updated my system. After rebooting, rather than loading the OS, the system displays the errors below:
EFI stub: ERROR: Failed to open file: initramfs-linux.img
EFI stub: ERROR: Failed to load initrd: 0×800000000000000e
EFI stub: ERROR: efi_main() failed!
Failed to execute Arch Linux (linux) (vmlinuz-linux): Not FoundDoing some searching around looking at other forum posts, I haven't been able to resolve the issue but I believe what I have is a separate EFI and root partitions. Booting from the Arch installation media, I can mount the EFI partition and see the vmlinz-linux file, but I'm not sure where to go from here.
root@archiso /mnt/boot # fdisk -l
Disk /dev/sda: 698.64 GiB, 750156374016 bytes, 1465149168 sectors
Disk model: Samsung SSD 840
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: 498C51D0-6E8F-4B59-9122-4C4E99B0A1FB
Device Start End Sectors Size Type
/dev/sda1 2048 1048575 1046528 511M EFI System
/dev/sda2 1050624 1465147391 1464096768 698.1G Linux filesystem
Disk /dev/sdb: 14.45 GiB, 15512174592 bytes, 30297216 sectors
Disk model: USB Flash Memory
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: 0x26b7f582
Device Boot Start End Sectors Size Id Type
/dev/sdb1 * 64 1583103 1583040 773M 0 Empty
/dev/sdb2 1583104 1609727 26624 13M ef EFI (FAT-12/16/32)
Disk /dev/loop0: 680.04 MiB, 713076736 bytes, 1392728 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytesOffline
please post the contents of /etc/fstab and output of lsblk to give potential helpers a better idea of which partitions are being mounted during boot.
Never argue with an idiot, they will drag you down to their level and then beat you with experience.
It is better to light a candle than curse the darkness.
A journey of a thousand miles begins with a single step.
Offline
please post the contents of /etc/fstab and output of lsblk to give potential helpers a better idea of which partitions are being mounted during boot.
Viewing /etc/fstab from the Arch installation media is blank. I assume that's not the fstab you're looking for. I have mounted sda2 to /mnt and can't seem to find etc on that drive. The contents of /mnt are:
boot esp @ @.snapshots @home @log @pkgThe output of lsblk is below.
root@archiso ~ # lsblk -f
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
loop0 squashfs 4.0 0 100% /run/archiso/airootfs
sda
├─sda1 vfat FAT32 8300-CE79
└─sda2 btrfs d1d72e01-ca9c-4d6c-82cf-c788850f3fee 268G 61% /mnt
sdb iso9660 Joliet Extension ARCH_202208 2022-08-05-11-09-34-00
├─sdb1 iso9660 Joliet Extension ARCH_202208 2022-08-05-11-09-34-00 0 100% /run/archiso/bootmnt
└─sdb2 vfat FAT16 ARCHISO_EFI ACE9-8D8EOffline
Please try to mount your partitions properly, in this case do
mount /dev/sda2 /mntand
mount /dev/sda1 /mnt/bootThen do
arch-chroot /mntand you will be able to see your fstab file using
cat /etc/fstabFor more information about chroot see https://wiki.archlinux.org/title/Chroot … rch-chroot
Then send it here ![]()
Offline
You are using a btrfs filesystem with subvolumes, you need to mount your root with
mount /dev/sda2 /mnt -o subvol=@to properly mount the root snapshot.
Offline
Thank you for your replies. Using a combination of what Fijxu and V1del have suggested, I have mounted to the two partitions. I am unable to arch-chroot to /mnt though.
root@archiso / # mount /dev/sda2 /mnt -o subvol=@
root@archiso / # mount /dev/sda1 /mnt/boot
root@archiso / # arch-chroot /mnt
mount: /mnt/proc: mount point does not exist.
dmesg(1) may have more information after failed mount system call.
==> ERROR: failed to setup chroot /mnt
1 root@archiso / # ls /mnt
bin boot lib lib64 mnt opt root sbin srv usr
root@archiso / # ls /mnt/boot
EFI amd-ucode.img loader vmlinuz-linuxLast edited by TomRobinsonIO (2023-03-15 12:34:40)
Offline
mount: /mnt/proc: mount point does not exist.That actually never happened to me, i am also using BTRFS and a EFI partition on /mnt/boot. Try un-mounting the 2 partitions and using this instead to mount the BTRFS partition.
monut /dev/sda2 /mnt -o subvol=/Then you can mount the efi partition.
I don't really know if that will work since i use BTRFS without any subvolumes and i always mounted it normally when i need to troubleshoot with chroot like:
mount /dev/sda2 /mntOffline
mount: /mnt/proc: mount point does not exist.That actually never happened to me, i am also using BTRFS and a EFI partition on /mnt/boot. Try un-mounting the 2 partitions and using this instead to mount the BTRFS partition.
monut /dev/sda2 /mnt -o subvol=/Then you can mount the efi partition.
I don't really know if that will work since i use BTRFS without any subvolumes and i always mounted it normally when i need to troubleshoot with chroot like:mount /dev/sda2 /mnt
No luck with that either. I'm not understanding where the remainder of the directories you'd typically see in the root directory are.
root@archiso / # mount /dev/sda2 /mnt -o subvol=/
root@archiso / # mount /dev/sda1 /mnt/boot
root@archiso / # cd /mnt
root@archiso /mnt # ls
boot bootbak esp @ @.snapshots @home @log @pkg
root@archiso /mnt # arch-chroot /mnt
mount: /mnt/proc: mount point does not exist.
dmesg(1) may have more information after failed mount system call.
==> ERROR: failed to setup chroot /mnt
root@archiso /mnt # arch-chroot /mnt/@
mount: /mnt/@/proc: mount point does not exist.
dmesg(1) may have more information after failed mount system call.
==> ERROR: failed to setup chroot /mnt/@
1 root@archiso /mnt # cd @
root@archiso /mnt/@ # ls -la
total 32
drwxr-xr-x 1 root root 70 Mar 15 14:19 .
drwxr-xr-x 1 root root 78 Mar 15 03:52 ..
lrwxrwxrwx 1 root root 7 Jan 31 20:51 bin -> usr/bin
drwxr-xr-x 1 root root 0 Mar 15 14:19 boot
lrwxrwxrwx 1 root root 7 Jan 31 20:51 lib -> usr/lib
lrwxrwxrwx 1 root root 7 Jan 31 20:51 lib64 -> usr/lib
drwxr-xr-x 1 root root 0 Dec 7 2021 mnt
drwxr-xr-x 1 root root 158 Feb 20 14:01 opt
drwx------ 1 root root 262 Mar 15 00:11 root
lrwxrwxrwx 1 root root 7 Jan 31 20:51 sbin -> usr/bin
drwxr-xr-x 1 root root 14 Aug 20 2022 srv
drwxr-xr-x 1 root root 80 Mar 14 21:41 usrOffline
Oh now i see, arch-chroot is trying to find the /proc directory in the partition but it doesn't exists.
Try mounting the BTRFS partition as V1del said using subvol=@ instead of subvol=/
Then after you mount the BTRFS and EFI partition, mount /proc manually into /mnt/proc using
mount proc "/mnt/proc" -t proc -o nosuid,noexec,nodev(From the arch-chroot source code that seems to mount the current /proc dir into /mnt/proc)
That should do the trick
Then after that try doing arch-chroot again
Last edited by Fijxu (2023-03-15 17:10:33)
Offline
Thanks for continuing to help, Fijxu. It seems like I'm getting closer, but now it's complaining about /mnt/sys not existing.
root@archiso /mnt/@ # umount /dev/sda1
root@archiso /mnt/@ # cd /
root@archiso / # umount /dev/sda2
root@archiso / # mount /dev/sda2 /mnt -o subvol=@
root@archiso / # mount /dev/sda1 /mnt/boot
root@archiso / # mount proc "/mnt/proc" -t proc -o nosuid,noexec,nodev
mount: /mnt/proc: mount point does not exist.
dmesg(1) may have more information after failed mount system call.
32 root@archiso / # mkdir /mnt/proc
root@archiso / # mount proc "/mnt/proc" -t proc -o nosuid,noexec,nodev
root@archiso / # arch-chroot /mnt
mount: /mnt/sys: mount point does not exist.
dmesg(1) may have more information after failed mount system call.
==> ERROR: failed to setup chroot /mntLast edited by TomRobinsonIO (2023-03-15 17:19:25)
Offline
Yeah i guess you need to do that with every missing folder that arch-chroot is trying to find, idk really why
do
mount /sys "$1/sys" -t sysfs -o nosuid,noexec,nodev,roI need to do something now if will leave this here if you have more missing folders
mount proc "/mnt/proc" -t proc -o nosuid,noexec,nodev &&
mount sys "/mnt/sys" -t sysfs -o nosuid,noexec,nodev,ro &&
mount udev "/mnt/dev" -t devtmpfs -o mode=0755,nosuid &&
mount devpts "/mnt/dev/pts" -t devpts -o mode=0620,gid=5,nosuid,noexec &&
mount shm "/mnt/dev/shm" -t tmpfs -o mode=1777,nosuid,nodev &&
mount run "/mnt/run" -t tmpfs -o nosuid,nodev,mode=0755 &&
mount tmp "/mnt/tmp" -t tmpfs -o mode=1777,strictatime,nodev,nosuidAnd since you have efi do this
mount "[[ -d '/mnt/sys/firmware/efi/efivars' ]]" efivarfs "/mnt/sys/firmware/efi/efivars" -t efivarfs -o nosuid,noexec,nodevIdk if that will work, i did some weird conversion to the command
Last edited by Fijxu (2023-03-15 17:24:54)
Offline
After creating all of the directories it complained about, sys, dev, run, and tmp, it finally let me arch-chroot /mnt. I've now got a bash prompt. I attempted to run pacman and got an error for /etc/pacman.conf not existing. No /etc directory exists. I attempted to exit, mkdir /mnt/etc and
mount /etc /mnt/etcand got
mount: /mnt/etc: /etc is not a block device.Apologies if I'm getting a bit ahead of myself.
Offline
If those dirs didn't exist, you didn't mount your Arch root. What did you actually mount?
Edit: unless you have some type of massive corruption, I guess?
Last edited by Scimmia (2023-03-15 17:43:36)
Offline
Not sure what archinstall does by default but I assume /etc and the like will be under the @pkg subvol so mount that as well, or rather just mount all of them safe for maybe @home.
#Do these after mounting subvol @
mount /dev/sda2 /mnt -o subvol=@pkg
mount /dev/sda2 /mnt -o subvol=@logRant: This is what happens when automated installer scripts are used that assume something, fixing it is getting into a lot of trial and error bs because neither the person using the installer nor the people helping that did not use the installer know what the installer actually did
Offline
As i can see you don't have a /etc folder in the root BTRFS partition (@) so it should be in other subvolume. That is my guess for now
Offline
Not sure what archinstall does by default but I assume /etc and the like will be under the @pkg subvol so mount that as well, or rather just mount all of them safe for maybe @home.
#Do these after mounting subvol @ mount /dev/sda2 /mnt -o subvol=@pkg mount /dev/sda2 /mnt -o subvol=@logRant: This is what happens when automated installer scripts are used that assume something, fixing it is getting into a lot of trial and error bs because neither the person using the installer nor the people helping that did not use the installer know what the installer actually did
I've now done these couple of things.
mkdir /mnt/pkg
mount /dev/sda2 /mnt -o subvol=@pkg
mkdir /mnt/log
mount /dev/sda2 /mnt -o subvol=@logThey're mounted but as you'd guess, I still don't have anything for etc. Even though I'm the one that used it, I agree with your assessment of using the install script. I used it originally as a quick and easy way to install and try Arch and then ended up using longer than I'd originally expected to. I wish I'd gone through the install wiki now. I really appreciate you all trying to work through it with me.
As i can see you don't have a /etc folder in the root BTRFS partition (@) so it should be in other subvolume. That is my guess for now
Any clue where it might be hiding? I've taken a look through the each of
boot esp @ @.snapshots @home @log @pkgand I'm not seeing it.
Last edited by TomRobinsonIO (2023-03-15 17:57:04)
Offline
Hmmm, see if you have it on some snapshot from "@.snapshot"
Probably for some ultra-rare reason got deleted and its not in the @ subvolume as intended
Offline
@.snapshots has nothing in it. I don't recall setting up snapshots, so I guess that makes sense.
Offline