You are not logged in.
Hello. Hopefully this doesn't turn out to be too stupid of a mistake on my part. I'm new to Arch and returning to Linux after a long hiatus (EFI / systemd / locale selection didn't exist when I was a Linux admin last, it's been a long time). So while I'm not an admin newb, I'm pretty darned newb for an old guy.
Goal: Arch VM running under QEMU (on an Unraid host) just to get back into the swing of things as a development server. Picked Arch since I plan to convert my desktop machine later. Chose btrfs for /mnt partition as I also want to learn more about btrfs & luks.
Problem: after following the install wiki as well as double checking a video and a couple of other guides (links posted at bottom), I only get the "Reboot Into Firmware Interface" on my boot menu.
QEMU specific bits ... I'm using Machine type Q35-4.2 and BIOS type OVMF. No passthrough is being attempted (no GPU installed aside from the integrated graphics on the host's 3770K).
I made notes of my install steps. Nothing fancy, 99% is straight from the install wiki, rest is to enable btrfs. The list of commands is a bit long but might help in pointing out an error.
# verify EFI mode (any result other than error = EFI mode)
ls /sys/firmware/efi/efivars
# verify network running
ping archilinux.org
# enable NTP
timedatectl set-ntp true
fdisk -l
fdisk /dev/vda
mkfs.vat /dev/vda1
mkswap /dev/vda2
swapon /dev/vda2
mkfs.btrfs /dev/vda3
mount /dev/vda3 /mnt
mkdir /mnt/boot
mount /dev/vda1 /mnt/boot
pacstrap /mnt base base-devel linux linux-firmware dhcpcd inetutils man-db man-pages texinfo netctl s-nail nano vim btrfs-progs util-linux pacman
genfstab -U /mnt >> /mnt/etc/fstab
arch-chroot /mnt
ln -sf /usr/share/zoneinfo/US/Pacific /etc/localtime
hwclock --systohc
echo 'en_US.UTF-8 UTF-8` >> /etc/locale.gen
locale-gen
echo 'LANG=en_US.UTF-8' > /etc/locale.conf
echo 'unraid-arch-dev' > /etc/hostname
echo '127.0.0.1 localhost' >> /etc/hosts
echo '::1 localhost' >> /etc/hosts
echo '127.0.1.1 unraid-arch-dev.localdomain unraid-arch-dev' >> /etc/hosts
# add btrfs to HOOKS in /etc/mkinitcpio.conf (and encrypt if using later)
mkinitcpio -p linux
passwd
bootctl install
# also tried bootctl --path=boot install but gives identical result
cd /boot/loader
# edit loader.conf, replace default line with: default arch-*
# add entries/arch.conf
The rest of the information shown is while inside `arch-chroot /mnt`.
`mount`
/dev/vda3 on / type btrfs (rw,relatime,space_cache,subvolid=5,subvol=/)
/dev/vda1 on /boot type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sys on /sys type sysfs (ro,nosuid,nodev,noexec,relatime)
efivarfs on /sys/firmware/efi/efivars type efivarfs (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=8172116k,nr_inodes=2043029,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
shm on /dev/shm type tmpfs (rw,nosuid,nodev,relatime)
run on /run type tmpfs (rw,nosuid,nodev,relatime,mode=755)
tmp on /tmp type tmpfs (rw,nosuid,nodev)
run on /etc/resolv.conf type tmpfs (rw,nosuid,nodev,relatime,mode=755)
/etc/fstab
# Static information about the filesystems.
# See fstab(5) for details.
# <file system> <dir> <type> <options> <dump> <pass>
# /dev/vda3
UUID=3fd87724-ebf9-45ed-8773-06a2540e6bba / btrfs rw,relatime,space_cache,subvolid=5,subvol=/ 0 0
# /dev/vda1
UUID=140A-CDAC /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 2
# /dev/vda2
UUID=e8936ad3-0c39-4597-b899-b57bddd183b4 none swap defaults 0 0
`blkid`
/dev/sr0: BLOCK_SIZE="2048" UUID="2020-07-01-06-42-22-00" LABEL="ARCH_202007" TYPE="iso9660" PTUUID="5eaa061f" PTTYPE="dos"
/dev/vda1: UUID="140A-CDAC" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="26fc982c-a0a3-c54d-bae1-bca4ef44e1c1"
/dev/vda2: UUID="e8936ad3-0c39-4597-b899-b57bddd183b4" TYPE="swap" PARTUUID="79ac6932-717b-1741-9a25-4fa5151ced2b"
/dev/vda3: UUID="3fd87724-ebf9-45ed-8773-06a2540e6bba" UUID_SUB="88cac9b5-126c-42fc-b2f7-dc6e37026fe7" BLOCK_SIZE="4096" TYPE="btrfs" PARTUUID="b3a8cd88-e4eb-af45-8619-4a53764c67d3"
/dev/loop0: TYPE="squashfs"
`ls /boot`
total 53784
drwxr-xr-x 5 root root 4096 Dec 31 1969 ./
drwxr-xr-x 1 root root 122 Jul 25 23:30 ../
drwxr-xr-x 2 root root 4096 Jul 25 23:52 da463f15bbcf4cd18f2d98f1e245b29d/
drwxr-xr-x 5 root root 4096 Jul 25 23:52 EFI/
-rwxr-xr-x 1 root root 34049536 Jul 26 00:12 initramfs-linux-fallback.img*
-rwxr-xr-x 1 root root 14482476 Jul 26 00:11 initramfs-linux.img*
drwxr-xr-x 3 root root 4096 Jul 26 00:44 loader/
-rwxr-xr-x 1 root root 6506880 Jul 25 23:31 vmlinuz-linux*
/boot/loader/loader.conf
#timeout 3
#console-mode keep
#default da463f15bbcf4cd18f2d98f1e245b29d-*
default arch
(also tried 'default arch-*' as well as 'default arch.conf')
/boot/loader/entries/arch.conf
title Arch Linux
linux /vmlinx-linux
initrd /initramfs-linux.img
options root=UUID=3fd87724-ebf9-45ed-8773-06a2540e6bba rw
# /dev/vda3:
# UUID="3fd87724-ebf9-45ed-8773-06a2540e6bba"
# UUID_SUB="88cac9b5-126c-42fc-b2f7-dc6e37026fe7"
# BLOCK_SIZE="4096"
# TYPE="btrfs"
# PARTUUID="b3a8cd88-e4eb-af45-8619-4a53764c67d3"
/boot/loader/entries/PARTUUID-arch.conf
title Arch Linux - PARTUUID
linux /vmlinx-linux
initrd /initramfs-linux.img
options root=PARTUUID=b3a8cd88-e4eb-af45-8619-4a53764c67d3 rw
# /dev/vda3:
# UUID="3fd87724-ebf9-45ed-8773-06a2540e6bba"
# UUID_SUB="88cac9b5-126c-42fc-b2f7-dc6e37026fe7"
# BLOCK_SIZE="4096"
# TYPE="btrfs"
# PARTUUID="b3a8cd88-e4eb-af45-8619-4a53764c67d3"
/etc/mkinitcpio.conf
# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
# run. Advanced users may wish to specify all system modules
# in this array. For instance:
# MODULES=(piix ide_disk reiserfs)
MODULES=()
# BINARIES
# This setting includes any additional binaries a given user may
# wish into the CPIO image. This is run last, so it may be used to
# override the actual binaries included by a given hook
# BINARIES are dependency parsed, so you may safely ignore libraries
BINARIES=()
# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in any way. This is useful for config files.
FILES=()
# HOOKS
# This is the most important setting in this file. The HOOKS control the
# modules and scripts added to the image, and what happens at boot time.
# Order is important, and it is recommended that you do not change the
# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for
# help on a given hook.
# 'base' is _required_ unless you know precisely what you are doing.
# 'udev' is _required_ in order to automatically load modules
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
# Examples:
## This setup specifies all modules in the MODULES setting above.
## No raid, lvm2, or encrypted root is needed.
# HOOKS=(base)
#
## This setup will autodetect all modules for your system and should
## work as a sane default
# HOOKS=(base udev autodetect block filesystems)
#
## This setup will generate a 'full' image which supports most systems.
## No autodetection is done.
# HOOKS=(base udev block filesystems)
#
## This setup assembles a pata mdadm array with an encrypted root FS.
## Note: See 'mkinitcpio -H mdadm' for more information on raid devices.
# HOOKS=(base udev block mdadm encrypt filesystems)
#
## This setup loads an lvm2 volume group on a usb device.
# HOOKS=(base udev block lvm2 filesystems)
#
## NOTE: If you have /usr on a separate partition, you MUST include the
# usr, fsck and shutdown hooks.
HOOKS=(base udev autodetect modconf block encrypt btrfs filesystems keyboard fsck)
# COMPRESSION
# Use this to compress the initramfs image. By default, gzip compression
# is used. Use 'cat' to create an uncompressed image.
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
#COMPRESSION="xz"
#COMPRESSION="lzop"
#COMPRESSION="lz4"
# COMPRESSION_OPTIONS
# Additional options for the compressor
#COMPRESSION_OPTIONS=()
(note: no other options aside from 'Reboot Into Firmware Interface' appear, so neither of the .conf files above are appearing as boot options, this is the part I need to try and figure out)
I'm (obviously) not clear on EFI workings as this is my first time. As far as know I've done all the steps I've found. I tried repeating `bootctl install` as well as `bootctl --path=boot install` after creating the .conf files but nothing showed up.
I'm wondering if it is a problem due to trying to boot from btrfs instead of ext4?
I did add the hooks to /etc/mkinitcpio.conf and then ran `mkinitcpio -p linux` afterwards.
PS. Posting this at my sleep time ... so will check back in tomorrow. Any help appreciated.
Last edited by Jahf (2020-07-26 22:51:16)
Offline
Hello,
It seems that you wrote
linux /vmlinx-linux
in your *arch.conf files, when your actual file is vmlinuz-linux in your /boot directory.
Replace /vmlinx-linux by /vmlinuz-linux might help.
I hope that helps !
Offline
Missed a tree for staring at the forest.
Replace /vmlinx-linux by /vmlinuz-linux
That was the fix. Typos.
I didn't think that would completely block the display of the option, just break the option when selected. But ... nope ... option appeared and automatically booted when repaired.
Thank you
Offline