X-Git-Url: https://git.grml.org/?p=grml-live.git;a=blobdiff_plain;f=docs%2Fgrml-live.txt;h=debc706f2032ee2363eaa4e48cf64cac7d9d9eec;hp=cd1ab5ef2ec9e232dedfa5692689d301a2c3411b;hb=db5741b5b41210da401504a3493d9a284da32e9c;hpb=bebbbad9c317c10b8536e8bf5993819c6c745fdf diff --git a/docs/grml-live.txt b/docs/grml-live.txt index cd1ab5e..debc706 100644 --- a/docs/grml-live.txt +++ b/docs/grml-live.txt @@ -12,7 +12,8 @@ Synopsis grml-live [-a ] [-c ] [-C ] [-g ] [-i ] [-o ] [-r ] [-s -] [-t ] [-v ] [-bBFhquVz] +] [-t ] [-v ] [-U ] [ +-AbBFnNquVz] CAUTION: Please check out <> for details about current state of involved @@ -35,8 +36,9 @@ 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 +provides and uses ${GRML_FAI_CONFIG} which is pointing to /etc/grml/fai by default +(unless overriden using the ''-D'' option). This ensures that it does not clash +with default FAI configuration and packages, so you can use grml-live and FAI completely independent at the same time! [NOTE] @@ -53,6 +55,11 @@ for details). Options ------- + -A:: + +Clean up output directories before attempting the build. Packs the chroot +into a tar archive, and removes chroot and iso build directories before exiting. + -a **ARCHITECTURE**:: Use the specified architecture instead of the currently running one. This @@ -79,12 +86,13 @@ really know that you do not want to update the chroot. -c **CLASSES**:: Specify the CLASSES to be used for building the ISO via FAI. By default only -the classes GRMLBASE, GRML_MEDIUM and I386 are assumed, resulting in a small base -system (being about ~180MB total ISO size). If using a non-I386 system (like -AMD64) you should specify the appropriate architecture as well. Additionally you -can specify a class providing a grml-kernel (see -<> for details about available classes). -So instead of GRML_MEDIUM you can also use GRML_SMALL and GRML_FULL. +the classes GRMLBASE, GRML_FULL and I386/AMD64 (depending on system +architecture) are assumed, resulting in a small base system (being about ~180MB +total ISO size). If using a non-I386 system (like AMD64) you should specify the +appropriate architecture as well. Additionally you can specify a class providing +a grml-kernel (see <> for +details about available classes). So instead of GRML_FULL you can also use +GRML_SMALL and GRML_FULL. [IMPORTANT] All class names should be written in uppercase letters. Do not use a dash, use @@ -104,9 +112,9 @@ Please notice that all configuration files have to be adjusted during execution of grml-live, so please make sure you use /etc/grml/grml-live.conf as a base for your own configuration file (usually /etc/grml/grml-live.local). Please also notice that the configuration file specified via this option is **not** (yet) -supported inside the scripts/hooks/classes at /etc/grml/fai/config. Instead use +supported inside the scripts/hooks/classes at ${GRML_FAI_CONFIG}/config. Instead use /etc/grml/grml-live.local for configuration stuff used inside -/etc/grml/fai/config. +${GRML_FAI_CONFIG}/config. -d **DATE**:: @@ -118,6 +126,16 @@ the bootsplash related files. This option is useful if you want to provide an ISO with release information for a specific date but have to build it in advance. Usage example: '-d 2009-10-30' + -D **CONFIGURATION_DIRECTORY**:: + +The specified directory is used as configuration directory for grml-live and its +FAI. By default /etc/grml/fai is used as default configuration directory. If +you want to have different configuration scripts, package definitions, etc. with +without messing with the global configuration under /etc/grml/fai provided by +grml-live this option provides you the option to use your own configuration +directory. This directory is what's being referred to as ${GRML_FAI_CONFIG} +throughout this documentation. + -F:: Force execution and do not prompt for acknowledgment of configuration. @@ -148,6 +166,18 @@ in the chroot so you have to create the rootfs structure on your own. Skip creation of the ISO file. This option is useful if you want to build/update the chroot and/or recreate the squashfs file without building an ISO file. + -N:: + +Bootstrap the chroot without building bootloader, squashfs, or finalizing the +ISO. Use this option if installation of some packages fails, you want to run +custom commands or similar. +The main use of this option is to save time by skipping stages which aren't +necessary for bootstrapping the chroot and which would get executed more than +once when iterating through the initial bootstrapping. +Alternatively, use this option as a test run of grml-live. Once you are +satisfied with the state of your grml_chroot, use grml-live **-u** to build the +remaining stages and finalize the ISO. + -o **OUTPUT_DIRECTORY**:: Main output directory of the build process of FAI. Some directories are created @@ -170,7 +200,7 @@ Specify name of the release. Specify the Debian suite you want to use for your live-system. Defaults to "squeeze" (being current Debian/stable). Supported values are: etch, lenny, squeeze, sid. Debian "squeeze" requires a recent base.tgz -(/etc/grml/fai/config/basefiles/$CLASSNAME.tar.gz) or a recent version of +(${GRML_FAI_CONFIG}/config/basefiles/$CLASSNAME.tar.gz) or a recent version of debootstrap. -t **TEMPLATE_DIRECTORY**:: @@ -178,11 +208,20 @@ debootstrap. Specify place of the templates used for building the ISO. By default (and if not manually specified) this is /usr/share/grml-live/templates/. + -T **CHROOT_ARCHIVE**:: + +Unpack chroot tar archive before starting. Most useful in combination with +-A and -b or -u. + -u:: Update existing chroot instead of rebuilding it from scratch. This option is based on the softupdate feature of FAI. + -U **USERNAME**:: + +Sets ownership of all build output files to specified username before exiting. + -v **VERSION_NUMBER**:: Specify version number of the release. @@ -207,18 +246,18 @@ as build and output directory just run: To get a small Debian-unstable and grml-small based Live-CD using /home/mika/grml-live as build and output directory just use: - # grml-live -s sid -c GRMLBASE,GRML_SMALL,I386 -o /home/mika/grml-live + # grml-live -s sid -c GRMLBASE,GRML_SMALL,AMD64 -o /home/mika/grml-live -To get a medium sized, Debian-unstable and grml-based Live-CD for i386 +To get a medium sized, Debian-unstable and grml-based Live-CD for amd64 architecture using /grml/grml-live as build and output directory just run: - # grml-live -s sid -a i386 -c GRMLBASE,GRML_MEDIUM,I386 + # grml-live -s sid -a amd64 -c GRMLBASE,GRML_FULL,AMD64 To get a small, Debian-unstable and grml-based Live-CD using /tmp as build and output directory and use grml_0.0-3.iso as ISO name (placed inside /tmp/grml_isos) just invoke: - # grml-live -o /tmp -c GRMLBASE,GRML_SMALL,I386 -s sid -i grml_0.0-3.iso + # grml-live -o /tmp -c GRMLBASE,GRML_SMALL,AMD64 -s sid -i grml_0.0-3.iso [NOTE] @@ -261,11 +300,11 @@ grml-live, as well as the architecture dependent class which provides the kernel GRML_SMALL, GRML_MEDIUM or GRML_FULL). The following files and directories are relevant for class GRMLBASE by default: - /etc/grml/fai/config/scripts/GRMLBASE/ - /etc/grml/fai/config/debconf/GRMLBASE - /etc/grml/fai/config/class/GRMLBASE.var - /etc/grml/fai/config/hooks/instsoft.GRMLBASE - /etc/grml/fai/config/package_config/GRMLBASE + ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/ + ${GRML_FAI_CONFIG}/config/debconf/GRMLBASE + ${GRML_FAI_CONFIG}/config/class/GRMLBASE.var + ${GRML_FAI_CONFIG}/config/hooks/instsoft.GRMLBASE + ${GRML_FAI_CONFIG}/config/package_config/GRMLBASE Take a look at the next section for information about the concept of those files/directories. @@ -273,9 +312,9 @@ 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 (or extend an existing one). For example if you want to use your own class named "FOOBAR" just -set CLASSES="GRMLBASE,GRML_SMALL,I386,FOOBAR" inside /etc/grml/grml-live.local +set CLASSES="GRMLBASE,GRML_SMALL,AMD64,FOOBAR" inside /etc/grml/grml-live.local or invoke grml-live using the classes option: "grml-live -c -GRMLBASE,GRML_SMALL,I386,FOOBAR ...". +GRMLBASE,GRML_SMALL,AMD64,FOOBAR ...". More details regarding the class concept can be found in the documentation of FAI itself (being available at /usr/share/doc/fai-doc/). @@ -286,25 +325,28 @@ Available classes ----------------- The package selection part of the classes can be found in -/etc/grml/fai/config/package_config whereas some further classes are defined for -example in /etc/grml/fai/config/scripts/ so specific feature sets can be +${GRML_FAI_CONFIG}/config/package_config whereas some further classes are defined for +example in ${GRML_FAI_CONFIG}/config/scripts/ so specific feature sets can be selected. The following classes are predefined: * DEBORPHAN: get rid of all packages listed in output of Deborphan * GRMLBASE: the main class responsible for getting a minimal subset of what's -defining a grml system. Important parts of the buildprocess are specified in +defining a Grml system. Important parts of the buildprocess are specified in this class as well, so unless you have a really good reason you should always use this class. -* GRML_FULL: full featured grml, also known as the "normal", full grml. +* GRML_FULL: full featured grml, also known as the "normal", full grml as +introduced in november 2011 (~350MB ISO size). -* GRML_MEDIUM: medium sized grml version, known as grml-medium +* GRML_MEDIUM: medium sized grml version, used to be known as grml-medium +until november 2011 (~220MB ISO size). -* GRML_POWERPC: grml for PowerPC architecture, not supported yet (still work in -progress) +* GRML_SMALL: minimum sized grml version, known as grml-small (~110MB ISO +size). -* GRML_SMALL: minimum sized grml version, known as grml-small +* GRML_XL: large size Grml version, used to be known as "full grml" until +november 2011 (~700MB ISO size). * LATEX: LaTeX(-related) packages like auctex, texlive,... (which used to be shipped by grml before the LaTeX removal) @@ -325,6 +367,9 @@ official grml release * REMOVE_DOCS: get rid of documentation directories (like /usr/share/doc, /usr/share/man/, /usr/share/info,...) +* SOURCES: retrieve Debian source packages after installation. Files will be +placed in the output directory under grml_sources. + * XORG: providing important packages for use with a base grml-featured X.org setup @@ -335,7 +380,7 @@ 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 +fai-client) grml uses ${GRML_FAI_CONFIG}/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). Furthermore /usr/share/doc/fai-doc/fai-guide.html/ch-config.html @@ -359,72 +404,72 @@ over the ones from /etc/grml/grml-live.conf. If you want to override settings from /etc/grml/grml-live.local as well you have to specify them on the grml-live commandline. - /etc/grml/fai/fai.conf + ${GRML_FAI_CONFIG}/fai.conf Main configuration file for FAI which specifies where all the configuration files and scripts for FAI/grml-live can be found. By default the configuration variables are FAI_CONFIG_SRC=file:///etc/grml/fai/config and -FAI_CONFIGDIR=/etc/grml/fai/config - both pointing to a directory shipped by +GRML_FAI_CONFIG=/etc/grml/fai/config - both pointing to 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 + ${GRML_FAI_CONFIG}/make-fai-nfsroot.conf This file is used by make-fai-nfsroot(8) only. Usually you don't have to change anything inside this file. If you want to modify NFSROOT though you can adjust it there. - /etc/grml/fai/NFSROOT + ${GRML_FAI_CONFIG}/NFSROOT This file specifies the package list for creating the NFSROOT. - /etc/grml/fai/apt/sources.list + ${GRML_FAI_CONFIG}/apt/sources.list This file specifies which mirrors should be considered for retrieving the Debian packages when creating the main chroot (including all the software you would like to see included). Important: this file should *not* be adjusted manually! Instead use the GRML_LIVE_SOURCES variable inside /etc/grml/grml-live.conf or -/etc/grml/grml-live.local which modifies /etc/grml/fai/apt/sources.list +/etc/grml/grml-live.local which modifies ${GRML_FAI_CONFIG}/apt/sources.list on-the-fly via grml-live then. If you want to generally adjust apt configuration -use FAI's fcopy command with /etc/grml/fai/config/files instead. +use FAI's fcopy command with ${GRML_FAI_CONFIG}/config/files instead. - /etc/grml/fai/config/ + ${GRML_FAI_CONFIG}/config/ The main directory for configuration of FAI/grml-live. More details below. - /etc/grml/fai/config/class/ + ${GRML_FAI_CONFIG}/config/class/ This directory contains files which specify main configuration variables for the FAI classes. - /etc/grml/fai/config/debconf/ + ${GRML_FAI_CONFIG}/config/debconf/ This directory provides the files for preseeding/configuration of debconf through files. - /etc/grml/fai/config/hooks/ + ${GRML_FAI_CONFIG}/config/hooks/ This directory provides files for customising 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/ + ${GRML_FAI_CONFIG}/config/package_config/ Directory with lists of software packages to be installed or removed. The different classes describe what should find its way to your ISO. When running -"grml-live -c GRMLBASE,GRML_SMALL,I386 ..." only the configuration of GRMLBASE, -GRML_SMALL and and I386 will be taken. If you use 'grml-live -c -GRMLBASE,GRML_SMALL,I386,FOOBAR ...' then the files of GRMLBASE, GRML_SMALL, -I386 **plus** the files from FOOBAR will be taken. So just create a new class to +"grml-live -c GRMLBASE,GRML_SMALL,AMD64 ..." only the configuration of GRMLBASE, +GRML_SMALL and and AMD64 will be taken. If you use 'grml-live -c +GRMLBASE,GRML_SMALL,AMD64,FOOBAR ...' then the files of GRMLBASE, GRML_SMALL, +AMD64 **plus** the files from FOOBAR will be taken. So just create a new class to adjust the package selection according to your needs. Please notice that the directory GRMLBASE contains a package list defining a minimum but still reasonable package configuration. - /etc/grml/fai/config/scripts/ + ${GRML_FAI_CONFIG}/config/scripts/ Scripts for customising the ISO within the build process. - /etc/grml/fai/live-initramfs/ + ${GRML_FAI_CONFIG}/live-initramfs/ This directory provides the files used for building the initramfs/initrd via live-initramfs(8). @@ -441,7 +486,7 @@ The FAI part of grml-live logs to /var/log/fai/$HOSTNAME/ - so the default being /var/log/fai/grml/. If you are using the grml-live buildd you will find the logs of the grml-live -run at /var/log/grml-buildd.stdout and /var/log/grml-buildd.stderr. +run at /var/log/grml-buildd.log. If you want to store build information in a database just install the grml-live-db Debian package. Further details available in the grml-live-db @@ -710,7 +755,7 @@ plain, original Debian installation is supported as well. So there we go. What we have: plain, original Debian Lenny (5.0). -What we want: build a grml-medium ISO based on Debian/squeeze for the i386 +What we want: build a grml-medium ISO based on Debian/squeeze for the amd64 architecture using grml-live. [IMPORTANT] @@ -772,7 +817,7 @@ Instructions ## OUTPUT="/srv/grml-live" FAI_DEBOOTSTRAP="squeeze http://cdn.debian.net/debian/" ARCH="i386" - CLASSES="GRMLBASE,GRML_MEDIUM,I386" + CLASSES="GRMLBASE,GRML_FULL,AMD64" # PRESERVE_LOGFILE='1' # ZERO_FAI_LOGFILE='1' GRML_LIVE_SOURCES=" @@ -800,17 +845,17 @@ worked as expected the last line of the shell output should look like: and the ISO can be found inside /grml-live/grml-live/grml_isos/ then. -[[fai-on-etch]] -Help, I'm using Debian etch and I don't have FAI version >3.2 -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +[[grml_fai_config_variable]] +What is $GRML_FAI_CONFIG? +~~~~~~~~~~~~~~~~~~~~~~~~~ - wget http://fai-project.org/download/etch/fai-client_3.2.8_all.deb \ - http://fai-project.org/download/etch/fai-server_3.2.8_all.deb \ - http://fai-project.org/download/etch/fai-doc_3.2.8_all.deb - dpkg -i fai-client_3.2.8_all.deb fai-server_3.2.8_all.deb fai-doc_3.2.8_all.deb - -or check out the link:http://fai-project.org/[FAI-homepage] for -further details. +The variable '$GRML_FAI_CONFIG' is pointing to the directory /etc/grml/fai by +default. To provide you a maximum of flexibility you can set up your own +configuration directory (e.g. based on /etc/grml/fai) and use this directory +running grml-live with the '-D ' option. Now '$GRML_FAI_CONFIG' +points to the specified directory instead of using /etc/grml/fai and all the +configuration files, scripts and hooks will be taken from your +'$GRML_FAI_CONFIG' directory. [[how-to-debug]] I've problems with the build process. How to start debugging? @@ -886,24 +931,18 @@ own. Usage example: Can I use my own (local) Debian mirror? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Sure. Just adjust the variables GRML_LIVE_SOURCES and FAI_DEBOOTSTRAP (if not -already using NFSROOT's base.tgz) inside /etc/grml/grml-live.conf according to -your needs. Please don't forget that you should use the grml servers as well -(see default configuration) so all the grml packages can be downloaded as well. +Yes. Set up an according sources.list configuration as class file in +${GRML_FAI_CONFIG}/config/files/etc/apt/sources.list.d/ and adjust the variable +FAI_DEBOOTSTRAP (if not already using NFSROOT's base.tgz) inside +/etc/grml/grml-live.conf[.local]. If you're setting up your own class file don't +forget to include the class name in the class list (grml-live -c ...). -If you want to use a local (for example NFS mount) mirror additionally, just -adjust MIRROR_DIRECTORY and MIRROR_SOURCES inside /etc/grml/grml-live.conf as -well. +If you want to use a local (for example NFS mount) mirror additionally then +adjust MIRROR_DIRECTORY in /etc/grml/grml-live.conf[.local] as well. -Unless you specify GRML_LIVE_SOURCES and/or FAI_DEBOOTSTRAP the default from -/etc/grml/fai/apt/sources.list and /etc/grml/fai/make-fai-nfsroot.conf will be -taken. If you customise the variables in /etc/grml/grml-live.conf then the two -files will be adjusted during runtime automatically. +If you want to use a HTTP Proxy (like apt-cacher-ng), set APT_PROXY. Example: -If MIRROR_DIRECTORY and MIRROR_SOURCES are specified the local mirror will be -taken as first entry in the generated sources.list so it's preferred over -non-local mirrors. Using a fallback mirror (via providing several mirrors in -GRML_LIVE_SOURCES as used by default) is a recommended setting. + APT_PROXY="http://localhost:3142/" [[add-additional-debian-packages]] How do I add additional Debian package(s) to my CD/ISO? @@ -921,7 +960,7 @@ Just create a new class (using the package_config directory): and specify it when invoking grml-live then: - # grml-live -c GRMLBASE,GRML_SMALL,I386,MIKA + # grml-live -c GRMLBASE,GRML_SMALL,AMD64,MIKA [[reset-grml-live-configuration]] I fscked up my grml-live configuration. How do I reset it to the defaults? @@ -985,25 +1024,20 @@ or if using /etc/grml/fai/config/basefiles/$CLASSNAME.tar.gz for: Existing base.tgz can be found at http://daily.grml.org/ [[apt-cacher]] -Set up apt-cacher / apt-cacher-ng for use with grml-live +Set up apt-cacher-ng for use with grml-live ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Make sure /etc/grml/grml-live.conf provides according GRML_LIVE_SOURCES and +Make sure /etc/grml/grml-live.local provides according APT_PROXY and FAI_DEBOOTSTRAP: - # cat /etc/grml/grml-live.conf + # cat /etc/grml/grml-live.local [...] - GRML_LIVE_SOURCES=" - deb http://localhost:3142/deb.grml.org grml-stable main - deb http://localhost:3142/deb.grml.org grml-testing main - deb http://localhost:3142/cdn.debian.net/debian squeeze main contrib non-free - " + APT_PROXY="http://localhost:3142/" [...] FAI_DEBOOTSTRAP="squeeze http://localhost:3142/cdn.debian.net/debian squeeze main contrib non-free" -Make sure apt-cacher / apt-cacher-ng is running ('/etc/init.d/apt-cacher -restart' or '/etc/init.d/apt-cacher-ng restart'). That's it. All downloaded -files will be cached in /var/cache/apt-cacher/ or /var/cache/apt-cacher-ng then. +Make sure apt-cacher-ng is running ('/etc/init.d/apt-cacher-ng restart'). +That's it. All downloaded files will be cached in /var/cache/apt-cacher-ng then. [[approx]] Set up approx for use with grml-live