You are not logged in.

#1 2021-07-05 23:40:54

remanifest
Member
Registered: 2021-07-01
Posts: 11

[SOLVED] New Install: vmlinuz-linux not found by GRUB

Hello,

I've installed Arch Linux on an old BIOS/MBR laptop of mine, using luks and LVM partitions. I'm attempting a similar setup on a desktop (UEFI/GPT), but I'm having a problem getting GRUB to load Linux. I'm assuming there's something I overlooked, and I'm hoping you can point me in the right direction.

This is a fresh install, which I performed using the official install guide.

Here's the error:
- Computer boots, and OpenCore loads (this machine is a hackintosh).
- The boot entry for the EFI partition is selected, which causes GRUB to load.

Here's what I see next:

error: file `/grub/themes/arch-silence/dejavu_bold_14.pf2' not found
error: file `/grub/themes/arch-silence/dejavu_mono_12.pf2' not found
error: file `/grub/themes/arch-silence/theme.txt' not found

Press any key to continue...

Any key results in the text-based GRUB menu, with Arch Linux available as an entry on the menu. Pressing enter to boot that entry gives me this:

Booting `Arch Linux'

Loading Linux linux ...
error: file `/vmlinuz-linux' not found.
Loading initial ramdisk ...
error: you need to load the kernel first.

Press any key to continue...
     
     Failed to boot both default and fallback entries.

Press any key to continue...
error: file `/grub/themes/arch-silence/theme.txt' not found.

Press any key to continue...

From there, I'm brought back to the text-based GRUB menu. All of the above file paths are looking from the root, rather than in /boot, which is incorrect - so I'm assuming I've messed something up somewhere.

Here are some files that I think may be relevant:

/etc/default/grub (only uncommented sections provided):

# GRUB boot loader configuration

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Arch"
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet"
GRUB_CMDLINE_LINUX="cryptdevice=UUID=10d3c496-102e-40f2-ab7b-a715598d11a3:luks:allow-discards lsm=lockdown,yama,apparmor,bpf"

GRUB_PRELOAD_MODULES="part_gpt part_msdos"

GRUB_ENABLE_CRYPTODISK=y

GRUB_TIMEOUT_STYLE=menu

GRUB_TERMINAL_INPUT=console

GRUB_GFXMODE=auto

GRUB_GFXPAYLOAD_LINUX=keep

GRUB_DISABLE_RECOVERY=true

GRUB_THEME="/boot/grub/themes/arch-silence/theme.txt"

/etc/mkinitcpio.conf (only uncommented sections included here):

MODULES=(ext4)

BINARIES=()

FILES=()

HOOKS=(base udev keyboard autodetect modconf block keymap encrypt lvm2 filesystems fsck usr shutdown)

lsblk -f output:

NAME               FSTYPE      FSVER            LABEL       UUID                                   FSAVAIL FSUSE% MOUNTPOINTS
loop0              squashfs    4.0                                                                                
sda                                                                                                               
├─sda1             vfat        FAT32            ROOTEFI     67E3-17ED                                82.7M    58% /boot
├─sda2             apfs                                     01bebf93-7486-47f2-a225-aa7c99c3f2a1                  
└─sda3             crypto_LUKS 2                            10d3c496-102e-40f2-ab7b-a715598d11a3                  
  └─arch           LVM2_member LVM2 001                     s96e3U-1ZUk-zLCB-k3xg-433R-ua1W-nV25Gt                
    ├─archlvm-root ext4        1.0                          25cdab04-7868-4cbe-8115-1928d066ed15     18.4G     1% /
    ├─archlvm-opt  ext4        1.0                          e4c73b81-aeb9-499f-830a-5f23022e7407      3.2G    13% /opt
    ├─archlvm-usr  ext4        1.0                          bc1a04d9-b63d-40f3-a24f-87ee589450f7     37.4G    18% /usr
    ├─archlvm-var  ext4        1.0                          422471f1-3396-4610-9da6-7f8fe31ddab7     15.9G    13% /var
    ├─archlvm-swap swap        1                            daec43a8-6be1-451b-bc8c-984964622331                  [SWAP]
    └─archlvm-home ext4        1.0                          af1a835d-8a80-4f30-95ea-d7a7a2705985    244.5G     0% /home
sdb                iso9660     Joliet Extension ARCH_202106 2021-06-01-16-48-49-00                                
├─sdb1             iso9660     Joliet Extension ARCH_202106 2021-06-01-16-48-49-00                                
├─sdb2             vfat        FAT16            ARCHISO_EFI 545C-5785                                             
└─sdb3             vfat        FAT32            RESTORE     C053-89DE

/boot/grub/grub.cfg:

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
insmod part_gpt
insmod part_msdos
if [ -s $prefix/grubenv ]; then
  load_env
fi
if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
else
   set default="0"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else
  menuentry_id_option=""
fi

export menuentry_id_option

if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function load_video {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}

if [ x$feature_default_font_path = xy ] ; then
   font=unicode
else
insmod lvm
insmod ext2
set root='lvmid/l45vGR-mYSg-8nbn-cqJK-EEi4-v4QP-p3CVD1/XWbq5Q-4m2D-PdFe-psSe-Wbiu-z2Nl-pGwVmk'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint='lvmid/l45vGR-mYSg-8nbn-cqJK-EEi4-v4QP-p3CVD1/XWbq5Q-4m2D-PdFe-psSe-Wbiu-z2Nl-pGwVmk'  bc1a04d9-b63d-40f3-a24f-87ee589450f7
else
  search --no-floppy --fs-uuid --set=root bc1a04d9-b63d-40f3-a24f-87ee589450f7
fi
    font="/share/grub/unicode.pf2"
fi

if loadfont $font ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  set locale_dir=$prefix/locale
  set lang=en_US
  insmod gettext
fi
terminal_input console
terminal_output gfxterm
insmod part_gpt
insmod fat
set root='hd0,gpt1'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1  67E3-17ED
else
  search --no-floppy --fs-uuid --set=root 67E3-17ED
fi
insmod gfxmenu
loadfont ($root)/grub/themes/arch-silence/dejavu_bold_14.pf2
loadfont ($root)/grub/themes/arch-silence/dejavu_mono_12.pf2
insmod png
set theme=($root)/grub/themes/arch-silence/theme.txt
export theme
if [ x$feature_timeout_style = xy ] ; then
  set timeout_style=menu
  set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
  set timeout=5
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Arch Linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-25cdab04-7868-4cbe-8115-1928d066ed15' {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_gpt
	insmod fat
	set root='hd0,gpt1'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1  67E3-17ED
	else
	  search --no-floppy --fs-uuid --set=root 67E3-17ED
	fi
	echo	'Loading Linux linux ...'
	linux	/vmlinuz-linux root=/dev/mapper/archlvm-root rw cryptdevice=UUID=10d3c496-102e-40f2-ab7b-a715598d11a3:luks:allow-discards lsm=lockdown,yama,apparmor,bpf loglevel=3 quiet
	echo	'Loading initial ramdisk ...'
	initrd	/intel-ucode.img /initramfs-linux.img
}
submenu 'Advanced options for Arch Linux' $menuentry_id_option 'gnulinux-advanced-25cdab04-7868-4cbe-8115-1928d066ed15' {
	menuentry 'Arch Linux, with Linux linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-advanced-25cdab04-7868-4cbe-8115-1928d066ed15' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt
		insmod fat
		set root='hd0,gpt1'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1  67E3-17ED
		else
		  search --no-floppy --fs-uuid --set=root 67E3-17ED
		fi
		echo	'Loading Linux linux ...'
		linux	/vmlinuz-linux root=/dev/mapper/archlvm-root rw cryptdevice=UUID=10d3c496-102e-40f2-ab7b-a715598d11a3:luks:allow-discards lsm=lockdown,yama,apparmor,bpf loglevel=3 quiet
		echo	'Loading initial ramdisk ...'
		initrd	/intel-ucode.img /initramfs-linux.img
	}
	menuentry 'Arch Linux, with Linux linux (fallback initramfs)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-fallback-25cdab04-7868-4cbe-8115-1928d066ed15' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt
		insmod fat
		set root='hd0,gpt1'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1  67E3-17ED
		else
		  search --no-floppy --fs-uuid --set=root 67E3-17ED
		fi
		echo	'Loading Linux linux ...'
		linux	/vmlinuz-linux root=/dev/mapper/archlvm-root rw cryptdevice=UUID=10d3c496-102e-40f2-ab7b-a715598d11a3:luks:allow-discards lsm=lockdown,yama,apparmor,bpf loglevel=3 quiet
		echo	'Loading initial ramdisk ...'
		initrd	/intel-ucode.img /initramfs-linux-fallback.img
	}
}

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/30_uefi-firmware ###
menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {
	fwsetup
}
### END /etc/grub.d/30_uefi-firmware ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  ${config_directory}/custom.cfg ]; then
  source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg
fi
### END /etc/grub.d/41_custom ###

### BEGIN /etc/grub.d/60_memtest86+ ###
if [ "${grub_platform}" == "pc" ]; then
    menuentry "Memory Tester (memtest86+)" --class memtest86 --class gnu --class tool {
        search --fs-uuid --no-floppy --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1  67E3-17ED
        linux16 /memtest86+/memtest.bin 
    }
fi
### END /etc/grub.d/60_memtest86+ ###

/etc/crypttab:

arch		UUID=10d3c496-102e-40f2-ab7b-a715598d11a3   none		    luks

ls -R /boot (some hackintosh stuff was removed from this list):

/boot:
EFI
grub
initramfs-linux-fallback.img
initramfs-linux.img
intel-ucode.img
loader
memtest86+
opencore-2020-03-31-045334.txt
Utilities
vmlinuz-linux

/boot/EFI:
APPLE
arch
BOOT
OC

/boot/grub:
fonts
grub.cfg
grubenv
locale
themes
x86_64-efi

/boot/grub/fonts:
unicode.pf2

/boot/grub/locale:
ast.mo
ca.mo
da.mo
de_CH.mo
de@hebrew.mo
de.mo
en@arabic.mo
en@cyrillic.mo
en@greek.mo
en@hebrew.mo
en@piglatin.mo
en@quot.mo
eo.mo
es.mo
fi.mo
fr.mo
gl.mo
hr.mo
hu.mo
id.mo
it.mo
ja.mo
ko.mo
lg.mo
lt.mo
nb.mo
nl.mo
pa.mo
pl.mo
pt_BR.mo
pt.mo
ro.mo
ru.mo
sl.mo
sr.mo
sv.mo
tr.mo
uk.mo
vi.mo
zh_CN.mo
zh_TW.mo

/boot/grub/themes:
arch-silence
starfield

/boot/grub/themes/arch-silence:
arch_logo.png
dejavu_bold_14.pf2
dejavu_mono_12.pf2
help_bar.png
progress_bar
theme.txt

/boot/grub/themes/arch-silence/progress_bar:
progress_bar_c.png
progress_bar_hl_c.png
progress_bar_hl_n.png

/boot/grub/themes/starfield:
blob_w.png
boot_menu_c.png
boot_menu_e.png
boot_menu_ne.png
boot_menu_n.png
boot_menu_nw.png
boot_menu_se.png
boot_menu_s.png
boot_menu_sw.png
boot_menu_w.png
COPYING.CC-BY-SA-3.0
dejavu_10.pf2
dejavu_12.pf2
dejavu_14.pf2
dejavu_16.pf2
dejavu_bold_14.pf2
README
slider_c.png
slider_n.png
slider_s.png
starfield.png
terminal_box_c.png
terminal_box_e.png
terminal_box_ne.png
terminal_box_n.png
terminal_box_nw.png
terminal_box_se.png
terminal_box_s.png
terminal_box_sw.png
terminal_box_w.png
theme.txt

/boot/grub/x86_64-efi:
acpi.mod
adler32.mod
affs.mod
afs.mod
afsplitter.mod
ahci.mod
all_video.mod
aout.mod
appleldr.mod
archelp.mod
ata.mod
at_keyboard.mod
backtrace.mod
bfs.mod
bitmap.mod
bitmap_scale.mod
blocklist.mod
boot.mod
boottime.mod
bsd.mod
bswap_test.mod
btrfs.mod
bufio.mod
cacheinfo.mod
cat.mod
cbfs.mod
cbls.mod
cbmemc.mod
cbtable.mod
cbtime.mod
chain.mod
cmdline_cat_test.mod
cmp.mod
cmp_test.mod
command.lst
configfile.mod
core.efi
cpio_be.mod
cpio.mod
cpuid.mod
crc64.mod
cryptodisk.mod
crypto.lst
crypto.mod
cs5536.mod
ctz_test.mod
datehook.mod
date.mod
datetime.mod
diskfilter.mod
disk.mod
div.mod
div_test.mod
dm_nv.mod
echo.mod
efifwsetup.mod
efi_gop.mod
efinet.mod
efi_uga.mod
ehci.mod
elf.mod
eval.mod
exfat.mod
exfctest.mod
ext2.mod
extcmd.mod
f2fs.mod
fat.mod
file.mod
fixvideo.mod
font.mod
fshelp.mod
fs.lst
functional_test.mod
gcry_arcfour.mod
gcry_blowfish.mod
gcry_camellia.mod
gcry_cast5.mod
gcry_crc.mod
gcry_des.mod
gcry_dsa.mod
gcry_idea.mod
gcry_md4.mod
gcry_md5.mod
gcry_rfc2268.mod
gcry_rijndael.mod
gcry_rmd160.mod
gcry_rsa.mod
gcry_seed.mod
gcry_serpent.mod
gcry_sha1.mod
gcry_sha256.mod
gcry_sha512.mod
gcry_tiger.mod
gcry_twofish.mod
gcry_whirlpool.mod
geli.mod
gettext.mod
gfxmenu.mod
gfxterm_background.mod
gfxterm_menu.mod
gfxterm.mod
gptsync.mod
grub.efi
gzio.mod
halt.mod
hashsum.mod
hdparm.mod
hello.mod
help.mod
hexdump.mod
hfs.mod
hfspluscomp.mod
hfsplus.mod
http.mod
iorw.mod
iso9660.mod
jfs.mod
jpeg.mod
json.mod
keylayouts.mod
keystatus.mod
ldm.mod
legacycfg.mod
legacy_password_test.mod
linux16.mod
linux.mod
loadbios.mod
loadenv.mod
loopback.mod
lsacpi.mod
lsefimmap.mod
lsefi.mod
lsefisystab.mod
lsmmap.mod
ls.mod
lspci.mod
lssal.mod
luks2.mod
luks.mod
lvm.mod
lzopio.mod
macbless.mod
macho.mod
mdraid09_be.mod
mdraid09.mod
mdraid1x.mod
memdisk.mod
memrw.mod
minicmd.mod
minix2_be.mod
minix2.mod
minix3_be.mod
minix3.mod
minix_be.mod
minix.mod
mmap.mod
moddep.lst
modinfo.sh
morse.mod
mpi.mod
msdospart.mod
mul_test.mod
multiboot2.mod
multiboot.mod
nativedisk.mod
net.mod
newc.mod
nilfs2.mod
normal.mod
ntfscomp.mod
ntfs.mod
odc.mod
offsetio.mod
ohci.mod
part_acorn.mod
part_amiga.mod
part_apple.mod
part_bsd.mod
part_dfly.mod
part_dvh.mod
part_gpt.mod
partmap.lst
part_msdos.mod
part_plan.mod
part_sun.mod
part_sunpc.mod
parttool.lst
parttool.mod
password.mod
password_pbkdf2.mod
pata.mod
pbkdf2.mod
pbkdf2_test.mod
pcidump.mod
pgp.mod
play.mod
png.mod
priority_queue.mod
probe.mod
procfs.mod
progress.mod
raid5rec.mod
raid6rec.mod
random.mod
rdmsr.mod
read.mod
reboot.mod
regexp.mod
reiserfs.mod
relocator.mod
romfs.mod
scsi.mod
search_fs_file.mod
search_fs_uuid.mod
search_label.mod
search.mod
serial.mod
setjmp.mod
setjmp_test.mod
setpci.mod
sfs.mod
shift_test.mod
signature_test.mod
sleep.mod
sleep_test.mod
smbios.mod
spkmodem.mod
squash4.mod
strtoull_test.mod
syslinuxcfg.mod
tar.mod
terminal.lst
terminal.mod
terminfo.mod
test_blockarg.mod
testload.mod
test.mod
testspeed.mod
tftp.mod
tga.mod
time.mod
tpm.mod
trig.mod
tr.mod
true.mod
udf.mod
ufs1_be.mod
ufs1.mod
ufs2.mod
uhci.mod
usb_keyboard.mod
usb.mod
usbms.mod
usbserial_common.mod
usbserial_ftdi.mod
usbserial_pl2303.mod
usbserial_usbdebug.mod
usbtest.mod
video_bochs.mod
video_cirrus.mod
video_colors.mod
video_fb.mod
videoinfo.mod
video.lst
video.mod
videotest_checksum.mod
videotest.mod
wrmsr.mod
xfs.mod
xnu.mod
xnu_uuid.mod
xnu_uuid_test.mod
xzio.mod
zfscrypt.mod
zfsinfo.mod
zfs.mod
zstd.mod

If there's anything I can do to help troubleshoot this, I'm happy to do it. Thanks so much for the help!

Last edited by remanifest (2021-07-10 07:50:50)

Offline

#2 2021-07-08 14:54:53

remanifest
Member
Registered: 2021-07-01
Posts: 11

Re: [SOLVED] New Install: vmlinuz-linux not found by GRUB

This was partially "fixed" after Namarrgon graciously donated some of their time to help. By editing /boot/grub/grub.cfg to point to the correct hard drive and partition as seen by UEFI. Interestingly, this is (HD10,1) when in UEFI, but it's (HD0,1) when Linux is booted. I don't love this hacky solution, and would very much like any suggestions about how to fix it, so that if grub-mkconfig is run, it'll somehow recognize the appropriate partition to boot from. It should be falling back to the UUID if the (HD,GPT) value doesn't get it to the right place, but that doesn't appear to be working reliably.

Offline

#3 2021-07-08 20:03:40

Mnr Grumpy
Member
Registered: 2021-07-08
Posts: 2

Re: [SOLVED] New Install: vmlinuz-linux not found by GRUB

I am not acquainted with Hackintoshes, but if EFI reads your EFI partition, why bother with GRUB? Why not boot directly into Arch via EFI?
Or do you dual boot Arch/Mack via GRUB?

https://wiki.archlinux.org/title/EFISTUB states:

"UEFI is designed to remove the need for an intermediate bootloader such as GRUB. If your motherboard has a good UEFI implementation, it is possible to embed the kernel parameters within a UEFI boot entry and for the motherboard to boot Arch directly. You can use efibootmgr or UEFI Shell v2 to modify your motherboard's boot entries. "

Offline

#4 2021-07-10 07:12:34

remanifest
Member
Registered: 2021-07-01
Posts: 11

Re: [SOLVED] New Install: vmlinuz-linux not found by GRUB

Mnr Grumpy wrote:

I am not acquainted with Hackintoshes, but if EFI reads your EFI partition, why bother with GRUB? Why not boot directly into Arch via EFI?
Or do you dual boot Arch/Mack via GRUB?

https://wiki.archlinux.org/title/EFISTUB states:

"UEFI is designed to remove the need for an intermediate bootloader such as GRUB. If your motherboard has a good UEFI implementation, it is possible to embed the kernel parameters within a UEFI boot entry and for the motherboard to boot Arch directly. You can use efibootmgr or UEFI Shell v2 to modify your motherboard's boot entries. "

Thank you very much. With the hackintosh, OpenCore serves as a UEFI bootloader, passing various parameters to the system to allow it to behave like a real Mac. I was able to leverage one of its features to add a custom boot entry for Arch Linux, eliminating the need for grub, systemd-boot, or any other intermediary bootloader, because the kernel supports EFISTUB.

This takes the form of a dictionary entry in a plist file. The important entries are the Path and Arguments entries.

Path (points to the Linux kernel):

PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0xFFFF,0x0)/HD(1,GPT,12D3815D-FD68-42BE-B46F-FB28B23E04B8,0x28,0x64000)/\vmlinuz-linux

Arguments (passes the appropriate boot arguments to the system, so everything loads correctly):

initrd=\intel-ucode.img initrd=\initramfs-linux.img root=UUID=25cdab04-7868-4cbe-8115-1928d066ed15 rw cryptdevice=UUID=10d3c496-102e-40f2-ab7b-a715598d11a3:arch:allow-discards lsm=lockdown,yama,apparmor,bpf loglevel=3 quiet

In the above, root=UUID=25cdab04-7868-4cbe-8115-1928d066ed15 points to the LVM mount point for my root partition (/). cryptdevice=UUID=10d3c496-102e-40f2-ab7b-a715598d11a3 points to the crypto_LUKS partition's UUID, with arch representing the name of the physical LVM2 device.

Hopefully this helps someone else who winds up in a similar scenario. This was pretty tricky for me to resolve. Thanks for all the help & the push in the right direction!

Offline

Board footer

Powered by FluxBB