aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
blob: a0d277eccbe646865337b0182d0f25f39c85c40b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# Alpine Linux netboot

Welcome to the Alpine Linux netboot server.

Netboot provides kernel initramfs and modloop images to boot over the
network/internet. Booting from netboot is provided by the IPXE binaries
available in alpine-ipxe `apk add alpine-ipxe` or from
[this location](alpine-ipxe) for x86_64.

## Boot script

The default bootscript for alpine-ipxe is
**[https://boot.alpinelinux.org/boot.ipxe](boot.ipxe)** which will automatically
be fetched by alpine-ipxe. If you like to change this behaviour you will need to
build your own version of [ipxe](https://ipxe.org).

Some cloud providers (ie [packet.net](https://help.packet.net/technical/infrastructure/custom-ipxe))
support the loading of custom ipxe scripts/payloads to install an operating
system. You can chainload one of the ipxe loaders from [alpine-ipxe](alpine-ipxe).
Don't load the boot.ipxe script directly as image verifications will fail.

## Images

Images are hosted in the [Images](images) directory on boot.alpinelinux.org.
Current available images are:

* **edge**
  * [x86](images/edge/x86)
  * [x86_64](images/edge/x86_64)
  * [aarch64](images/edge/aarch64)
* **latest-stable**
  * [x86](images/latest-stable/x86)
  * [x86_64](images/latest-stable/x86_64)
  * [aarch64](images/latest-stable/aarch64)

## Signed images

Alpine Linux images are signed and can be verified only by making use of
[alpine-ipxe](alpine-ipxe). Using another ipxe loader will not trust our 
signatures and will result in failed boot.

## Boot options

### BIOS (x86_64)

* [pxe.lkrn](alpine-ipxe/ipxe.lkrn) - Linux kernel image that can be used by a bootloader/qemu
* [pxe.pxe](alpine-ipxe/ipxe.pxe) - PXE image for chainloading from a PXE environment
* [undionly.kpxe](alpine-ipxe/undionly.kpxe) - PXE image with UNDI support
* [ipxe.iso](alpine-ipxe/ipxe.iso) - ISO image to boot from any regular system
* [ipxe.usb](alpine-ipxe/ipxe.usb) - disk image to write to (USB) block device

### UEFI (x86_64)

* [ipxe.efi](alpine-ipxe/ipxe.efi) UEFI executable

## Updates

Netboot images are updated every night automatically if any package in the
dependecy tree (kernel and alpine-base) has been updated. Regular packages are
updated automatically via our package repositories.

## Testing netboot

The easiest way to test is by using Qemu directly with the ipxe kernel image.

`apk add qemu-system-x86_64 alpine-ipxe`

`qemu-system-x86_64 -m 512M -enable-kvm -kernel /usr/share/alpine-ipxe/ipxe.lkrn -curses`

**NOTE**: you need a minimum of 256M of memory to boot alpine in network mode
due to the size of our initramfs and modloop (kernel modules).