Debian Live Manual


1. À propos de ce manuel

1.1 For the impatient
1.2 Terminologie
1.3 Auteurs
1.4 Contribuer à ce document
1.4.1 Appliquer des patches
1.4.2 Translation

2. About the Debian Live Project

2.1 Motivation
2.1.1 What is wrong with current live systems
2.1.2 Why create our own live system?
2.2 Philosophy
2.2.1 Only unchanged, official packages
2.2.2 No package configuration of the live system
2.3 Contact


3. Installation

3.1 Requirements
3.2 Installing live-build
3.2.1 From the Debian repository
3.2.2 From source
3.2.3 From 'snapshots'
3.3 live-boot and live-config
3.3.1 From the Debian repository
3.3.2 From source
3.3.3 From 'snapshots'

4. The basics

4.1 What is a live system?
4.2 First steps: building an ISO image
4.2.1 Testing an ISO image with Qemu
4.2.2 Testing an ISO image with virtualbox-ose
4.2.3 Burning an ISO image to a physical medium
4.3 Building a USB/HDD image
4.3.1 Copying USB/HDD image to a USB stick
4.3.2 Testing a USB/HDD image with Qemu
4.3.3 Using the space left on a USB stick
4.4 Building a netboot image
4.4.1 DHCP server
4.4.2 TFTP server
4.4.3 NFS server
4.4.4 Netboot testing HowTo
4.4.5 Qemu
4.4.6 VMWare Player

5. Overview of tools

5.1 live-build
5.1.1 The lb config command
5.1.2 The lb build command
5.1.3 The lb clean command
5.2 The live-boot package
5.3 The live-config package

6. Managing a configuration

6.1 Use auto to manage configuration changes
6.2 Example auto scripts

7. Customization overview

7.1 Build time vs. boot time configuration
7.2 Stages of the build
7.3 Supplement lb config with files
7.4 Customization tasks

8. Customizing package installation

8.1 Package sources
8.1.1 Distribution, archive areas and mode
8.1.2 Distribution mirrors
8.1.3 Distribution mirrors used at build time
8.1.4 Distribution mirrors used at run time
8.1.5 Additional repositories
8.2 Choosing packages to install
8.2.1 Choosing a few packages
8.2.2 Package lists
8.2.3 Predefined package lists
8.2.4 Local package lists
8.2.5 Local binary package lists
8.2.6 Extending a provided package list using includes
8.2.7 Using conditionals inside package lists
8.2.8 Tasks
8.2.9 Desktop and language tasks
8.3 Installing modified or third-party packages
8.3.1 Using chroot_local-packages to install custom packages
8.3.2 Using an APT repository to install custom packages
8.3.3 Custom packages and APT
8.4 Configuring APT at build time
8.4.1 Choosing apt or aptitude
8.4.2 Using a proxy with APT
8.4.3 Tweaking APT to save space
8.4.4 Passing options to apt or aptitude
8.4.5 APT pinning

9. Customizing contents

9.1 Includes
9.1.1 Live/chroot local includes
9.1.2 Binary local includes
9.1.3 Binary includes
9.2 Hooks
9.2.1 Live/chroot local hooks
9.2.2 Boot-time hooks
9.2.3 Binary local hooks
9.3 Preseeding Debconf questions

10. Customizing run time behaviours

10.1 Customizing the live user
10.2 Customizing locale and language
10.3 Persistence
10.3.1 Full persistence
10.3.2 Home automounting
10.3.3 Snapshots
10.3.4 Persistent SubText
10.3.5 Partial remastering

11. Customizing the binary image

11.1 Bootloader
11.2 ISO metadata

12. Customizing Debian Installer

12.1 Types of Debian Installer
12.2 Customizing Debian Installer by preseeding
12.3 Customizing Debian Installer content


13. Reporting bugs

13.1 Known issues
13.2 Rebuild from scratch
13.3 Use up-to-date packages
13.4 Collect information
13.5 Isolate the failing case if possible
13.6 Use the correct package to report the bug against
13.6.1 At build time whilst bootstrapping
13.6.2 At build time whilst installing packages
13.6.3 At boot time
13.6.4 At run time
13.7 Do the research
13.8 Where to report bugs

14. Coding Style

14.1 Compatibility
14.2 Indenting
14.3 Wrapping
14.4 Variables
14.5 Miscellaneous

15. Procedures

15.1 Udeb Uploads
15.2 Major Releases
15.3 Point Releases
15.3.1 Point release announcement template


16. Examples

16.1 Using the examples
16.2 Tutorial 1: A standard image
16.3 Tutorial 2: A web browser utility
16.4 Tutorial 3: A personalized image
16.4.1 First revision
16.4.2 Second revision
16.5 A VNC Kiosk Client
16.6 A base image for a 128M USB key
16.7 A localized KDE desktop and installer

Debian Live Manual


3. Installation

3.1 Requirements

Building Debian Live images has very few system requirements:

  • Super user (root) access
  • An up-to-date version of live-build
  • A POSIX-compliant shell, such as bash or dash.
  • debootstrap or cdebootstrap
  • Linux 2.6.x
  • Note that using Debian or a Debian-derived distribution is not required - live-build will run on almost any distribution with the above requirements.

    3.2 Installing live-build

    You can install live-build in a number of different ways:

  • From the Debian repository
  • From source
  • From snapshots
  • If you are using Debian, the recommended way is to install live-build via the Debian repository.

    3.2.1 From the Debian repository

    Simply install live-build like any other package:

       # apt-get install live-build


       # aptitude install live-build

    3.2.2 From source

    live-build is developed using the Git version control system. On Debian systems, this is provided by the git package. To check out the latest code, execute:

       $ git clone git://

    You can build and install your own Debian package by executing:

       $ cd live-build
       $ dpkg-buildpackage -rfakeroot -b -uc -us
       $ cd ..

    Now install whichever of the freshly built .deb files you were interested in, e.g.

       # dpkg -i live-build_2.0.8-1_all.deb

    You can also install live-build directly to your system by executing:

       # make install

    and uninstall it with:

       # make uninstall

    3.2.3 From 'snapshots'

    If you do not wish to build or install live-build from source, you can use snapshots. These are built automatically from the latest version in Git and are available on ‹›.

    3.3 live-boot and live-config

    Note: You do not need to install live-boot or live-config on your system to create customized Debian Live systems. However, doing so will do no harm and is useful for reference purposes.

    3.3.1 From the Debian repository

    Both live-boot and live-config are available from the Debian repository as per Installing live-build.

    3.3.2 From source

    To use the latest source from git, you can follow the process below. Please ensure you are familiar with the terms mentioned in Terms.

  • Checkout the live-boot and live-config source
  •    $ git clone git://
       $ git clone git://

    Consult the live-boot and live-config man pages for details on customizing if that is your reason for building these packages from source.

  • Build live-boot and live-config .deb files
  • You must build either on your target distribution or in a chroot containing your target platform: this means if your target is Squeeze then you should build against Squeeze.

    Use a personal builder such as pbuilder or sbuild if you need to build live-boot for a target distribution that differs from your build system. For example, for Squeeze live images, build live-boot in a Squeeze chroot. If your target distribution happens to match your build system distribution, you may build directly on the build system using dpkg-buildpackage (provided by the dpkg-dev package):

       $ cd live-boot
       $ dpkg-buildpackage -b -uc -us
       $ cd ../live-config
       $ dpkg-buildpackage -b -uc -us

  • Use all generated .deb files
  • As live-boot and live-config are installed by live-build system, installing the packages in the host system is not sufficient: you should treat the generated .deb files like any other custom packages. Please see Customizing package installation for more information. You should pay particular attention to Additional repositories.

    3.3.3 From 'snapshots'

    You can let live-build automatically use the latest snapshots of live-boot and live-config by configuring a third-party repository in your live-build configuration directory. Assuming you have already created a configuration tree with lb config:

       $ lb config --repository