Stateless Linux Tutorial

David Malcolm

Legal Notice

1. Overview
1.1. Stateless Linux Servers
1.2. Stateless Linux Clients
2. Setting up the server
3. Creating a prototype system image
4. Creating a snapshot of a prototype system
5. Setting up diskless clients
6. Setting up caching clients
7. Setting up live CD clients
8. Managing a prototype system
8.1. Pushing new snapshots

1. Overview

In our examples we assume that you are the system administrator for an organisation called, and that you need to maintain large numbers of identical machines. You will be maintaining a small number of prototype systems, each of which is a paragon representing a large number of real machines. When you are happy with the state of a prototype system, you will have a way of taking a snapshot in time of that system, and ensuring that all of the real machines use that snapshot.

1.1. Stateless Linux Servers

A Stateless Linux server provides the following:

  • It stores each of the prototype systems.

  • It stores snapshots in time of those systems.

  • It stores home directories for the users of the client machines.

  • It maintains an LDAP directory containing information on which client machines should be running which snapshots of which prototype system

1.2. Stateless Linux Clients

You will also set up a number of client machines. There are several types of client machine you might have in such a system:

  • Diskless clients, which boot directly from a snapshot stored on the server

  • Caching clients, which boot from a copy of a snapshot, cached locally on a hard drive.

  • Live CD clients, which boot from a copy of a snapshot burned onto a CD

  • Thick clients, which don't use snapshots and must be maintained by another means.

The root filesystem is mounted read-only in the case of the first three types of clients, since all management will be done on the server.

[Tip]Making changes/additions to this document

This document is available at

For reporting errors in the document, or for requesting changes or additions, use this bugzilla template, which pre-fills most of the bug report.

Ideally, if you are requesting a change or addition, you should attach a patch, generated using diff -u against the DocBook XML source of the document. Otherwise, plain text showing before and after is sufficient.

You can obtain the DocBook XML source from anonymous CVS by typing:

cvs -z3 login
Press Enter to enter an empty password
cvs -z3 co fedora-docs/common
cvs -z3 co fedora-docs/xsl
cvs -z3 co fedora-docs/stylesheet-images
cvs -z3 co fedora-docs/css
cvs -z3 co fedora-docs/stateless-linux

You will find the DocBook XML source in fedora-docs/stateless-linux.

You can generate an HTML version of the document from the DocBook XML source by typing:

cd fedora-docs/stateless-linux

You should then be able to find the generated HTML in fedora-docs/stateless-linux/stateless-linux-HOWTO-en

You can find more information about working with Fedora documentation here