Petitboot

A kexec based bootloader

Petitboot is a platform independent bootloader based on the Linux kexec warm reboot mechanism. Petitboot supports loading kernel, initrd and device tree files from any Linux mountable filesystem, plus can load files from the network using the FTP, SFTP, TFTP, NFS, HTTP and HTTPS protocols. Petitboot can boot any operating system that includes kexec boot support.

Petitboot includes an ncurses based user interface program. This user interface program can be used to boot the system remotely via telnet or ssh sessions. Multiple user interface programs can run simultaneously.

Petitboot is licensed under the GPLv2.

Screen Shots

NCURSES UI Over Telnet

Design & Features

Petitboot has a client-server design. The petitboot server, pb-discover, uses several event mechanisms to dynamically update its knowledge of available boot configurations as they become available or unavailable at run time. The petitboot client programs implement the petitboot user interfaces and display the curent boot configurations known by pb-discover.

pb-discover exposes a generic event mechanism that allows utility programs to provide boot configuration information. Petitboot includes utility programs to process boot configuration info from DHCP servers, and if configured to do so, will manage any boot configuration info received.

Source Code

The current petitboot sources can be found at ozlabs.org:

petitboot.git

Contact

Please send all comments and inquiries regarding petitboot to the petitboot mailing list:

petitboot@lists.ozlabs.org

Petitboot is currently maintained by Samuel Mendoza-Jonas.

About

The concept of petitboot and its initial implementation was the work of Benjamin Herrenschmidt.

The client-server design and considerable clean up work followed by Jeremy Kerr. Jeremy's petitboot pages, now out of date, can be found at the ozlabs.org Web site.

You can find the latest version of this document, and some other useful things here:

http://www.kernel.org/pub/linux/kernel/people/geoff/petitboot/petitboot.html