Editing the PXE Boot Menu using Ubuntu 18.04 LTSP

I had the idea to present the user with a PXE menu to install Ubuntu. After researching the idea, I decided to forgo this option, and utilize instead a zenity menu that could also be accessed by epoptes: github.com/jphein/boxen/…

However if you are interested in the PXE boot menu, and netbooting into a Ubuntu install here is some great info:


<pre>#Add to MAC of second server your existing dhcp conf to tell it to run the installer by default when it PXE boots
[<mac address>]
filename /ubuntu-installer/amd64/pxelinux.0

#Log in remotely into second server, after install
ssh ubuntu@<ip from dhcp syslog> -p ubuntu

General Info

* Create PXE menu installer for both client and server.
* Client –> LTSP menu (default)
* Install boxen baby (wifi or vpn remote) client — ubuntu bionic desktop minimal install with xfreerdo-ngihtly
* Install boxen brain server — preseeded ubuntu with boxen install script
* Boot first HD
* netboot.xyz netboot.xyz/booting/tftp…

* Create Preseed file for PXE installers.

PXE booting


#ltsp: This is the place for support of LTSP. Ask your question and hang around for an answer. Check IRC logs at http://irclogs.ltsp.org
[19:56] == jphein [b8178628@gateway/web/freenode/ip.] has joined #ltsp
[19:56] -ChanServ- [#ltsp] Welcome to the Linux Terminal Server Project's irc channel
[19:58]  Hello to everyone. =] I have a nice LTSP install in KVM. It's using Ubuntu 18.04.1, with the chrootless dnsmasq proxy method
[19:59]  However, when I run ltsp-update-kernels my pxe config doesn't pick up the changes I make in /etc/ltsp/udpate-kernels.conf
[20:00]  my /var/lib/tftpboot/amd64pxelinux.cfg/ directory remains unchanged
[20:01]  When I make the changes directly in the files it works well
[20:09]  Am I missing something?
[21:56]  jphein: yes, /usr/share/ltsp/update-kernels
[21:56]  This transfers /etc/ltsp/update-kernels.conf to /boot/pxelinux.cfg/default
[21:56]  Then ltsp-update-image puts it in /opt/ltsp/images/amd64.img
[21:57]  And finally ltsp-update-kernels gets it from amd64.img and puts it to tftp
[21:57]  Thank you! I'll try it out. =]
[21:57]  It's so complicated that I wanted to get rid of it and just use a static file :D
[21:59]  hahaha
[22:08]  So it never goes to /var/lib/tftpboot/ltsp/amd64/pxelinux.cfg/ ?
[22:17]  I'd like to install Ubuntu as a pxe option before my ltsp menu
[22:32]  jphein: sure, it goes to pxelinux.cfg after the 4 steps I mentioned above
[22:38]  lol!


#ltsp: This is the place for support of LTSP. Ask your question and hang around for an answer. Check IRC logs at http://irclogs.ltsp.org
[21:36] == jphein [b8178628@gateway/web/freenode/ip.] has joined #ltsp
[21:36] -ChanServ- [#ltsp] Welcome to the Linux Terminal Server Project's irc channel
[21:37]  Hello! =] Does anyone know where I would put my install-ubuntu kernels so that update-kernels picks them up and presents them on the PXE menu?
[21:39]  Or, do I have to edit the pxelinux.cfg/default symlink manually?
[21:39] == vagrantc [~vagrant@unaffiliated/vagrantc] has joined #ltsp
[21:41]  This is my https://github.com/jphein/boxen/blob/master/etc/ltsp/update-kernels.conf
[21:44]  I suppose I can edit my dnsmasq.d/ to add the mac address of the client I'd want to install. With the ubuntu-install pxe boot config.
[21:48]  I'm also having issues with the chrootless method in the Azure cloud. Seems the Azure kernel may not have all the right input drivers for KVM?
[22:25]  jphein: I'm not sure what you're asking; why do you need more than one kernel?
[22:25]  If you only keep one kernel, then ltsp will pick them up
[22:26]  Now if you want multiple kernels, ltsp will pick up the latest
[22:26]  Sorry, let me rephrase that. Do you know of a simple way to present the PXE client user with a menu to install Ubuntu?
[22:26]  So if e.g. azure has 4.1, and you manually install 4.15, then the server will have 4.1 and the clients 4.15, without involving any configs
[22:26]  cool
[22:26]  jphein: ah sure, you just expose the .iso etc
[22:27]  But the "ltsp way to install a client" is to netboot it and cp -a /run/initramfs/rofs /target
[22:27]  I.e. to clone the ltsp image...
[22:27]  that's exactly what i want
[22:28]  You can also easily netboot it, and run: kvm -cdrom /path/to/windows -hda /dev/sda, so that you can even install windows while booted as an ltsp client
[22:28]  All those don't involve pxelinux at all
[22:28]  You do those via epoptes after the client boots normally via ltsp
[22:28]  oh yes kvm
[22:28]  (or locally)
[22:29]  with epoptes
[22:29]  nice
[22:29]  I usually don't want to leave my chair, so I do all clients via epoptes
[22:29]  haha =]
[22:29]  So I can be installed 3 different OSes on 3 clients without me going there
[22:30]  *I can install, meh
[22:30]  I can be installing. OK, got it :P
[22:30]  thank you , again!
[22:30]  np
[22:30]  I like that solution a lot.
[22:31]  Do you know the simplest way to preseed an Ubuntu installation with a few changes?
[22:32]  wcp -a /run/initramfs/rofs /target
[22:32]  Do I make a screen script?
[22:33]  jphein: let's clear something up
[22:34]  cp is for cloning the ltsp image
[22:34]  kvm is for installing ubuntu from an .iso
[22:34]  preseeding only applies to the iso
[22:34]  So which one are you asking about?
[22:35]  hahaha, I'm just very curious
[22:35]  =]
[22:35]  i like all of them
[22:35]  but I want to know more about the cp -a
[22:35]  it's a simple as that?
[22:36]  cloning
[22:36]  I don't make screen scripts for such simple things; I do make scripts that I run either from epoptes or directly from the client
[22:36]  cp, add user, install grub
[22:36]  You can also have a vm on the server, and use dd, to avoid all that
[22:36]  oh i see
[22:37]  using qcow?
[22:37]  or raw img
[22:37]  E.g. I have bionic-mate in vbox, then i expose it via nbd, and I dd if=/dev/nbd2 of=/dev/sda on the clients, and it's ready
[22:37]  Both can be done, qemu-nbd supports qcow and vdi and vmdk and raw
[22:38]  so many ways
[22:38]  that is the one i'll use since I already have the vm
[22:38]  You can even login normally as a user on the client, so that your image is accessible by sshfs in /home/username
[22:38]  So then you do dd if=/home/username/vms/myvm of=/dev/sda, done
[22:38]  No scripts, no screen scripts, nothing
[22:39]  You may only need to resize2fs /dev/sda1 afterwards, so that it extends to all the disk size
[22:39]  right
[22:41]  and you're doing this in a user with sudo privledges or something?
[22:41]  yes
[22:41]  Yup, with LDM_HASH_PASSWORD=True; or via epoptes :)
[23:34]  Which commands do you run after a cp -a /run/initramfs/rofs /target ? Install grub?
[00:16]  jphein: mount /dev/sda1 /mnt; cd /mnt; for d in proc sys dev dev/pts; do mount --bind /$d $d; done; chroot . dpkg-reconfigure grub-pc; umount dev/pts dev sys proc


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.