# grml-live
From: Michael Prokop grml-live - build framework based on FAI for generating a grml and Debian based
+ grml-live - build framework based on FAI for generating a Grml and Debian based
Linux Live system (CD/ISO) grml-live [-a <architecture>] [-c <classe[s]>] [-C <configfile>] [-g
<grml_name>] [-i <iso_name> ] [-o <output_directory>] [-r <release_name>] [-s
<suite>] [-t <template_directory>] [-v <version_number>] [-U <username>] [
--AbBFnNquVz]1. Name
-
-
-
-
-Please check out the Current state of grml-live with squashfs-tools and kernel section for details about current state of involved
-tools before starting with grml-live or if you encounter any problems.
-
grml-live provides the build system for creating a grml and Debian based Linux +
grml-live provides the build system for creating a Grml and Debian based Linux Live-CD. The build system is based on FAI (Fully Automatic Installation). grml-live uses the "fai dirinstall" feature to generate a chroot @@ -787,7 +778,7 @@ details of a build process.
Clean up output directories before attempting the build. Packs the chroot -into a tar archive, and removes chroot and iso build directories before exiting. +into a tar archive, and removes chroot and ISO build directories before exiting.
Build the ISO without touching the chroot at all. This option is useful if -you modified anything that FAI or grml-live might adjust via grml’s FAI +you modified anything that FAI or grml-live might adjust via Grml’s FAI scripts. It’s like the -b option but even more advanced. Use only if you really know that you do not want to update the chroot.
@@ -864,8 +854,8 @@ really know that you do not want to update the chroot.Specify the CLASSES to be used for building the ISO via FAI. By default only 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 +architecture) are assumed, resulting in a base system of about 350MB +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 the CLASSES section in this document for details about available classes). So instead of GRML_FULL you can also use @@ -1112,41 +1102,29 @@ Use ZLIB instead of LZMA/XZ compression in mksquashfs part of the build process.
To get a small, Debian-stable and grml-based Live-CD using /grml/grml-live +
To get a Debian-stable and Grml-based Live-CD using /grml/grml-live as build and output directory just run:
# grml-live
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,AMD64 -o /home/mika/grml-live-
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:
To get a 64bit Debian-testing and grml-small based Live-CD using /srv/grml-live +as build and output directory use the following command line on your amd64 +system:
# 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,AMD64 -s sid -i grml_0.0-3.iso+
# grml-live -s testing -c GRMLBASE,GRML_SMALL,AMD64 -o /srv/grml-live
- | If you have about 700MB of free space inside /dev/shm (being a tmpfs, usually -you should 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 use another directory for $CHROOT_OUTPUT, + | If you have enough free space inside /dev/shm (being a tmpfs, usually you should +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 use another directory for $CHROOT_OUTPUT, $BUILD_OUTPUT and $ISO_OUTPUT if you plan to create more persistent output. :) |
-create a grml-/Debian-based Linux Live-CD with one single command +create a Grml-/Debian-based Linux Live-CD with one single command
-multi-arch support (work in progress) -
--DEBORPHAN: get rid of all packages listed in output of Deborphan +DEBORPHAN: get rid of all packages listed in output of deborphan
-GRML_FULL: full featured grml, also known as the "normal", full grml as -introduced in november 2011 (~350MB ISO size). +GRML_FULL: full featured Grml, also known as the "normal", full grml as +introduced in December 2011 (~350MB ISO size).
-GRML_MEDIUM: medium sized grml version, used to be known as grml-medium -until november 2011 (~220MB ISO size). +GRML_MEDIUM: medium sized Grml version, used to be known as grml-medium +until December 2011 (~220MB ISO size).
-GRML_SMALL: minimum sized grml version, known as grml-small (~110MB ISO +GRML_SMALL: minimum sized Grml version, known as grml-small (~110MB ISO size).
GRML_XL: large size Grml version, used to be known as "full grml" until -november 2011 (~700MB ISO size). +December 2011 (~700MB ISO size).
This file specifies the package list for creating the NFSROOT.
${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 -on-the-fly via grml-live then. If you want to generally adjust apt configuration
${GRML_FAI_CONFIG}/config/
The main directory for configuration of FAI/grml-live. More details below.
grml-live itself logs to /var/log/grml-live.log. Unless you set PRESERVE_LOGFILE -in your grml-live configuration the file is cleared on each new invocation of -grml-live.
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.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 -manpage.
Starting with grml-live version 0.17.0 you should find log files in a directory +named grml_logs in the output directory (next to grml_isos, grml_chroot,…).
grml-live versions before 0.17.0 used to log into /var/log/grml-live.log +and /var/log/fai/grml.
any Debian based system should be sufficient (if it doesn’t work it’s a bug, -please send us a bug report then) [a usual -grml2hd harddisk installation (using grml or -grml-medium) ships all you need]. Check out How do I deploy grml-live on a plain Debian installation for details how to set up grml-live +please send us a bug report then). Check out How do I deploy grml-live on a plain Debian installation for details how to set up grml-live on a plain, original Debian system.
Use squashfs-tools >=4.2-1 (available from Grml repositories as well as from -Debian/unstable) to build Grml (based) ISOs featuring kernel version -2.6.38-grml[64].
The easiest way to get a running grml-live setup is to install Grml or -grml-medium using grml2hd (for example inside KVM, Virtualbox, VMware,… if you -don’t want to run it on a physical system). Of course using grml-live on a -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 amd64 -architecture using grml-live.
- - | -If you encounter any problems while booting the resulting ISO please be aware of -the current state of grml-live with squashfs-tools and kernel section. | -
The easiest way to get a running grml-live setup is to just use Grml. +Of course using grml-live on a plain, original Debian installation is supported +as well. So there we go.
What we have: plain, original Debian squeeze (6.0).
What we want: build a Grml ISO based on Debian/wheezy for the amd64 architecture +using grml-live.
# just optional(!) - upgrade FAI to latest available version: cat >> /etc/apt/sources.list << EOF # fai: - deb http://fai-project.org/download lenny koeln + deb http://fai-project.org/download squeeze koeln EOF
Check out the logs inside /var/log/fai/… If you think it’s a bug in grml-live -send a copy of your config, logs and the commandline with a short problem -description to <mika@grml.org>:
# history | grep grml-live > /etc/grml/grml_live.cmdline -# tar zcf grml_live_problem.tar.gz /etc/grml/grml-live.conf \ - /etc/grml/grml_live.cmdline /etc/grml/grml-buildd.conf \ - /var/log/fai /etc/grml/fai --> finally mail grml_live_problem.tar.gz to <mika@grml.org>-
Check out the logs inside the directory grml_logs next to your grml_chroot, +grml_isos,… directories.
If you need help with grml-live or would like to see new features as part of grml-live you can get commercial support via Grml Solutions.
ISO size (bs = blocksize):
ISO |
-LZMA (256kB bs) |
-ZLIB |
-
grml_sid |
-666M |
-771M |
-
grml_squeeze |
-659M |
-761M |
-
grml_lenny |
-624M |
-723M |
-
grml64_sid |
-677M |
-791M |
-
grml64_squeeze |
-671M |
-785M |
-
grml64_lenny |
-639M |
-745M |
-
grml-medium_sid |
-208M |
-236M |
-
grml-medium_squeeze |
-206M |
-234M |
-
grml-medium_lenny |
-193M |
-220M |
-
grml64-medium_sid |
-213M |
-245M |
-
grml64-medium_squeeze |
-213M |
-244M |
-
grml64-medium_lenny |
-201M |
-231M |
-
grml-small_sid |
-102M |
-118M |
-
grml-small_squeeze |
-101M |
-117M |
-
grml-small_lenny |
-97M |
-112M |
-
grml64-small_sid |
-103M |
-120M |
-
grml64-small_squeeze |
-103M |
-120M |
-
grml64-small_lenny |
-99M |
-116M |
-
Build time of grml-medium’s squashfs file (depends on your system, though just -to get the ratio between the different options):
-10 minutes and 4 seconds with LZMA default blocksize (128k) -
--7 minutes 27 seconds with LZMA and blocksize 256k -
--6 minutes and 8 seconds with LZMA blocksize 512k -
--1 minute and 40 seconds with ZLIB -
-Just point the configuration variable CHROOT_INSTALL to the directory which provides the files you would like to install. Note that the files are installed under / in the chroot - so you have to create the rootfs structure on your @@ -1788,7 +1583,7 @@ grml-live ...
Yes. Set up an according sources.list configuration as class file in 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 @@ -1802,7 +1597,7 @@ adjust MIRROR_DIRECTORY in /etc/grml/grml-live.conf[.local] as well.
Just create a new class (using the package_config directory):
Notice: this deletes all your grml-live configuration files. If that’s really what you are searching for just run:
rm -rf /etc/grml/fai /etc/grml/grml-live.conf dpkg -i --force-confnew --force-confmiss /path/to/grml-live_..._all.deb
- - | -If you don’t control your /etc using a version control system (VCS) yet it’s a -good chance to start using it now. Check out -http://michael-prokop.at/blog/2007/03/14/maintain-etc-with-mercurial-on-debian/ -for more details how to maintain /etc using the mercurial VCS. | -
First of all build the chroot system:
Set up apt-cacher-ng for use with grml-live
Make sure /etc/grml/grml-live.local provides according APT_PROXY and -FAI_DEBOOTSTRAP: - - # cat /etc/grml/grml-live.local - [...] - APT_PROXY="http://localhost:3142/" - [...] - FAI_DEBOOTSTRAP="squeeze http://localhost:3142/cdn.debian.net/debian squeeze main contrib non-free" - -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-
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:9999/grml grml-stable main -deb http://localhost:9999/grml grml-testing main -deb http://localhost:9999/debian squeeze main contrib non-free -" -FAI_DEBOOTSTRAP="squeeze http://localhost:9999/debian"-
Configure approx:
# cat /etc/approx/approx.conf +APT_PROXY="http://localhost:3142/" [...] -debian http://ftp.at.debian.org/debian -grml http://deb.grml.org/+FAI_DEBOOTSTRAP="squeeze http://localhost:3142/cdn.debian.net/debian squeeze main contrib non-free"
Don’t forget to restart approx (/etc/init.d/approx restart). That’s it. -All downloaded files will be cached in /var/cache/approx now.
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.
Don’t hesitate to contact the author: <mika@grml.org>
The source of grml-live is available at -http://git.grml.org/?p=grml-live.git
Check out the TODO file.
Please report feedback, bugreports and wishes -to the grml-team!
The most recent grml-live documentation is available online at http://grml.org/grml-live/ and for offline reading also available @@ -2077,7 +1825,7 @@ in different formats:
Michael Prokop <mika@grml.org>