Live Systems Manual

Table of Contents

About

About this manual

About this manual

For the impatient

Terms

Authors

Contributing to this document

Applying changes

Translation

About the ${project}

About the ${project}

Motivation

What is wrong with current live systems

Why create our own live system?

Philosophy

Only unchanged packages from Debian “main”

No package configuration of the live system

Contact

User

Installation

Installation

Requirements

Installing live-build

From the Debian repository

From source

From 'snapshots'

Installing live-boot and live-config

From the Debian repository

From source

From 'snapshots'

The basics

The basics

What is a live system?

Downloading prebuilt images

Using the web live image builder

Web builder usage and caveats

First steps: building an ISO hybrid image

Using an ISO hybrid live image

Burning an ISO image to a physical medium

Copying an ISO hybrid image to a USB stick

Using the space left on a USB stick

Booting the live medium

Using a virtual machine for testing

Testing an ISO image with QEMU

Testing an ISO image with VirtualBox

Building and using an HDD image

Building a netboot image

DHCP server

TFTP server

NFS server

Netboot testing HowTo

Qemu

Webbooting

Getting the webboot files

Booting webboot images

Overview of tools

Overview of tools

The live-build package

The lb config command

The lb build command

The lb clean command

The live-boot package

The live-config package

Managing a configuration

Managing a configuration

Dealing with configuration changes

Why use auto scripts? What do they do?

Use example auto scripts

Clone a configuration published via Git

Customizing contents

Customization overview

Build time vs. boot time configuration

Stages of the build

Supplement lb config with files

Customization tasks

Customizing package installation

Customizing package installation

Package sources

Distribution, archive areas and mode

Distribution mirrors

Distribution mirrors used at build time

Distribution mirrors used at run time

Additional repositories

Choosing packages to install

Package lists

Using metapackages

Local package lists

Local binary package lists

Generated package lists

Using conditionals inside package lists

Removing packages at install time

Desktop and language tasks

Kernel flavour and version

Custom kernels

Installing modified or third-party packages

Using packages.chroot to install custom packages

Using an APT repository to install custom packages

Custom packages and APT

Configuring APT at build time

Choosing apt or aptitude

Using a proxy with APT

Tweaking APT to save space

Passing options to apt or aptitude

APT pinning

Customizing contents

Customizing contents

Includes

Live/chroot local includes

Binary local includes

Hooks

Live/chroot local hooks

Boot-time hooks

Binary local hooks

Preseeding Debconf questions

Customizing run time behaviours

Customizing run time behaviours

Customizing the live user

Customizing locale and language

Persistence

The persistence.conf file

Using more than one persistence store

Using persistence with encryption

Customizing the binary image

Customizing the binary image

Bootloaders

ISO metadata

Customizing Debian Installer

Customizing Debian Installer

Types of Debian Installer

Customizing Debian Installer by preseeding

Customizing Debian Installer content

Project

Contributing to the project

Contributing to the project

Making changes

Reporting bugs

Reporting bugs

Known issues

Rebuild from scratch

Use up-to-date packages

Collect information

Isolate the failing case if possible

Use the correct package to report the bug against

At build time while bootstrapping

At build time while installing packages

At boot time

At run time

Do the research

Where to report bugs

Coding Style

Coding Style

Compatibility

Indenting

Wrapping

Variables

Miscellaneous

Procedures

Procedures

Major Releases

Point Releases

Last Point Release of a Debian Release

Point release announcement template

Git repositories

Git repositories

Handling multiple repositories

Examples

Examples

Examples

Using the examples

Tutorial 1: A default image

Tutorial 2: A web browser utility

Tutorial 3: A personalized image

First revision

Second revision

A VNC Kiosk Client

A base image for a 128MB USB key

A localized GNOME desktop and installer

Appendix

Style guide

Style guide

Guidelines for authors

Linguistic features

Procedures

Guidelines for translators

Translation hints