How to Create a Custom Debian Live CD through the Web

If Debian means one thing, it’s functionality. You typically don’t go to Debian for cutting-edge features or fancy bells and whistles, but if you’re after an extremely versatile, stable, and dependable Linux, it can’t be beat. One of Debian’s newer offerings is the ability to create a custom Live CD directly from their website. You choose your options, they generate the image. Like all things Debian, it’s not flashy, you’ll get no AJAX animations or jQuery effects, just a functional, flexible, and powerful tool, and here’s how to use it.

Basic Settings

Click here to open the Web Image Builder. By default it will only show the basic options for building your CD.

debianlive-basic

binary-images specifies the type of image you wish to generate. Under most circumstances, you’ll want to leave that at the standard ISO CD format.

Under distribution, you choose which release of Debian to use for the install. In short, Debian always has three releases available – stable, testing, and unstable. The current stable release is codenamed Lenny and the current testing is Squeeze. Unstable is always Sid. For maximum dependability choose Lenny (stable), but historically the testing branch functions quite well as a desktop.

The packages-lists option provides a simple way to select from a predefined group of packages. For example, if you want to run a home studio in KDE, there just so happens to be a studio-kde package.

Presumably, the tasks section allows you to specify certain tasks for the build, however this feature seems to be almost entirely undocumented, which is rare with Debian tools.

packages is a list of the packages you wish to include in your CD that are not part of the lists you selected previously. This can include anything in the Debian repositories, from media players like VLC to recovery tools like gparted.

Advanced Bootstrap Options

If all we could set was the basic options, this utility wouldn’t be especially useful. The next section of config, which can be accessed by clicking Advanced Bootstrap Options, gives us a few more important settings.

debianlive-bootstrap

Currently the architecture option only provides 386 style processors. This is a broad architecture, as compared to the likes of SPARC or PowerPC. You’ll set more a specific CPU type (686, 64-bit, etc) in a later section.

bootstrap-flavour is referring to the packages that will be involved in building the base system. Unless you’re trying to make your CD image particularly tiny, you’ll probably want to leave this at standard.

Leave mirror-bootstrap alone, as that will grab packages right from the build server, but you may want to set mirror-binary to your region. Users in the Unites States, for example, may wish to change http://ftp.de.debian.org/debian/ to http://ftp.us.debian.org/debian/.

mirror-binary-security can be safely left alone, but if you intend to use non-open software (Flash, Skype, etc) you’ll want to change archive-areas to include “contrib” and “non-free”.

Advanced Chroot Options

As promised, this is the section where you can define a more specific CPU architecture, as well as some other handy options.

debianlive-chroot

When chroot-filesystem is set to squashfs, the files on your live CD will be compressed, giving you more space for applications. Generally this is what you want.

linux-flavours is where you can define your CPU architecture in more detail. Listed in the combo box are all supported 386-style CPU types, including images designed for virtual machines.

Strangely, security and symlinks seem to be two more largely undocumented features. Some limited testing indicates security may be related to SELinux configuration.

With sysvinit, you can decide whether or not you want to use the somewhat deprecated SysV Init system. Unless you have a particular reason to use it, and you’d probably know if you did, leave this setting at False.

Advanced Binary Options

As most of the options here are on the more technical side and do not require adjustment under normal circumstances, this section will focus most on the options a user is most likely to wish to change.

debianlive-binary

bootloader will let you choose between syslinux and GRUB. Syslinux is simpler and is the standard bootloader for Live CDs, but GRUB can provide more options. Unless you have a reason to use GRUB, Syslinux is the safest and simplest choice.

The debian-installer option is where you decide whether or not you’d like to support installation from your live media. According to the Debian Live team, this isn’t exactly in the spirit of the system (an official Debian install CD may be a better choice), but is supported nonetheless.

If you want the contents of your CD encrypted, you can simply set the encryption flag to the desired level of encryption.

Advanced Source Options

There are only two options here, source and source-images. The former is the decision on whether or not to include source code in your CD, and the latter is the format in which it will be stored.

Conclusion

When you’ve finished your CD, the server will take a few minutes to build your image and notify you via email when it’s ready for download. As usual, the Debian developers have come up with a useful tool to get the job done. Will it win any Beautiful Web Site awards? Probably not. Will it build a custom Debian live CD to your specifications? Absolutely.

20 comments

  1. This is an absolute top article, clear in instructions and a sober, ease to understand language — even for all of us non-english readers. Thank you so much!
    Best wishes
    Toby

  2. I’d love the ability to add the ‘contrib’ and ‘non-free’ branches of the standard repos, and the ability to add the debian-multimedia repo. Also, uploading a custom /etc/skel/ set of files would be grand…

    but, as this is a new service, this doesn’t seem to be an available option. still, a very cool tool!

    • Contrib and Non-free can be added in the “archive areas” of Advanced Bootstrap Options.

      I agree about /etc/skel though, that would be a nice feature.

      • > Contrib and Non-free can be added in the “archive areas” of Advanced Bootstrap Options.

        Actually, Contrib and Non-free CANNOT currently be added in the “archive areas” of Advanced Bootstrap Options. The default “main” option here cannot be deleted or typed over (makes sense), and yet the entry text-box currently prohibits adding these alternative package types.

        • I’m sorry, you seem to be correct about that. I hadn’t changed that setting myself but it sure looks like every other text entry box.

          My apologies, that was an incorrect assumption.

  3. I suspect the “tasks” item is to allow one or more task type from the “tasksel” tool to be added to the LiveCD. The tool allows for one-stop installs of items such as:

    – Web Server
    – Database Server
    – GNOME Workstation
    – KDE Workstation

    and lots more… Just makes it easier to get some default functionality with less work, as a smaller number of tasks need to be declared than specific packages.

  4. Nice guidance and list of Debian LiveCD build options :)
    At the same time, is there a SINGLE/(=solitary) webpage which describes the basic
    differences between all the Debian Live system package-lists ???
    Might be a very useful thing to have available.

    Here is the current list of these “–package-lists”:
    —————-
    debian-forensics
    debian-junior
    debian-live
    debian-science
    gnome
    gnome-core
    gnome-full
    gnome-junior
    gnustep
    kde
    kde-core
    kde-extra
    kde-full
    kde-junior
    lxde
    minimal
    rescue
    standard
    standard-x11
    studio
    studio-gnome
    studio-kde
    studio-xfce
    xfce
    xfce-junior

    • I have wondered the same thing, and so far I have not found a single document describing all the groups. Several of them (such as Debian Junior) have their own pages but most are undocumented.

      I suppose that speaks to the relative newness of the project, as normally Debian is extremely thorough about documentation.

  5. From article:

    > Presumably, the tasks section allows you to specify certain tasks for the build, however
    > this feature seems to be almost entirely undocumented, which is rare with Debian tools.

    I think that those tasks are the same which are used by Debian installer and tools like tasksel and Synaptic. You can select tasks using eg. Synaptic. Just select from Synaptic’s menu: “Mark packages by task”. Or you can also use the tasksel tool.

  6. Among other Debian-based LiveCD’s is one called Finnix aimed for SysAdmins; see http://www.finnix.org/ . Finnix is based on Debian testing, although the last release (v93.0) was well over a year ago and seems a bit stale .
    Am wondering what Standard and Advanced customizations could be used to create a more up-to-date Finnix-like Debian LiveCD build ??

    I’d guess from http://www.finnix.org/Finnix_93.0_packages that some of the appropriate selections for a similar Debian LiveCD would be:
    Standard options
    –distribution: squeeze
    –packages-lists: rescue (but perhaps minimal ?)
    Advanced bootstrap options
    –bootstrap-flavour: standard (but perhaps minimal ?)
    Advanced chroot options
    –chroot-filesystem: squashfs
    Advanced binary options
    –bootloader: grub

    There could be further entries required for this in the Standard options –packages section.
    Also, the Advanced chroot option –linux-flavours would require selection of the proper architecture if the target system is not a 32-bit x86 CPU.

  7. Could someone please update this very good article.

    There is no –packages option anymore.
    Is it the same as cgipackages.list.chroot ?

  8. Could you please explain in some more detail all the options?
    You haven’t explained some of the advanced options such as –iso-publisher.

    It would have made the article more complete

Comments are closed.

Sponsored Stories