[Tech] What status are we at?: Re: example PXE boot setup on Lubuntu

Tai Kedzierski dch.tai at gmail.com
Tue Apr 14 02:58:44 PDT 2015


Thanks for the instructions Michael, all

Sorry for long silence, just confirming your help is not falling on a deaf
mailbox, just I've got quite a bit happening my end at the moment!

Did anyone manage to give my ISO respinning instructions a whirl?

Tai



===
Tai Kedzierski

IT Services Specialist
http://helpuse.com
+44 (0) 7526 963 612 (portable GB)

  I use www.libreoffice.org

*"Open Source Free Software is a matter of liberty, not price."*
https://bitly.com/1gXkUcc


On 14 April 2015 at 01:37, Christian Einfeldt <einfeldt at gmail.com> wrote:

> Marvelous!  Working together, we are going to get this figured out!
> Thanks!
>
> On Mon, Apr 13, 2015 at 4:30 PM, P Ganthavorn <pganthavorn at gmail.com>
> wrote:
>
>> Hello Michael, Christian. I don't have much experience with PXE boot on
>> Lubuntu but I am creating a testing environment at home to try it out.
>> (Unfortunately, my schedule this week is tight but I will see what I can
>> do.) I  will also try to put together an old PC and turn it into a working
>> ubuntu station.
>>
>> On Sun, Apr 12, 2015 at 8:30 PM, Michael Paoli <
>> Michael.Paoli at cal.berkeley.edu> wrote:
>>
>>> I don't think I'd be inclined to jump quite so far ahead.
>>>
>>> I think I'd be more inclined to presume, at least approximately, that if
>>> Tai and other new invitee to this list (Peter Ganthavorn) hadn't already
>>> worked out how to get a PXE boot server working on Lubuntu before I made
>>> that posting to this list, that they likely will reasonably shortly
>>> after reading it, and perhaps after some bit of testing/implementing it;
>>> and for the latter of those two folks, presuming he was subscribed to
>>> this list by the time that posting was sent out to the list (or might
>>> pick it up from referenced inclusion on this posting, since DreamHost
>>> list archiving continues to be relatively broken).
>>>
>>> There's lots more to do than *just* create (and/or "fix"/update) PXE
>>> boot server.  E.g., at least approximately, and for Partimus' particular
>>> use scenario and for this school installation:
>>> o aformentioned server also needs to serve as caching transparent proxy
>>>   server
>>> o need to better work out the, as near as feasible, automated
>>>   configuration and installation to target host(s), notably specific
>>>   desired software and configurations, etc.
>>> o custom bootable optical media - need to work out / validate that the
>>>   custom bootable optical media - that we have quite reproducible
>>>   process to create such media, and that it can be used to boot and at
>>>   least start the install process, quite like PXE boot, but without need
>>>   for client host computers to themselves do direct PXE boot from
>>>   BIOS/CMOS
>>> o and probably some other bits that are desired, or even important, that
>>>   aren't immediately jumping to mind.
>>>
>>> Anyway, that's why I generally recommend well documenting the process,
>>> steps, setup, etc. - so it will be quite reproducible, and most anyone
>>> with reasonably sufficient skill set can jump in, understand what the
>>> setup is, why it's set up as it is, how it's desired to be set up and
>>> why, and can maintain, support, and improve it ... without having to
>>> start again from close to ground zero on figuring out why things are
>>> being done certain ways, and not others, and have to redo much of that
>>> whole discovery process yet again.
>>>
>>> Also, and especially, if multiple folks are working on it - and/or
>>> backing each other up for support, having the stuff well documented
>>> makes it much more feasible to coordinate and work towards a common
>>> goal, and help ensure we're all, at least approximately, "on the same
>>> page".
>>>
>>>  From: "Christian Einfeldt" <einfeldt at gmail.com>
>>>> Subject: Re: [Tech] example PXE boot setup on Lubuntu
>>>> Date: Sun, 12 Apr 2015 13:34:21 -0700
>>>>
>>>
>>>  Hi Michael,
>>>>
>>>> Thanks for this.  What status are we at?  Does Michael's work mean that
>>>> we
>>>> are now ready to go over to the Ascend school and configure a server?
>>>> Thx.
>>>>
>>>> On Sun, Apr 12, 2015 at 9:21 AM, Michael Paoli <
>>>> Michael.Paoli at cal.berkeley.edu> wrote:
>>>>
>>>>  Creating Lubntu PXE boot server
>>>>>
>>>>> This doesn't cover all that may be desired of Partimus PXE boot, etc.
>>>>> server, but should illustrate what's needed to at least get a
>>>>> functioning PXE boot server built and configured on Lubuntu.
>>>>> For a "real" installation, and for as desired by Partimus, we'd apply
>>>>> the updates, set up server as transparent caching proxy server, etc.  I
>>>>> mostly just show the (non-default) steps to set up operational DHCP/PXE
>>>>> Lubuntu boot server, and then also test installation to PXE client
>>>>> host.
>>>>> For a "real" installation, of course also the relevant actual network
>>>>> configuration details would be used, in the demonstration, I have and
>>>>> used:
>>>>> network is 192.168.155.0/24
>>>>> network's router/gateway is 192.168.155.1 (NATed access to Internet)
>>>>> network's DNS server is 192.168.155.1 (NATed to resolve Internet, etc.)
>>>>> For a "real" installation, after more suitably setting up the
>>>>> server, we'd make the client host more dependent upon that server,
>>>>> notably also using it as gateway, DNS server, etc.
>>>>> Initially the network already has a DHCP server, which we used to
>>>>> initially build our PXE server, but after that has DHCP server
>>>>> installed, we disable the DHCP server that was already on the network.
>>>>>
>>>>> In this example, I'm presently doing this on virtual machine (qemu-kvm
>>>>> presently on
>>>>> Debian GNU/Linux 7.8 (wheezy) x86_64
>>>>> ), but should work quite as well on physical, or VirtualBox, etc.
>>>>>
>>>>> I specifically adjust my virtual machine configuration, notably:
>>>>> going for relatively low-spec Partimus host:
>>>>> i586 (Pentium)
>>>>> 512 MiB RAM
>>>>> 8 GiB hard drive
>>>>> installing from CD ISO:
>>>>> Lubuntu 14.04.2 LTS "Trusty Tahr" - Release i386 (20150218.1)
>>>>> starting creation and install with:
>>>>> # virt-install --name=lubuntupxesi386 \
>>>>>
>>>>>  --cdrom=/var/tmp/ISOs/lubuntu-14.04.2-desktop-i386.iso \
>>>>>> --disk=/var/tmp/lubuntu/lubuntupxesi386-sda \
>>>>>> --network=network=pxenet,mac=52:54:00:7b:51:5d --ram=512 --wait=-1 \
>>>>>> --os-type=linux --os-variant=debianwheezy --arch=i586 --virt-type kvm
>>>>>> \
>>>>>> --hvm
>>>>>>
>>>>>>  Setting specific Ethernet MAC address wasn't necessary, but I did
>>>>> that
>>>>> for my convenience so I could use same MAC address later when
>>>>> reconfiguring Network Manager to use static IPv4 address.
>>>>>
>>>>> Installation ... non-default bits:
>>>>> Mostly go just with defaults for simplicity ... non-defaults shown:
>>>>>
>>>>> English (before the timeout)
>>>>> Install Lubuntu
>>>>> Continue
>>>>> Your name: Michael Paoli
>>>>> Your computer's name: lubuntupxesi386
>>>>> Your login name: michael
>>>>> Choose a password: [not shown]
>>>>> Confirm your password: [not shown]
>>>>> Installation is complete. ... [Restart Now]
>>>>> ... it hung on shutdown
>>>>> (virtually) power cycled
>>>>> (virtually) eject optical media
>>>>> <<Control>-<Alt>-<F1>>
>>>>> logged in
>>>>> $ sudo su -
>>>>> And for my convenience to also allow login via (virtual) serial:
>>>>> # (cd /etc/init &&
>>>>>
>>>>>  cp -p tty1.conf ttyS0.conf &&
>>>>>> < tty1.conf > ttyS0.conf sed -e 's/tty1/ttyS0/g')
>>>>>>
>>>>>>  # start ttyS0
>>>>> # apt-get update
>>>>>
>>>>> And to keep vim and nano from generally annoying me:
>>>>> # apt-get install nvi &&
>>>>>
>>>>>  update-alternatives --set editor /usr/bin/nvi &&
>>>>>> update-alternatives --set ex /usr/bin/nex &&
>>>>>> update-alternatives --set vi /usr/bin/nvi &&
>>>>>> update-alternatives --set view /usr/bin/nview
>>>>>>
>>>>>>  #
>>>>>
>>>>> # apt-get install isc-dhcp-server tftpd-hpa
>>>>> reconfigure Network Manager for static IPv4 address:
>>>>> # stop network-manager
>>>>> # ex /etc/NetworkManager/NetworkManager.conf
>>>>> 4a
>>>>> no-auto-default=52:54:00:7B:51:5D,
>>>>>
>>>>> .
>>>>> w
>>>>> q
>>>>> # (
>>>>>
>>>>>  umask 077 &&
>>>>>> uuid="$(uuidgen -r)" &&
>>>>>> timestamp="$(date +'%s')" &&
>>>>>> > '/etc/NetworkManager/system-connections/Wired connection 1' \
>>>>>> echo '[802-3-ethernet]
>>>>>> duplex=full
>>>>>> mac-address=52:54:00:7B:51:5D
>>>>>>
>>>>>> [connection]
>>>>>> id=Wired connection 1
>>>>>> uuid='"$uuid"'
>>>>>> type=802-3-ethernet
>>>>>> timestamp='"$timestamp"'
>>>>>>
>>>>>> [ipv6]
>>>>>> method=auto
>>>>>>
>>>>>> [ipv4]
>>>>>> method=manual
>>>>>> dns=192.168.155.1;
>>>>>> address1=192.168.155.2/24,192.168.155.1'
>>>>>> )
>>>>>>
>>>>>>  # start network-manager
>>>>>
>>>>> I then reconfigured the existing DHCP server on / forwarded via
>>>>> 192.168.155.1 to not handle or respond to the 192.168.155/24
>>>>> subnet/VLAN for DHCP/bootp requests, and then continued:
>>>>> # ex /etc/dhcp/dhcpd.conf
>>>>> %s/^option domain-name "/#&
>>>>> %s/^\(option domain-name-servers \).*$/\1 192.168.155.1;/
>>>>> $a
>>>>> next-server 192.168.155.2;
>>>>> subnet 192.168.155.0 netmask 255.255.255.0 {
>>>>>   range 192.168.155.100 192.168.155.200;
>>>>>   option routers 192.168.155.1;
>>>>>   filename "pxelinux.0";
>>>>> }
>>>>> .
>>>>> w
>>>>> q
>>>>> (virtually) inserted optical media:
>>>>> lubuntu-14.04.1-alternate-i386.iso
>>>>> Lubuntu 14.04.1 LTS "Trusty Tahr" - Release i386 (20140722.2)
>>>>> Ideally I'd use:
>>>>> lubuntu-14.04.2-alternate-i386.iso
>>>>> Lubuntu 14.04.2 LTS "Trusty Tahr" - Release i386
>>>>> but that appears to not (yet) be available
>>>>> From the GUI as mere mortal user michael, did:
>>>>> Click Lubuntu icon in lower left, then:
>>>>> Accessories
>>>>> File Manager PCManFM
>>>>> That then causes the CD-ROM to mount,
>>>>> (for a "real" server, I'd copy the ISO on the host and loop mount it)
>>>>> then ...
>>>>> # mount -o bind,ro,nosuid,nodev \
>>>>>
>>>>>  '/media/michael/Lubuntu 14.04.1 LTS i386'/install/netboot \
>>>>>> /var/lib/tftpboot
>>>>>>
>>>>>>  # restart tftpd-hpa
>>>>> # start isc-dhcp-server
>>>>> I then boot my PXE client
>>>>> For virtual, I'm doing:
>>>>> # virt-install --name=lubuntupxeci386 --pxe \
>>>>>
>>>>>  --disk=/var/tmp/lubuntu/lubuntupxeci386-sda --network=network=pxenet
>>>>>> \
>>>>>> --ram=512 --wait=-1 --os-type=linux --os-variant=debianwheezy \
>>>>>> --arch=i586 --virt-type kvm --hvm
>>>>>>
>>>>>>  Again, similarly, I do that host as a low-spec Partimus machine:
>>>>> i586 (Pentium)
>>>>> 512 MiB RAM
>>>>> 8 GiB hard drive
>>>>> From our PXE client, again, just showing non-defaults, and generally
>>>>> going with defaults for simplicity:
>>>>> Hostname: lubuntupxeci386
>>>>> Full name for the new user: Michael Paoli
>>>>> Username for your account: michael
>>>>> Choose a password for the new user: [not shown]
>>>>> Re-enter password to verify: [not shown]
>>>>> Write the changes to disks? <Yes>
>>>>> Continue
>>>>> ... and our PXE client installs successfully (did rather minimal
>>>>> software
>>>>> installation in this demo run, but could install more at installation
>>>>> time
>>>>> or after).
>>>>>
>>>>> And, ... just for informational purposes, since I did these as virtual
>>>>> machines and with their virtual hard drives on filesystem that uses
>>>>> deduplication and compression (and also did those files as sparse
>>>>> files), the actual on-drive storage used is rather minimal:
>>>>> $ (cd /var/tmp/lubuntu && ls -onsh lubuntupxe[cs]i386-sda)
>>>>> 574M -rw------- 1 0 8.0G Apr 12 08:29 lubuntupxeci386-sda
>>>>> 939M -rw------- 1 0 8.0G Apr 12 08:30 lubuntupxesi386-sda
>>>>> $
>>>>> # zfs get -o all all |
>>>>>
>>>>>  egrep '^lubuntu/lubuntu .* (compress|dedup|mountpoint|used )'
>>>>>>
>>>>>>  lubuntu/lubuntu  used                  1.48G                  -
>>>>>    -
>>>>> lubuntu/lubuntu  compressratio         2.94x                  -
>>>>>  -
>>>>> lubuntu/lubuntu  mountpoint            /var/tmp/lubuntu       -
>>>>>  local
>>>>> lubuntu/lubuntu  compression           gzip-9                 -
>>>>>  local
>>>>> lubuntu/lubuntu  dedup                 verify                 -
>>>>>  local
>>>>> #
>>>>>
>>>>>  From: "Michael Paoli" <Michael.Paoli at cal.berkeley.edu>
>>>>>
>>>>>> Subject: example PXE boot setup on Debian (Ubuntu/Lubuntu should be
>>>>>> relatively similar)
>>>>>> Date: Thu, 02 Apr 2015 03:58:33 -0700
>>>>>>
>>>>>>  From: "Tai Kedzierski" <dch.tai at gmail.com>
>>>>>>
>>>>>>> Subject: Re: [Tech] Partimus (PXE?) (nearly?) unattended install
>>>>>>> solution(s?)
>>>>>>> Date: Thu, 2 Apr 2015 11:26:53 +0100
>>>>>>>
>>>>>>> * Yeah I'm still stuck on PXE - I've had some pointers from Rab in
>>>>>>> EdLUG
>>>>>>> (basically, first, don't test using VirtualBox!) and Charlie's notes
>>>>>>> still
>>>>>>> to review. And Michael's notes when he has a moment :-)
>>>>>>>
>>>>>>>
>>>>>> Shouldn't be too hard with virtual (e.g. qemu-kvm, virtualbox, etc.),
>>>>>> but key bits to be aware of there: They typically give a NATed network
>>>>>> by default and including a built-in provided DHCP server on that
>>>>>> network.
>>>>>> Such generally conflicts with doing PXE boot - so one typically wants
>>>>>> to place the virtual host on a different network/subnet/VLAN, where
>>>>>> there isn't some conflicting DHCP/bootp server/service.  The only
>>>>>> other
>>>>>> slightly tricky bit with virtual and PXE - at least that I'm aware of
>>>>>> so far, is that non-intuitive bit on VirtualBox - where some interface
>>>>>> types don't support PXE boot (or need additional software or packages
>>>>>> for such interfaces - that seemed to be implied from some of what I
>>>>>> read about folks installing direct from Oracle rather than a linux
>>>>>> distribution's packaging thereof ... probably proprietary and/or non-
>>>>>> distribution restrictions on some extra bits for certain interface
>>>>>> types
>>>>>> to be able to PXE boot under VirtualBox - found no such issue with
>>>>>> qemu-kvm).
>>>>>>
>>>>>> This is example I have on my
>>>>>> Debian GNU/Linux 7.8 (wheezy) x86_64
>>>>>> "server" <cough, cough> (laptop) at home.
>>>>>> Looks like I mostly/initially based it upon:
>>>>>> https://wiki.debian.org/PXEBootInstall
>>>>>> (and probably from around 2012-03-11, as I made a few corrective edits
>>>>>> to that wiki page around then).
>>>>>>
>>>>>> I was also interested in, as feasible, being
>>>>>> able to PXE boot and then be able to select and install various
>>>>>> distributions - so as I'd left it off, it could be used to PXE boot
>>>>>> and install any of:
>>>>>> Debian GNU/Linux 7.8 (wheezy) x86_64
>>>>>> Debian GNU/Linux 7.8 (wheezy) i386
>>>>>> Ubuntu-Server 14.04.1 LTS amd64
>>>>>>
>>>>>> From the wee bit of notes I made of it regarding my
>>>>>> installation/configuration:
>>>>>> $ cat /srv/tftp/NOTES
>>>>>> http://http.debian.net/debian/dists/wheezy/main/installer-
>>>>>> i386/current/images/netboot/netboot.tar.gz
>>>>>> and:
>>>>>> http://http.debian.net/debian/dists/wheezy/main/installer-
>>>>>> amd64/current/images/netboot/netboot.tar.gz
>>>>>> mostly extracted to:
>>>>>> /srv/tftp
>>>>>> except for the differing:
>>>>>> lrwxrwxrwx 1 root root 35 2014-04-24 07:45:30.000000000 +0000
>>>>>> pxelinux.cfg -> debian-installer/amd64/pxelinux.cfg
>>>>>> lrwxrwxrwx 1 root root 34 2014-04-24 07:46:21.000000000 +0000
>>>>>> pxelinux.cfg -> debian-installer/i386/pxelinux.cfg
>>>>>> and also:
>>>>>> lrwxrwxrwx 1 root root 33 2014-04-24 07:45:30.000000000 +0000
>>>>>> pxelinux.0
>>>>>> -> debian-installer/amd64/pxelinux.0
>>>>>> lrwxrwxrwx 1 root root 32 2014-04-24 07:46:21.000000000 +0000
>>>>>> pxelinux.0
>>>>>> -> debian-installer/i386/pxelinux.0
>>>>>> but in the case of pxelinux.0, the ordinary files are identical, so
>>>>>> replaced the symbolic link with a hard link
>>>>>>
>>>>>> also from:
>>>>>> Ubuntu-Server 14.04 LTS "Trusty Tahr" - Release amd64 (20140416.2)
>>>>>> contents under:
>>>>>> install/netboot
>>>>>> mostly also placed here, except:
>>>>>> renamed version.info to version.info.ubuntu
>>>>>> renamed pxelinux.cfg to pxelinux.cfg:ubuntu-server:amd64
>>>>>> and left out symbolic links: pxelinux.0
>>>>>>
>>>>>> And further examining what I'd left in place in terms of mounts and
>>>>>> configuration files and such (other than or in addition to that noted
>>>>>> above, and mostly covered on:
>>>>>> https://wiki.debian.org/PXEBootInstall
>>>>>> )
>>>>>>
>>>>>> The relevant bits of data I have in /etc/fstab:
>>>>>> /dev/tigger/tftp /srv/tftp ext3 ro,nosuid,nodev,noatime 0 2
>>>>>> /var/tmp/ISOs/ubuntu-14.04.1-server-amd64.iso
>>>>>> /var/tmp/ISOs/ubuntu-14.04.1-server-amd64 iso9660
>>>>>> loop,ro,nosuid,nodev 0
>>>>>>
>>>>>> /var/tmp/ISOs/ubuntu-14.04.1-server-amd64/install/netboot/
>>>>>> ubuntu-installer
>>>>>> /srv/tftp/ubuntu-installer none bind,ro,nosuid,nodev 0 0
>>>>>> /var/tmp/ISOs/ubuntu-14.04.1-server-amd64/install/netboot/v
>>>>>> ersion.info
>>>>>> /srv/tftp/version.info.ubuntu none bind,ro,nosuid,nodev 0 0
>>>>>> Probably better to use location other than /var/tmp for things
>>>>>> intended
>>>>>> to be there "permanently" or more longer term, but in any case ...
>>>>>> Also, those last two bind mounts shown above, next to last is
>>>>>> directory
>>>>>> bind mounted atop directory, and the last one file mounted atop
>>>>>> (empty)
>>>>>> file.
>>>>>> My "NOTES" from above covers much of it, but in addition (not covered
>>>>>> by
>>>>>> that, and installed/configured under /srv/tftp/) we have:
>>>>>> $ < /srv/tftp/pxelinux.cfg/default expand
>>>>>> serial 0 9600
>>>>>> default debian-installer/i386/boot-screens/vesamenu.c32
>>>>>> timeout 0
>>>>>> label debian-i386
>>>>>>         menu label debian-i386
>>>>>>         config  pxelinux.cfg:i386/default
>>>>>> label debian-amd64
>>>>>>         menu label debian-amd64
>>>>>>         config  pxelinux.cfg:amd64/default
>>>>>> label ubuntu-server-amd64
>>>>>>         menu label ubuntu-server-amd64
>>>>>>         config pxelinux.cfg:ubuntu-server:amd64/default
>>>>>> That works as my default PXE boot menu that comes up, allowing
>>>>>> selections of:
>>>>>> debian-i386
>>>>>> debian-amd64
>>>>>> ubuntu-server-amd64
>>>>>> Each of which, when selected, then just chain loads the corresponding
>>>>>> stock menu from that flavor's PXE boot menu.
>>>>>> The
>>>>>> serial 0 9600
>>>>>> Allows that menu choice to also be made via the first (legacy) serial
>>>>>> port (if present), so serial console may be used to launch/control the
>>>>>> PXE boot and installation (can be quite handy for serial console
>>>>>> install, virtual machines, IPMI, etc., and doesn't particularly hurt
>>>>>> to
>>>>>> include that, even if it's not being used).
>>>>>>
>>>>>> That's mostly it ... except the IP addresses and network
>>>>>> configuration I
>>>>>> have is different than the example given on the referenced wiki page.
>>>>>>
>>>>>> And, comparing what I earlier noted to actual files under /srv/tftp
>>>>>> ...
>>>>>> What doesn't seem to be quite covered in those earlier NOTES:
>>>>>> $ ls -ld /srv/tftp/pxelinux.cfg /srv/tftp/pxelinux.cfg:[ai]*
>>>>>> drwxr-xr-x 2 root root 1024 Apr 28  2014 /srv/tftp/pxelinux.cfg
>>>>>> lrwxrwxrwx 1 root root   35 Apr 27  2014 /srv/tftp/pxelinux.cfg:amd64
>>>>>> ->
>>>>>> debian-installer/amd64/pxelinux.cfg
>>>>>> lrwxrwxrwx 1 root root   34 Apr 27  2014 /srv/tftp/pxelinux.cfg:i386
>>>>>> ->
>>>>>> debian-installer/i386/pxelinux.cfg
>>>>>> $
>>>>>>
>>>>>
>>> _______________________________________________
>>> Tech mailing list
>>> Tech at lists.partimus.org
>>> http://lists.partimus.org/listinfo.cgi/tech-partimus.org
>>>
>>
>>
>> _______________________________________________
>> Tech mailing list
>> Tech at lists.partimus.org
>> http://lists.partimus.org/listinfo.cgi/tech-partimus.org
>>
>>
>
>
> --
> Christian Einfeldt
>
> _______________________________________________
> Tech mailing list
> Tech at lists.partimus.org
> http://lists.partimus.org/listinfo.cgi/tech-partimus.org
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.partimus.org/pipermail/tech-partimus.org/attachments/20150414/0adcdf61/attachment-0002.htm>


More information about the Tech mailing list