You are not logged in.

#1 2017-01-07 21:08:37

hamhock
Member
Registered: 2015-04-16
Posts: 94

[SOLVED] PXE - "Unable to locate configuration file" error

I'm trying to boot archiso via pxe following these instructions:
https://wiki.archlinux.org/index.php/PXE and hhttps://wiki.archlinux.org/index.php/dnsmasq#PXE_setup

i'm almost there - client just can't find the "configuration file."  the client gets to this point:

BOOT SERVER IP: 192.168.0.20
PXELINUX 6.03 lwIP 6.03 copyright H. Peter Anvin et al
Unable to locate configuration file

here are a few lines from journalctl -u dnsmasq -f

dnsmasq-tftp[13173]: sent /mnt/archiso/arch/boot/syslinux/lpxelinux.0 to 192.168.0.32
dnsmasq-tftp[13173]: sent /mnt/archiso/arch/boot/syslinux/ldlinux.c32 to 192.168.0.32
dnsmasq-tftp[13173]: file /mnt/archiso/arch/boot/syslinux/pxelinux.cfg/01-68-05-xx-xx-xx-xx not found

here is my /etc/dnsmasq.conf

port=0
interface=eno1
bind-dynamic
dhcp-range=192.168.0.0,proxy
pxe-service=x86PC, "PXE-Linux", "/arch/boot/syslinux/lpxelinux"
dhcp-boot=/arch/boot/syslinux/lpxelinux.0
dhcp-option-force=209,boot/syslinux/archiso.cfg
dhcp-option-force=210,/arch/
dhcp-option-force=66,192.168.0.1

enable-tftp
tftp-root=/mnt/archiso

Last edited by hamhock (2017-01-14 16:39:44)

Offline

#2 2017-01-08 00:08:18

nomorewindows
Member
Registered: 2010-04-03
Posts: 3,362

Re: [SOLVED] PXE - "Unable to locate configuration file" error

Do you have a /mnt/archiso/arch/boot/syslinux/pxelinux.cfg/default?


I may have to CONSOLE you about your usage of ridiculously easy graphical interfaces...
Look ma, no mouse.

Offline

#3 2017-01-08 00:28:09

hamhock
Member
Registered: 2015-04-16
Posts: 94

Re: [SOLVED] PXE - "Unable to locate configuration file" error

nomorewindows wrote:

Do you have a /mnt/archiso/arch/boot/syslinux/pxelinux.cfg/default?

i do not have that file.    I simply mounted the iso to /mnt/archiso according to the instructions at https://wiki.archlinux.org/index.php/PXE

mount -o loop,ro /mnt/video/dl/iso/archlinux-2017.01.01-dual.iso /mnt/archiso 

there a many *.cfg files in /mnt/archiso/arch/boot/syslinux/, e.g.,
archiso.cfg, archiso_pxe32.cfg, syslinux.cfg, etc., but no  "pxelinux.cfg"

Last edited by hamhock (2017-01-09 02:37:35)

Offline

#4 2017-01-09 02:24:28

hamhock
Member
Registered: 2015-04-16
Posts: 94

Re: [SOLVED] PXE - "Unable to locate configuration file" error

nomorewindows wrote:

Do you have a /mnt/archiso/arch/boot/syslinux/pxelinux.cfg/default?

since I don't have pxelinux.cfg/default, I did this

cd /srv/tftp
ln -s /mnt/archiso/arch/boot/syslinux/lpxelinux.0 pxelinux.0
mkdir pxelinux.cfg
ln -s /mnt/archiso/arch/boot/syslinux/archiso.cfg pxelinux.cfg/default

now I get this error from the client:

Failed to load ldlinux.c32

Last edited by hamhock (2017-01-09 02:46:56)

Offline

#5 2017-01-10 22:32:13

hamhock
Member
Registered: 2015-04-16
Posts: 94

Re: [SOLVED] PXE - "Unable to locate configuration file" error

when I follow the instructions exactly from here:
https://wiki.archlinux.org/index.php/PXE for "DHCP + TFTP"

i get the error:

PXE-E32: TFTP open timeout

I've tried it on several different clients with the same error.  I can tftp to the server and "get" any file, e.g.,

> get /arch/boot/syslinux/archiso.cfg

# /etc/dnsmasq.conf

port=0
interface=eth0
bind-interfaces
dhcp-range=192.168.0.50,192.168.0.150,12h
dhcp-boot=/arch/boot/syslinux/lpxelinux.0
dhcp-option-force=209,boot/syslinux/archiso.cfg
dhcp-option-force=210,/arch/
dhcp-option-force=66,192.168.0.1
enable-tftp
tftp-root=/mnt/archiso

I'm really pulling my hair out on this one.

Offline

#6 2017-01-11 06:58:39

hamhock
Member
Registered: 2015-04-16
Posts: 94

Re: [SOLVED] PXE - "Unable to locate configuration file" error

making progress.  arch boots via tftp, but get the following error

Mounting 'dev'disk/by-label/ARCH_201701' to '/run/archiso/bootmnt'
ERROR: 'dev'disk/by-label/ARCH_201701' device did not show up after 30 seconds ...
    Falling back to interactive prompt

Not sure how to proceed.

Offline

#7 2017-01-11 20:46:34

nomorewindows
Member
Registered: 2010-04-03
Posts: 3,362

Re: [SOLVED] PXE - "Unable to locate configuration file" error

hamhock wrote:

making progress.  arch boots via tftp, but get the following error

Mounting 'dev'disk/by-label/ARCH_201701' to '/run/archiso/bootmnt'
ERROR: 'dev'disk/by-label/ARCH_201701' device did not show up after 30 seconds ...
    Falling back to interactive prompt

Not sure how to proceed.

Sounds like it's trying to find the archiso CDROM in the PXE client...it needs to be mounting the NFS share...

Last edited by nomorewindows (2017-01-11 20:47:06)


I may have to CONSOLE you about your usage of ridiculously easy graphical interfaces...
Look ma, no mouse.

Offline

#8 2017-01-11 21:45:50

hamhock
Member
Registered: 2015-04-16
Posts: 94

Re: [SOLVED] PXE - "Unable to locate configuration file" error

nomorewindows wrote:

Sounds like it's trying to find the archiso CDROM in the PXE client...it needs to be mounting the NFS share...

thanks for the help.   I wish I could implement your advice without further questions.
my mounted archiso on the server is mounted on: /mnt/archiso.
here is my pxelinux.cfg/default.  perhaps it may shed some light on where I'm falling short.

default menu.c32
prompt 0
timeout 120

menu title PXE Menu

LABEL arch64_http
        MENU LABEL Arch64_HTTP
        LINUX http://192.168.0.20/arch/boot/x86_64/vmlinuz
        INITRD http://192.168.0.20/arch/boot/intel_ucode.img,http://192.168.0.20/arch/boot/x86_64/archiso.img
        APPEND archiso_http_srv=http://192.168.0.20/arch/x86_64/ archisolabel=ARCH_201701 vga=791

LABEL hdt
        MENU LABEL Hardware Detection Tool
        LINUX util/memdisk
        INITRD util/hdt-0.5.2.img

LABEL MemTest
        MENU LABEL MemTest
        LINUX util/memtest86+-5.01.bin

Offline

#9 2017-01-12 01:54:01

hamhock
Member
Registered: 2015-04-16
Posts: 94

Re: [SOLVED] PXE - "Unable to locate configuration file" error

nomorewindows wrote:

Sounds like it's trying to find the archiso CDROM in the PXE client...it needs to be mounting the NFS share...

I did not install nfs-utils.  I'd like to mount the root file system to tmpfs instead of using NFS.

Offline

#10 2017-01-12 06:45:34

nomorewindows
Member
Registered: 2010-04-03
Posts: 3,362

Re: [SOLVED] PXE - "Unable to locate configuration file" error

hamhock wrote:
nomorewindows wrote:

Sounds like it's trying to find the archiso CDROM in the PXE client...it needs to be mounting the NFS share...

thanks for the help.   I wish I could implement your advice without further questions.
my mounted archiso on the server is mounted on: /mnt/archiso.
here is my pxelinux.cfg/default.  perhaps it may shed some light on where I'm falling short.

default menu.c32
prompt 0
timeout 120

menu title PXE Menu

LABEL arch64_http
        MENU LABEL Arch64_HTTP
        LINUX http://192.168.0.20/arch/boot/x86_64/vmlinuz
        INITRD http://192.168.0.20/arch/boot/intel_ucode.img,http://192.168.0.20/arch/boot/x86_64/archiso.img
        APPEND archiso_http_srv=http://192.168.0.20/arch/x86_64/ archisolabel=ARCH_201701 vga=791

LABEL hdt
        MENU LABEL Hardware Detection Tool
        LINUX util/memdisk
        INITRD util/hdt-0.5.2.img

LABEL MemTest
        MENU LABEL MemTest
        LINUX util/memtest86+-5.01.bin

It looks like you are skipping tftp entirely, and going with http serving of the kernel and initramfs files.
But you still have to give it a root in which it can mount to...which is normally NFS and maintains a continuous connection with the PXE server through a root mounted through NFS a the root...to use tmpfs, you need the whole image stored in RAM (which uses up free RAM), by storing all needed files in the initramfs image altogether...which can be a large file (still over the network).  Mounting via NFS, allows the PXE client to ask for only the files it needs, which one client won't necessarily need the same files as another client as is Arch uses a stateless diskless client setup.  Other distributions make a static/stateful image for each individual client, which for mass usage is inflexible, when nothing else is different.  With stateless IP, the PXE client can figure out that one IP address is already in use and just get another free IP to use...
So here you don't even have a root= option, which maybe is the result of using archiso, Idk, I have a permanent PXE installation running off of another permanent installation (daily driver machine).  It's actually quite easy, you just make another installation, point pacman to the root of the installation, and you'll need mkinitcpio-nfs-utils for it to compile your initramfs to use PXE.  Usually a PXE client actually uses some less memory, because unless a disk is being used or accessed, it won't be loading any disk modules which frees up memory.

Last edited by nomorewindows (2017-01-12 06:48:21)


I may have to CONSOLE you about your usage of ridiculously easy graphical interfaces...
Look ma, no mouse.

Offline

#11 2017-01-13 01:27:48

hamhock
Member
Registered: 2015-04-16
Posts: 94

Re: [SOLVED] PXE - "Unable to locate configuration file" error

nomorewindows wrote:

It looks like you are skipping tftp entirely, and going with http serving of the kernel and initramfs files.
But you still have to give it a root in which it can mount to...which is normally NFS and maintains a continuous connection with the PXE server through a root mounted through NFS a the root...to use tmpfs, you need the whole image stored in RAM (which uses up free RAM), by storing all needed files in the initramfs image altogether...which can be a large file (still over the network).  Mounting via NFS, allows the PXE client to ask for only the files it needs, which one client won't necessarily need the same files as another client as is Arch uses a stateless diskless client setup.  Other distributions make a static/stateful image for each individual client, which for mass usage is inflexible, when nothing else is different.  With stateless IP, the PXE client can figure out that one IP address is already in use and just get another free IP to use...
So here you don't even have a root= option, which maybe is the result of using archiso, Idk, I have a permanent PXE installation running off of another permanent installation (daily driver machine).  It's actually quite easy, you just make another installation, point pacman to the root of the installation, and you'll need mkinitcpio-nfs-utils for it to compile your initramfs to use PXE.  Usually a PXE client actually uses some less memory, because unless a disk is being used or accessed, it won't be loading any disk modules which frees up memory.

thank you for your detailed explanation.  I was about ready to try NFS when I stumbled upon this: https://wiki.archlinux.org/index.php/Archboot

I downloaded the 3 image files and created a menu entry (http was significantly faster than tftp):

LABEL archboot_64 http
        MENU LABEL archboot_64
        LINUX http://192.168.0.20/archboot/vmlinuz_x86_64
        INITRD http://192.168.0.20/archboot/intel-ucode.img,http://192.168.0.20/archboot/initramfs_x86_64.img
        APPEND vga=791

LABEL boot_hd0
        MENU LABEL boot_hd0
        COM32 chain.c32
        APPEND hd0

it boots up fast and I can ssh into the client with no manual intervention on the client side.   this is helpful as I have a 12-year old computer (remote and headless) and this allows me to reboot the client, do admin tasks, then reboot back into the arch install on hd0

I'm switching between the two boot alternatives by swapping the two menu items in pxelinux.cfg/ not sure if that is the best way to alternate between them.

here is the file system info:

df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
rootfs         rootfs    934M  573M  362M  62% /
devtmpfs       devtmpfs  934M     0  934M   0% /dev
tmpfs          tmpfs    1003M     0 1003M   0% /dev/shm
tmpfs          tmpfs    1003M  8.3M  995M   1% /run
tmpfs          tmpfs    1003M     0 1003M   0% /sys/fs/cgroup
tmpfs          tmpfs    1003M  4.0K 1003M   1% /tmp
tmpfs          tmpfs    1003M  1.3M 1002M   1% /etc/pacman.d/gnupg
tmpfs          tmpfs     201M     0  201M   0% /run/user/0

just for comparison, here is the output when i booted releng's arch ipxe live netboot http://releng.archlinux.org/pxeboot/

Filesystem     Type      Size  Used Avail Use% Mounted on
dev            devtmpfs  983M     0  983M   0% /dev
run            tmpfs    1003M   88M  915M   9% /run
httpspace      tmpfs     1.5G  361M  1.2G  24% /run/archiso/httpspace
copytoram      tmpfs     1.5G  361M  1.2G  24% /run/archiso/copytoram
cowspace       tmpfs     256M  8.4M  248M   4% /run/archiso/cowspace
/dev/loop0     squashfs  361M  361M     0 100% /run/archiso/sfs/airootfs
airootfs       overlay   256M  8.4M  248M   4% /
tmpfs          tmpfs    1003M     0 1003M   0% /dev/shm
tmpfs          tmpfs    1003M     0 1003M   0% /sys/fs/cgroup
tmpfs          tmpfs    1003M     0 1003M   0% /tmp
tmpfs          tmpfs    1003M  1.3M 1002M   1% /etc/pacman.d/gnupg
tmpfs          tmpfs     201M     0  201M   0% /run/user/0

I liked the arch live netboot as well, but it takes longer to boot and I can't ssh into it without client side intervention - unless I'm overlooking something, e.g., append options.

I will try NFS soon so I can compare how it works in my use case vs. archboot

Last edited by hamhock (2017-01-13 03:35:56)

Offline

#12 2017-01-13 16:35:52

nomorewindows
Member
Registered: 2010-04-03
Posts: 3,362

Re: [SOLVED] PXE - "Unable to locate configuration file" error

hamhock wrote:
nomorewindows wrote:

It looks like you are skipping tftp entirely, and going with http serving of the kernel and initramfs files.
But you still have to give it a root in which it can mount to...which is normally NFS and maintains a continuous connection with the PXE server through a root mounted through NFS a the root...to use tmpfs, you need the whole image stored in RAM (which uses up free RAM), by storing all needed files in the initramfs image altogether...which can be a large file (still over the network).  Mounting via NFS, allows the PXE client to ask for only the files it needs, which one client won't necessarily need the same files as another client as is Arch uses a stateless diskless client setup.  Other distributions make a static/stateful image for each individual client, which for mass usage is inflexible, when nothing else is different.  With stateless IP, the PXE client can figure out that one IP address is already in use and just get another free IP to use...
So here you don't even have a root= option, which maybe is the result of using archiso, Idk, I have a permanent PXE installation running off of another permanent installation (daily driver machine).  It's actually quite easy, you just make another installation, point pacman to the root of the installation, and you'll need mkinitcpio-nfs-utils for it to compile your initramfs to use PXE.  Usually a PXE client actually uses some less memory, because unless a disk is being used or accessed, it won't be loading any disk modules which frees up memory.

thank you for your detailed explanation.  I was about ready to try NFS when I stumbled upon this: https://wiki.archlinux.org/index.php/Archboot

I downloaded the 3 image files and created a menu entry (http was significantly faster than tftp):

LABEL archboot_64 http
        MENU LABEL archboot_64
        LINUX http://192.168.0.20/archboot/vmlinuz_x86_64
        INITRD http://192.168.0.20/archboot/intel-ucode.img,http://192.168.0.20/archboot/initramfs_x86_64.img
        APPEND vga=791

LABEL boot_hd0
        MENU LABEL boot_hd0
        COM32 chain.c32
        APPEND hd0

it boots up fast and I can ssh into the client with no manual intervention on the client side.   this is helpful as I have a 12-year old computer (remote and headless) and this allows me to reboot the client, do admin tasks, then reboot back into the arch install on hd0

I'm switching between the two boot alternatives by swapping the two menu items in pxelinux.cfg/ not sure if that is the best way to alternate between them.

here is the file system info:

df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
rootfs         rootfs    934M  573M  362M  62% /
devtmpfs       devtmpfs  934M     0  934M   0% /dev
tmpfs          tmpfs    1003M     0 1003M   0% /dev/shm
tmpfs          tmpfs    1003M  8.3M  995M   1% /run
tmpfs          tmpfs    1003M     0 1003M   0% /sys/fs/cgroup
tmpfs          tmpfs    1003M  4.0K 1003M   1% /tmp
tmpfs          tmpfs    1003M  1.3M 1002M   1% /etc/pacman.d/gnupg
tmpfs          tmpfs     201M     0  201M   0% /run/user/0

just for comparison, here is the output when i booted releng's arch ipxe live netboot http://releng.archlinux.org/pxeboot/

Filesystem     Type      Size  Used Avail Use% Mounted on
dev            devtmpfs  983M     0  983M   0% /dev
run            tmpfs    1003M   88M  915M   9% /run
httpspace      tmpfs     1.5G  361M  1.2G  24% /run/archiso/httpspace
copytoram      tmpfs     1.5G  361M  1.2G  24% /run/archiso/copytoram
cowspace       tmpfs     256M  8.4M  248M   4% /run/archiso/cowspace
/dev/loop0     squashfs  361M  361M     0 100% /run/archiso/sfs/airootfs
airootfs       overlay   256M  8.4M  248M   4% /
tmpfs          tmpfs    1003M     0 1003M   0% /dev/shm
tmpfs          tmpfs    1003M     0 1003M   0% /sys/fs/cgroup
tmpfs          tmpfs    1003M     0 1003M   0% /tmp
tmpfs          tmpfs    1003M  1.3M 1002M   1% /etc/pacman.d/gnupg
tmpfs          tmpfs     201M     0  201M   0% /run/user/0

I liked the arch live netboot as well, but it takes longer to boot and I can't ssh into it without client side intervention - unless I'm overlooking something, e.g., append options.

I will try NFS soon so I can compare how it works in my use case vs. archboot

The Arch Live NetBoot has to go back through the internet and redownload the whole file complex all over again...not sure if you can use proxy via PXE, and ssh isn't a default option when doing it that way.   So mostly that is a waste of time and bandwidth.

I can't think of an easy way to do http on a permanent PXE install, so this is probably a benefit of using ArchBoot for those out in the field, or on the spot uses. 

I'd say you can select between PXE and boot from hard drive in the pxelinux menu, making PXE the default.  No need to rewrite your pxelinux.cfg files.  You can also boot from the hard drive just by escaping out of the PXE loader.

Last edited by nomorewindows (2017-01-13 16:37:49)


I may have to CONSOLE you about your usage of ridiculously easy graphical interfaces...
Look ma, no mouse.

Offline

#13 2017-01-13 18:42:49

hamhock
Member
Registered: 2015-04-16
Posts: 94

Re: [SOLVED] PXE - "Unable to locate configuration file" error

nomorewindows wrote:

The Arch Live NetBoot has to go back through the internet and redownload the whole file complex all over again...not sure if you can use proxy via PXE, and ssh isn't a default option when doing it that way.   So mostly that is a waste of time and bandwidth.

thanks again and I agree.  I could live with the longer boot time but the inability to ssh into the client without manual intervention on the client side precluded me from using it.

nomorewindows wrote:

I can't think of an easy way to do http on a permanent PXE install, so this is probably a benefit of using ArchBoot for those out in the field, or on the spot uses.

not sure i understand what you mean by "permanent PXE install."    i'm using darkhttpd just because it serves the same files faster than tftp.

# darkhttpd /srv/tftp
nomorewindows wrote:

I'd say you can select between PXE and boot from hard drive in the pxelinux menu, making PXE the default.  No need to rewrite your pxelinux.cfg files.  You can also boot from the hard drive just by escaping out of the PXE loader.

I'm unable to do any manual intervention on the client (no keyboard or monitor).  changing the boot priority for its menu on the server side determines if the client will boot into its hd0 or archboot.  when it boots into archboot, I can ssh into it to do admin tasks.

re: archboot, I discovered it does not have the "partclone" package.  Is it possible to install a package in archboot?  I tried "pacman -S partclone", which downloads partclone and its dependencies to /var/cache/pacman/pkg, but does not install.

Last edited by hamhock (2017-01-13 18:50:07)

Offline

#14 2017-01-13 20:00:36

nomorewindows
Member
Registered: 2010-04-03
Posts: 3,362

Re: [SOLVED] PXE - "Unable to locate configuration file" error

hamhock wrote:
nomorewindows wrote:

The Arch Live NetBoot has to go back through the internet and redownload the whole file complex all over again...not sure if you can use proxy via PXE, and ssh isn't a default option when doing it that way.   So mostly that is a waste of time and bandwidth.

thanks again and I agree.  I could live with the longer boot time but the inability to ssh into the client without manual intervention on the client side precluded me from using it.

nomorewindows wrote:

I can't think of an easy way to do http on a permanent PXE install, so this is probably a benefit of using ArchBoot for those out in the field, or on the spot uses.

not sure i understand what you mean by "permanent PXE install."    i'm using darkhttpd just because it serves the same files faster than tftp.

# darkhttpd /srv/tftp
nomorewindows wrote:

I'd say you can select between PXE and boot from hard drive in the pxelinux menu, making PXE the default.  No need to rewrite your pxelinux.cfg files.  You can also boot from the hard drive just by escaping out of the PXE loader.

I'm unable to do any manual intervention on the client (no keyboard or monitor).  changing the boot priority for its menu on the server side determines if the client will boot into its hd0 or archboot.  when it boots into archboot, I can ssh into it to do admin tasks.

re: archboot, I discovered it does not have the "partclone" package.  Is it possible to install a package in archboot?  I tried "pacman -S partclone", which downloads partclone and its dependencies to /var/cache/pacman/pkg, but does not install.

Ah the headless monster routine...by using the MAC address files in pxelinux.cfg you can manually change the default for each machines booting, instead of for every machine with the default file.
Oh yes darkhttpd...that might speed up the PXE booting process...I'll have to try that...
Not sure if you can install the packages on the PXE clients or whether you are limited by archboot being on a read-only CD.


I may have to CONSOLE you about your usage of ridiculously easy graphical interfaces...
Look ma, no mouse.

Offline

#15 2017-01-14 16:38:56

hamhock
Member
Registered: 2015-04-16
Posts: 94

Re: [SOLVED] PXE - "Unable to locate configuration file" error

nomorewindows wrote:

Not sure if you can install the packages on the PXE clients or whether you are limited by archboot being on a read-only CD.

given the limitations I've run into for my use case, I think I'm going to try diskless - as you had mentioned early on.  I have a few questions regarding diskless, but I'm going to mark this thread solved and start a new one.

Offline

Board footer

Powered by FluxBB