X-Git-Url: https://git.grml.org/?a=blobdiff_plain;f=docs%2Fgrml-live.txt;h=bd4c41d073014f9b12a9911ed2027dedd8cc35cb;hb=e92b6377feb22631f875f3b536f9ac760a05d0e6;hp=3f14ba592509923d268689d33c8da107190b87e9;hpb=229a51dfda4d619c47fb4b0ff94d4d952f61e62a;p=grml-live.git diff --git a/docs/grml-live.txt b/docs/grml-live.txt index 3f14ba5..bd4c41d 100644 --- a/docs/grml-live.txt +++ b/docs/grml-live.txt @@ -3,27 +3,242 @@ grml-live(8) Name ---- -grml-live - generate a grml (based) live-cd +grml-live - build process script for generating a (grml based) Linux Live-ISO Synopsis -------- -grml-live [ todo...] +grml-live [-c ] [-t ] [-F] [-h|--help] ******************************************************************************* -Important! grml-live is under heavy construction and everything but ready yet. +Important! grml-live is under heavy construction, your feedback is highly +appreciated. This document is growing as requested. If you have questions which +aren't answered by this document yet please let me (mika@grml.org) know! ******************************************************************************* -Introduction ------------- +Description +----------- -grml-live provides the build system for creating a grml (based) live-cd. It is -based on link:http://www.informatik.uni-koeln.de/fai/[FAI] (Fully Automatic -Installation). +grml-live provides the build system for creating (a grml based) live-cd. The +build system is based on link:http://www.informatik.uni-koeln.de/fai/[FAI] +(Fully Automatic Installation). + +FAI uses a class based system. This gives you the flexibility to choose the +packages you would like to include on your very own Linux live-cd without having +to deal with all the details of a build process. + +CAUTION: grml-live does not use /etc/fai for configuration but instead provides +and uses /etc/grml/fai. This ensures that it does not clash with default FAI +configuration and packages, so you can use grml-live and FAI completely +independent! + +[NOTE] +Please notice that you should have a fast network connection as all the Debian +packages will be installed via network. If you want to use a local mirror +(strongly recommended!) checkout +mkdebmirror (see /usr/share/doc/grml-live/examples/mkdebmirror) +debmirro(1) and reprepro(1) (check out +/usr/share/doc/grml-live/examples/reprepro/ for a sample configuration). +To avoid downloading of the base system check out FAI's +NFSROOT (check docs for ../fai/nfsroot/live/filesystem.dir/var/tmp/base.tgz). + +Options +------- + + -c **CLASSES**:: + +Specify the CLASSES to be used for building the ISO via fai. By default only +the classes GRML and I386 are assumed, resulting in a small base system (being +about ~150MB ISO size). + + -t **TARGET_DIRECTORY**:: + +Output directory of the build process of FAI - being the chroot +used for building the ISO. + + -F:: + +Force execution and do not display summary of configuration details. + + -h|--help:: + +Display short usage information and exit. + +How to get your own live-cd - the easy, fast and simple way +----------------------------------------------------------- + +To get a small, Debian-stable and grml based live-cd using /dev/shm/ +as build and output directory: + + # grml-live + +[NOTE] + +If you have about 700MB of free space inside /dev/shm (being a tmpfs, usually +you have >=1GB of RAM) just run "mount -o remount,suid,dev,rw /dev/shm" and use +/dev/shm as build and output directory - resulting in very fast build process. +But please be aware of the fact that rebooting your system will result in an +empty /dev/shm, so please another directory for $CHROOT_TARGET, $BUILD_TARGET +and $ISO_TARGET if you plan to create more persistent output. :) + +The class concept +----------------- + +grml-live uses FAI and its class based concept for adjusting configuration +according to your needs. This gives you flexibility and strength without losing +the simplicity in the build process. + +The main and base class provided by grml-live is named GRML. It's strongly +recommended to **always** use the class GRML when building an ISO using +grml-live as well as the architecture dependend class (being 'I386' for x86_32 +currently only). The following files and directories are relevant for class GRML +by default: + + /etc/grml/fai/config/scripts/GRML/ + /etc/grml/fai/config/debconf/GRML + /etc/grml/fai/config/class/GRML.var + /etc/grml/fai/config/hooks/instsoft.GRML + /etc/grml/fai/config/package_config/GRML + +Take a look at the next section for information about the concept of those +files/directories. + +If you want to use your own configuration, extend an existing configuration +and/or add additional packages to your ISO just invent a new class. For example +if you want to use your own class named "FOOBAR" just extend CLASSES="GRML" inside +/etc/grml/grml-live.conf to CLASSES="GRML,FOOBAR" or invoke grml-live using +the classes option: "grml-live -c GRML,FOOBAR ...". + +More details regarding the class concept can be found in the documentation of +FAI (available at /usr/share/doc/fai-doc/). + +Files +----- + +Notice that grml-live ships FAI configuration files that do not use the same +namespace as the FAI packages itself. This ensures that grml-live does not +clash with your usual FAI configuration, so instead of /etc/fai/fai.conf +(package fai-client) grml uses /etc/grml/fai/fai.conf instead. For more details +see below. To get an idea how another configuration or example files could look +like check out /usr/share/doc/fai-doc/examples/simple/ (provided by Debian package +fai-doc). /usr/share/doc/fai-doc/fai-guide.html/ch-config.html also provides +documentation regarding configuration possibilities. + + /usr/sbin/grml-live + +Script for the main build process (being a wrapper around FAI currently). +Requires root permissions for execution. + + /etc/grml/fai/fai.conf + +Main configuration file which specifies where all the configuration files and +scripts for FAI/grml-live can be found. By default it is +FAI_CONFIGDIR=/etc/grml/fai/config, a directory shipped by grml-live +out-of-the-box so you shouldn't have to configure anything in this file. + + /etc/grml/fai/make-fai-nfsroot.conf + +TODO: documentation + + /etc/grml/fai/NFSROOT + +TODO: documentation + + /etc/grml/fai/apt/sources.list + +This file specifies which mirrors should be used for retreiving the Debian +packages used for creating the ISO. If you want to use a local mirror you have +to adjust this file. + + /etc/grml/fai/config/ + +The main directory for configuration of FAI/grml-live. More details below. + + /etc/grml/fai/config/class/ + +This directory contains files which specify main configuration variables for the +FAI classes. + + /etc/grml/fai/config/debconf/ + +This directory provides the files for preseeding/configuration of debconf +through files. + + /etc/grml/fai/config/hooks/ + +This directory provides files for customizing the build process through hooks. +Hooks are user defined programs or scripts, which are called during the +installation process. + + /etc/grml/fai/config/package_config/ + +File with lists of software packages to be installed or removed. The different +classes describe what should find its way to your ISO. When running 'fai -v -C +/etc/grml/fai -cGRML dirinstall ...' only the files from the directory GRML/ +will be taken, if you use 'fai -v -C /etc/grml/fai -cGRML,FOOBAR dirinstall ...' +then the files of GRML/ **plus** the files from FOOBAR/ will be taken. So just +create a new class to adjust it to your needs. Please notice that the directory +GRML contains a package list defining a minimum but still reasonable package +configuration. + + /etc/grml/fai/config/scripts/ + +Scripts for customising the ISO within build process. + + /etc/grml/fai/live-initramfs/ + +This directory provides the files used for building the initramfs/initrd via +live-initramfs(8). + +Requirements for the build system +--------------------------------- + +* any Debian based system should be sufficient (if not please send a bug +report), for example a grml2hd harddisk installation ships all you need + +* enough free disk space; at least 800MB are required for a minimal grml-live +run (\~400MB for the chroot [$CHROOT_TARGET], \~150MB for the build target +[$BUILD_TARGET] and \~150MB for the resulting ISO [$ISO_TARGET] plus some +temporary files) + +* fast network access for retreiving the Debian packages used for creating the +chroot (check out "local mirror" and "NFSROOT" to workaround this problem as far +as possiblbe) + +Known TODOs +----------- + +* extend the grml-live wrapper script so it runs all the necessary command in a +single run (boot/isolinux, mksquashfs and mkisofs stuff is missing currently) + +* really support signed apt repositories + +* explain (and provide configuration for) the use of NFSROOT + +* support setting stuff like ISO name, version,... (especially for stuff inside +x86_files/boot/isolinux) + +* identify all packages that are arch specific + +* support different flavours and architectures of Debian (currently it defaults +to Debian/stable x86_32) + +* use hooks of FAI in grml-live script? + +* the GRML class(es) should send output as used inside FAI as well (so it's not +as verbose unless you specify it) + +* provide possibility for cleanup of all created build directories Bugs ---- -Please report feedback, link:http://grml.org/bugs/[bugreports] and wishes link:http://grml.org/contact/[to us]! + +Please report feedback, link:http://grml.org/bugs/[bugreports] and wishes +link:http://grml.org/contact/[to the grml-team]! Authors ------- Michael Prokop . + +///////////////////////////////////// +// vim:ai tw=80 ft=asciidoc expandtab +/////////////////////////////////////