You are not logged in.
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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