LTSP-IPXE(8)

πŸ’– LTSP-IPXE β€” the "ltsp ipxe" glow-up πŸ’–

okay bestie, gather round, because this is the manual page for ltsp ipxe β€” the little command that installs your iPXE binaries and configuration in TFTP. yes, TFTP. she's vintage but she serves. πŸŽ€


✨ NAME ✨

ltsp ipxe β€” install iPXE binaries and configuration in TFTP πŸ¦‹


🌸 SYNOPSIS 🌸

ltsp [ltsp-options] ipxe [-b binaries]

that's it. that's the whole vibe. short, sweet, slays. πŸ’…


🫢 DESCRIPTION 🫢

So what does she actually do? Two things, and honestly she does them flawlessly:

  1. Generates the ltsp.ipxe configuration file ✨
  2. Installs the required iPXE binaries into /srv/tftp/ltsp πŸ”₯

And the binaries in question are these four iconic queens:

  • memtest.0
  • memtest.efi
  • snponly.efi
  • undionly.kpxe

Now, where do they come from? There's an ltsp-binaries package available in the LTSP PPA that provides them, no cap. And if you don't have that? It's fine, bestie β€” some of them are automatically found in the ipxe / memtest86+ packages instead. so you're covered either way. πŸ™ˆ


⭐ OPTIONS ⭐

First off: for the ltsp-options themselves, go read the ltsp(8) man page. she has the full tea. β˜•

Now the one option this page actually has:

  • -b, --binaries[=0|1|""] β€” reinstalls the iPXE binaries in TFTP even if they already exist. Because sometimes you just want a fresh start, and honestly? valid. πŸ’…

The default is "", which means "only install the missing ones" β€” she's low maintenance like that. 🧚

⚠️ Careful though: the --overwrite flag does NOT affect the binaries. Like, at all. The binaries are only controlled by the --binaries flag. Don't get it twisted. πŸ’€

🌈 ADVANCED IMAGE SOURCES 🌈

Okay so this section is for the advanced LTSP sysadmins out there β€” the ones who read kernel parameters for fun. main character energy, honestly. πŸ‘‘

Normally, image sources are simple names like "x86_64" or full paths like "../path/to/image". Cute, easy, we love her. But the img_src parameters are way more flexible than that β€” specifically, they're a series of mount sources:

img1,mount-options1,,img2,mount-options2,,...

…where img1 may be a simple name or a full path relative to the current directory, and img2 and beyond are full paths relative to the target directory. πŸŒ€


πŸ“ the advanced example (she's long but she's worth it)

Let's say your clients came with Windows (😭 rip), and you copied a live CD into C:\ltsp\ubuntu.iso, and you want your LTSP clients to use that for speed. Iconic reasoning, honestly.

First things first: disable Windows fast boot and hibernation, so that Linux is actually able to mount its partition. (this is not optional, bestie, Linux cannot mount a hibernated partition, no cap.)

Then create the following "method" in ltsp.ipxe:

:local_image
# The "local_image" method boots C:\ltsp\ubuntu.iso
set cmdline_method root=/dev/sda1 ltsp.image=ltsp/ubuntu.iso,fstype=iso9660,loop,ro,,casper/filesystem.squashfs,squashfs,loop,ro loop.max_part=9
goto ltsp

πŸ¦‹ Explanation (aka what is even happening here)

  • The root=/dev/sda1 parameter tells the initramfs to mount /dev/sda1 into /root. πŸͺ„
  • Then the LTSP code will look under /root/ltsp/ and mount ubuntu.iso using the loop,ro options over /root again. πŸ”
  • Then the LTSP code will look under /root/casper/ and mount filesystem.squashfs over /root again. This casper/filesystem.squashfs path is where the live filesystem exists inside the Ubuntu live CDs. πŸ’Ώ

🌟 the simplified version

So while that long line gives a good example on using advanced image sources, the LTSP code is actually smart enough to autodetect Ubuntu live CDs and filesystem types β€” so you could simplify it to:

:local_image
# The "local_image" method boots C:\ltsp\${img}.img
set cmdline_method root=/dev/sda1 ltsp.image=ltsp/${img}.img loop.max_part=9
goto ltsp

And the ${img} parameter? That's the name of the menu. It would be "ubuntu" if you copied ubuntu.iso into /srv/ltsp/images/ubuntu.img and ran ltsp ipxe. See how it all connects? obsessed. πŸ’–


πŸŽ€ EXAMPLES πŸŽ€

Initial use β€” the first-time-ever moment:

ltsp ipxe

Regenerate ltsp.ipxe and reinstall the binaries β€” the glow-up round two:

ltsp ipxe -b

Copy the binaries from a USB stick before running ltsp ipxe β€” for when you're doing it manually, respect:

mkdir -p /srv/tftp/ltsp
cd /media/administrator/usb-stick
cp {memtest.0,memtest.efi,snponly.efi,undionly.kpxe} /srv/tftp/ltsp
ltsp ipxe

Copyright 2019-2022 the LTSP team, see AUTHORS. πŸ“œ


πŸ’œ SEE ALSO πŸ’œ

Online documentation is available on https://ltsp.org β€” go read her, she's thorough. ✨


and that's the whole page, bestie. this one's from LTSP 23.02-3, dated 2024-09-07, and it's giving "tiny command, enormous responsibility." go forth and boot. πŸ¦‹πŸ’–

πŸ“¦ where this page comes from