This utility generates a netboot directory tree from an Ubuntu Server Live ISO image, an image based on the subiquity installer.
Project description
ubuntu-server-netboot
This utility generates a netboot directory tree from an Ubuntu Server Live ISO image, an image based on the subiquity
installer. The tree contents are similar to the contents of the netboot.tar.gz
file that debian-installer builds provide. Example:
$ ./ubuntu-server-netboot --url http://releases.ubuntu.com/focal/ubuntu-20.04.2-live-server-amd64.iso
INFO: Downloading http://releases.ubuntu.com/focal/ubuntu-20.04.2-live-server-amd64.iso
INFO: Attempting to download http://archive.ubuntu.com/ubuntu/dists/focal-updates/main/uefi/grub2-amd64/current/grubx64.efi.signed
INFO: Netboot generation complete: /tmp/tmpo54145m2/ubuntu-installer
The --url
parameter is used for 2 reasons:
ubuntu-server-netboot
will download the image at runtime to extract the necessary files from it.- Subiquity-based installs need to download an image at install-time.
ubuntu-server-netboot
will generate configuration files that point the installer to this URL.
If you have a local copy of the ISO, you can point to it with the --iso
parameter to avoid having ubuntu-server-netboot
download an extra copy. Just be sure that --iso
and --url
point to the same version of the ISO.
Optionally, you can place --autoinstall-url
to tell the netbooting process to enable subiquity automation. See our autoinstall example and [the autoinstall and Automated Server Installs
Introduction of Ubuntu Server guide](Automated Server Installs Introduction) for more details.
You can also add additional kernel command line arguments (e.g. "console=ttyS0"
) to the generated configuration files using the --extra-args
parameter.
Usage of the Generated Files
Copy the files generated under the interim folder /tmp/tmpxxx/ubuntu-installer/
to your tftp root folder for netboot, for example /srv/tftp
or /var/lib/tftpboot
.
You may check your tftpd configuration of the root directory, for instance, tftpd-hpa is /etc/default/tftpd-hpa
. Let's copy:
$ sudo cp -r /tmp/tmpxxx/ubuntu-installer/* /srv/tftp
Then your netboot server is ready to go if the corresponding DHCP is set up.
Troubleshooting
For more details on setting up a PXE environment for x86 systems using a legacy BIOS, see this discourse post.
For more details on setting up a PXE environment for UEFI-based systems, see this discourse post.
Dependencies
Today ubuntu-server-netboot
needs to run on Ubuntu or another Debian derivative with the following packages installed:
- genisoimage
- mtools
- python3-distro-info
- pxelinux (x86-only)
- syslinux-common (x86-only)
This script is tested with Ubuntu 18.04 ("bionic beaver") and above.
Contribution and Development
Please report bugs to this github issue tracker. The github templates including "Issue" and "Pull requests" are originally forked from this "cookiecutter" templates for python.
Place pytest
to cover the basic test sets.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file ubuntu-server-netboot-0.1.1.tar.gz
.
File metadata
- Download URL: ubuntu-server-netboot-0.1.1.tar.gz
- Upload date:
- Size: 9.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.4 CPython/3.6.9 Linux/5.4.0-73-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3adf17ceba0f8a051dbf2d78c81c5a375df9d4cf53747ca480b34e3312a5dbec |
|
MD5 | bb21a7949ac8e4d6eccb357bf2304399 |
|
BLAKE2b-256 | 08b561dd6913eef3ac41864264056e3c5cc7bd4233b6c815a442c882a44daa94 |
File details
Details for the file ubuntu_server_netboot-0.1.1-py3-none-any.whl
.
File metadata
- Download URL: ubuntu_server_netboot-0.1.1-py3-none-any.whl
- Upload date:
- Size: 10.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.4 CPython/3.6.9 Linux/5.4.0-73-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba1a3c7e2a1f6d23d66b28d98fa326758f4ee8813d76ab7d5724b86747fa4bfa |
|
MD5 | 83c0e73c95e772b07f335d5d397ed487 |
|
BLAKE2b-256 | 1fe9ce510b599ba4c52d3bc9b3034bedb6f8dd0d6ddd3964234738edd9e2da6a |