Skip to content

Commit

Permalink
Update some pxe docs
Browse files Browse the repository at this point in the history
  • Loading branch information
antonym committed Feb 12, 2025
1 parent 19f4795 commit 11a464f
Show file tree
Hide file tree
Showing 4 changed files with 165 additions and 26 deletions.
44 changes: 44 additions & 0 deletions docs/kb/pxe/almalinux.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---
id: almalinux
title: PXE Booting the AlmaLinux Installer
sidebar_label: AlmaLinux
description: PXE Booting the AlmaLinux Installer using Kickstart
hide_table_of_contents: true
---

## Installer Kernels

AlmaLinux maintains installer kernels that are a lightweight way to load the installer and then stream packages over the network as needed. The installer kernels are located at:

| URL | Description |
| --- | ----------- |
| `http://repo.almalinux.org`| Base URL for AlmaLinux mirrors |
| `almalinux/${version}/BaseOS/${arch}/os/images/pxeboot/` | Directory containing the installer kernels |
| `${version}` | Version (e.g., 8, 9, etc) |
| `${arch}` | Architecture (e.g., x86_64, aarch64) |
| `vmlinuz` | Kernel filename |
| `initrd.img` | Initrd filename |

In order to load them, you'll need to use a boot snippet in iPXE similar to:

```bash
set install_params inst.ks=http://my.kickstart.com/ks.cfg inst.repo=http://repo.almalinux.org/almalinux/$version/BaseOS/$arch/os/
set mirror http://repo.almalinux.org
set base_dir almalinux
set version 8
set arch x86_64
set dir ${mirror}/${base_dir}/${version}/BaseOS/${arch}/os/images/pxeboot

kernel ${dir}/vmlinuz ${install_params} -- quiet
initrd ${dir}/initrd.img
boot
```

If you want to use a [Kickstart](https://wiki.almalinux.org/documentation/kickstart.html) URL for automation, you can add this to the kernel line:

```bash
set ksurl http://my.kickstart.com/ks.cfg
inst.ks=${ksurl}
```

For more examples, you can view the netboot.xyz configuration for AlmaLinux [here](https://github.com/netbootxyz/netboot.xyz/blob/master/roles/netbootxyz/templates/menu/almalinux.ipxe.j2).
53 changes: 53 additions & 0 deletions docs/kb/pxe/debian.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
---
id: debian
title: PXE Booting the Debian Installer
sidebar_label: Debian
description: PXE Booting the Debian Installer
hide_table_of_contents: true
---

## Installer Kernels

Debian maintains installer kernels that are a lightweight way to load the Debian installer and then stream packages over the network as needed. The installer kernels are located at:

| URL | Description |
| --- | ----------- |
| `http://deb.debian.org` | Base URL for Debian mirrors |
| `debian/dists/${version}/main/installer-${arch}/current/images/netboot/` | Directory containing the installer kernels |
| `${version}` | Version (e.g., bullseye, bookworm, etc) |
| `${arch}` | Architecture (e.g., amd64, arm64) |
| `linux` | Kernel filename |
| `initrd.gz` | Initrd filename |

In order to load them, you'll need to use a boot snippet in iPXE similar to:

```bash
set install_params auto=true priority=critical
set mirror http://deb.debian.org
set base_dir debian
set debian_version bookworm
set arch amd64
set mirrorcfg mirror/suite=${debian_version}
set dir ${mirror}/${base_dir}/dists/${version}/main/installer-${arch}/current/images/netboot/debian-installer/amd64/

kernel ${dir}/linux ${install_params} ${mirrorcfg} -- quiet initrd=initrd.gz
initrd ${dir}/initrd.gz
boot
```

If you want to use a [preseed](https://www.debian.org/releases/stable/amd64/apb.en.html) URL for automation, you can add this to the kernel line:

```bash
set preseedurl http://my.preseed.com/preseed.cfg
preseed/url=${preseedurl}
```

For more examples, you can view the netboot.xyz configuration for Debian [here](https://github.com/netbootxyz/netboot.xyz/blob/master/roles/netbootxyz/templates/menu/debian.ipxe.j2).

## Live Boot

Debian also provides a number of Live Boot ISOs that will boot an OS directly into memory and can be used immediately without doing an install or modifying the hard drive. The Live OS will also include the installer as well. These are great for evaluating other desktops that you might want to try out without doing a full install.

| Distribution | Website |
| :--- | :--- |
| Debian Live | [https://www.debian.org/CD/live/](https://www.debian.org/CD/live/) |
46 changes: 46 additions & 0 deletions docs/kb/pxe/rockylinux.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
---
id: rockylinux
title: PXE Booting the Rocky Linux Installer
sidebar_label: Rocky Linux
description: PXE Booting the Rocky Linux Installer using Kickstart
hide_table_of_contents: true
---

## Installer Kernels

Rocky Linux maintains installer kernels that are a lightweight way to load the installer and stream packages over the network as needed. Rocky Linux is a binary compatible clone of RHEL (Red Hat Enterprise Linux) and is already supported by numerous large, financially strong sponsors.

The installer kernels are located at:

| URL | Description |
| --- | ----------- |
| `http://dl.rockylinux.org` | Base URL for Rocky Linux mirrors |
| `pub/rocky/${version}/BaseOS/${arch}/os/images/pxeboot/` | Directory containing the installer kernels |
| `${version}` | Version (e.g., 8, 9, etc) |
| `${arch}` | Architecture (e.g., x86_64, aarch64) |
| `vmlinuz` | Kernel filename |
| `initrd.img` | Initrd filename |

In order to load them, you'll need to use a boot snippet in iPXE similar to:

```bash
set install_params inst.ks=http://my.kickstart.com/ks.cfg inst.repo=http://dl.rockylinux.org/pub/rocky/${version}/BaseOS/${arch}/os
set mirror http://dl.rockylinux.org
set base_dir pub/rocky
set version 9
set arch x86_64
set dir ${mirror}/${base_dir}/${version}/BaseOS/${arch}/os/images/pxeboot

kernel ${dir}/vmlinuz ${install_params} -- quiet
initrd ${dir}/initrd.img
boot
```

If you want to use a [Kickstart](https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/automatically_installing_rhel/automated-installation-workflow_rhel-installer) URL for automation, you can add this to the kernel line:

```bash
set ksurl http://my.kickstart.com/ks.cfg
inst.ks=${ksurl}
```

For more examples, you can view the netboot.xyz configuration for Rocky Linux [here](https://github.com/netbootxyz/netboot.xyz/blob/master/roles/netbootxyz/templates/menu/rockylinux.ipxe.j2).
48 changes: 22 additions & 26 deletions docs/kb/pxe/ubuntu.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,52 +8,48 @@ hide_table_of_contents: true

## Installer Kernels

Ubuntu maintains installer kernels that are lightweight way to load the Ubuntu installer and then stream packages over the network as needed. The installer kernels are located at:
Ubuntu maintains installer kernels that are a lightweight way to load the Ubuntu installer and then stream packages over the network as needed. The installer kernels are located at:

```bash
# http://archive.ubuntu.com or other ubuntu mirrors
#
# (${version} == xenial, bionic, etc)
# (${arch} == amd64, i386)

# original release directory:
# ubuntu/dists/${version}/main/installer-${arch}/current/images/netboot/
#
# updated release directory which contain newer kernels and updates:
# ubuntu/dists/${version}-updates/main/installer-${arch}/current/images/netboot/
#
# kernel filename: linux
# initrd filename: initrd.gz
```
| URL | Description |
| --- | ----------- |
| `http://archive.ubuntu.com` | Base URL for Ubuntu mirrors |
| `${version}` | Version (e.g., focal, jammy, etc) |
| `${arch}` | Architecture (e.g., amd64, arm64) |
| `ubuntu/dists/${version}/main/installer-${arch}/current/images/netboot/` | Directory containing the installer kernels |
| `linux` | Kernel filename |
| `initrd.gz` | Initrd filename |

In order to load them, you'll need use a boot snippet in iPXE similar to:
In order to load them, you'll need to use a boot snippet in iPXE similar to:

```bash
set install_params auto=true priority=critical
set mirror http://archive.ubuntu.com

set mirror http://releases.ubuntu.com
set base_dir ubuntu
set ubuntu_version bionic
set arch amd64
set codename jammy
set version_number 22.04
set os_arch amd64
set mirrorcfg mirror/suite=${ubuntu_version}
set dir ${mirror}/${base_dir}/dists/${version}/main/installer-${arch}/current/images/netboot
set ubuntu_iso_url http://releases.ubuntu.com/${codename}/ubuntu-${version_number}-live-server-${os_arch}.iso
set install_params autoinstall ip=dhcp ds=nocloud-net;s=http://my.autoinstall.com/ url=${ubuntu_iso_url}

kernel ${dir}/linux ${install_params} ${mirrorcfg} -- quiet initrd=initrd.gz
initrd ${dir}/initrd.gz
boot
```

If you want to use a [preseed](https://help.ubuntu.com/lts/installation-guide/example-preseed.txt) url for automation, you can add this to the kernel line:
If you want to use an [autoinstall](https://canonical-subiquity.readthedocs-hosted.com/en/latest/howto/autoinstall-quickstart.html) URL for automation, you can add this to the kernel line:

```bash
set preseedurl http://my.preseed.com/preseed.cfg
preseed/url=${preseedurl}
set autoinstall_url http://my.autoinstall.com/
autoinstall ds=nocloud-net;s=${autoinstall_url}
```

For more examples you can view the netboot.xyz configuration for Ubuntu [here](https://github.com/netbootxyz/netboot.xyz/blob/master/roles/netbootxyz/templates/menu/ubuntu.ipxe.j2).
For more examples, you can view the netboot.xyz configuration for Ubuntu [here](https://github.com/netbootxyz/netboot.xyz/blob/master/roles/netbootxyz/templates/menu/ubuntu.ipxe.j2).

## Live Boot

Ubuntu also provides a number of Live Boot ISOs that will boot an OS directly into memory and can be used immediately without doing an install or modifying the hard drive. The Live OS will also include the installer as well. These are great for evaluating other desktops that you might want to try out without doing a full install.
Ubuntu also provides a number of Live Boot ISOs that will boot an OS directly into memory and can be used immediately without doing an install or modifying the hard drive. The Live OS will also include the installer as well. These are great for evaluating other desktops that you might want to try out without doing a full install.

| Distribution | Website |
| :--- | :--- |
Expand Down

0 comments on commit 11a464f

Please sign in to comment.