X-Git-Url: http://git.grml.org/?a=blobdiff_plain;ds=inline;f=grml-live%2Findex.html;h=73a4ac0acdc99dc3d0381636ec686f4dde9f4b3e;hb=372c031aa7d102ed746877c64d8027a20b7b1f36;hp=4659291c03bd1ecacd9669c8bdb6fd3f392c837b;hpb=c39f079208e4a8e8a354e19e17d34ee43699e908;p=grml.org.git
diff --git a/grml-live/index.html b/grml-live/index.html
index 4659291..73a4ac0 100644
--- a/grml-live/index.html
+++ b/grml-live/index.html
@@ -1,31 +1,29 @@
+
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
selected. The following classes are predefined:
-
-DEBORPHAN: get rid of all packages listed in output of Deborphan
+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
-this class as well, so unless you have a really good reason you should always
-use this class.
+FILE_RC: instead of using systemd as init system use file-rc instead. file-rc
+was the init system used by Grml until and including stable release 2014.11,
+starting with beginning of 2016 Grml switched to systemd instead. If you want to
+build a live system in the old style using file-rc instead of systemd then enable
+this class. Please notice that the Grml team no longer provides support for it
+though.
-
-GRML_FULL: full featured grml, also known as the "normal", full grml.
+FRESHCLAM: execute freshclam (if it’s present) to update clamav definitions
+(increases resulting ISO size ~70MB). By default it’s skipped to avoid bigger
+ISO size.
-
-GRML_MEDIUM: medium sized grml version, known as grml-medium
+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
+this class as well, so unless you have a really good reason you should always
+use this class. Please be aware that using just the GRMLBASE class won’t be
+enough, because the kernel packages (e.g. linux-image-*) are chosen in
+further GRML_* classes (to provide maximum flexibility with kernel
+selection). If you don’t want to use the existing GRML_FULL or GRML_SMALL
+classes, define your own CLASS file choosing the kernel package you want to use
+(and don’t forget to include your CLASS in the arguments of grml-live’s -c...
+command line option).
-
-GRML_POWERPC: grml for PowerPC architecture, not supported yet (still work in
-progress)
+GRML_FULL: full featured Grml, also known as the "normal", full grml as
+introduced in December 2011 (~750 ISO size).
-
-GRML_SMALL: minimum sized grml version, known as grml-small
+GRML_SMALL: minimum sized Grml version, known as grml-small (~360MB ISO
+size).
-
@@ -1037,6 +1304,12 @@ REMOVE_DOCS: get rid of documentation directories (like /usr/share/doc,
-
+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
@@ -1050,26 +1323,25 @@ setup
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). Furthermore /usr/share/doc/fai-doc/fai-guide.html/ch-config.html
provides documentation regarding configuration possibilities.
-
/usr/sbin/grml-live
+
/usr/sbin/grml-live
Script for the main build process. Requires root permissions for execution.
-
/etc/grml/grml-live.conf
+
/etc/grml/grml-live.conf
Main configuration file for grml-live which should be considered as a reference
configuration file only. Please use /etc/grml/grml-live.local for local
configuration instead.
-
/etc/grml/grml-live.local
+
/etc/grml/grml-live.local
All the local configuration should go to this file. This file overrides any
defaults of grml-live. Configurations via /etc/grml/grml-live.local are preferred
@@ -1078,82 +1350,59 @@ 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
-
-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.
-
-This file specifies the package list for creating the NFSROOT.
-
-
-
/etc/grml/fai/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
-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.
-
-
-
/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 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).
@@ -1162,16 +1411,10 @@ live-initramfs(8).
10. Available log files
-
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.stdout and /var/log/grml-buildd.stderr.
-
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.
@@ -1181,26 +1424,23 @@ manpage.
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.
-enough free disk space; at least 800MB are required for a minimal grml-live
-run (~400MB for the chroot [$CHROOT_OUTPUT], ~150MB for the build target
-[$BUILD_OUTPUT] and \~150MB for the resulting ISO [$ISO_OUTPUT] plus some
-temporary files), if you plan to use GRML_FULL you should have at least 4GB of
-total free disk space
+enough free disk space; at least 2GB are required for a minimal grml-live
+run (\1GB for the chroot [$CHROOT_OUTPUT], ~400MB for the build target
+[$BUILD_OUTPUT], ~35MB for the netboot files and \~350MB for the resulting ISO
+[$ISO_OUTPUT] plus some temporary files), if you plan to use GRML_FULL you
+should have at least 4GB of total free disk space
fast network access for retrieving the Debian packages used for creating the
-chroot (check out "local mirror" and "NFSROOT" to workaround this problem as far
-as possible)
+chroot (check out "local mirror" to workaround this problem as far as possible)
@@ -1210,9 +1450,8 @@ as possible)
@@ -1220,581 +1459,347 @@ Debian/unstable) to build Grml (based) ISOs featuring kernel version
13.1. How do I deploy grml-live on a plain Debian installation?
-
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 i386
-architecture using grml-live.
-
+
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 stretch (9.x).
+
What we want: build a Grml ISO based on Debian/stretch for the amd64 architecture
+using grml-live.
13.1.1. Instructions
-
# adjust sources.list:
-cat >> /etc/apt/sources.list << EOF
+
# adjust sources.list:
+cat >> /etc/apt/sources.list << EOF
-
# grml stable repository:
+# grml stable repository:
deb http://deb.grml.org/ grml-stable main
-# deb-src http://deb.grml.org/ grml-stable main
+# deb-src http://deb.grml.org/ grml-stable main
-
# grml testing/development repository:
+# grml testing/development repository:
deb http://deb.grml.org/ grml-testing main
# deb-src http://deb.grml.org/ grml-testing main
-EOF
+EOF
-
# adjust apt-pinning (only prefer squashfs stuff from grml):
-cat >> /etc/apt/preferences << EOF
-Package: *
-Pin: origin deb.grml.org
-Pin-Priority: 1
-
-
-
-
Package: squashfs-tools
-Pin: origin deb.grml.org
-Pin-Priority: 996
-EOF
-
-
-
-
# get keyring for apt:
+# get keyring for apt:
apt-get update
-apt-get --allow-unauthenticated install grml-debian-keyring
+apt-get --allow-unauthenticated install grml-debian-keyring
-
# optionally(!) install basefile so we don't have to build basic
+# optionally(!) install basefile so we don't have to build basic
# chroot from scratch, grab from http://daily.grml.org/
# mkdir -p /etc/grml/fai/config/basefiles/
-# mv base.tgz /etc/grml/fai/config/basefiles/I386.tar.gz
-# mv base64.tgz /etc/grml/fai/config/basefiles/AMD64.tar.gz
+# mv I386.tar.gz /etc/grml/fai/config/basefiles/
+# mv AMD64.tar.gz /etc/grml/fai/config/basefiles/
-
# install relevant tools
-# please check out http://grml.org/grml-live/#current_state when encountering problems!
-apt-get -o APT::Install-Recommends=false install grml-live squashfs-tools
+
# install relevant tools
+apt-get --no-install-recommends install grml-live
-
# adjust grml-live configuration for our needs:
+# adjust grml-live configuration for our needs:
cat > /etc/grml/grml-live.local << EOF
## want a faster build process and don't need smaller ISOs?
## if so use zlib compression
# SQUASHFS_OPTIONS="-comp gzip -b 256k"
## want to use a specific squashfs binary?
# SQUASHFS_BINARY='/usr/bin/mksquashfs'
-# install local files into the chroot
-CHROOT_INSTALL="/etc/grml/fai/chroot_install"
-## adjust if necessary (defaults to /grml/grml-live):
+## install local files into the chroot
+# CHROOT_INSTALL="/etc/grml/fai/chroot_install"
+## adjust if necessary (defaults to ./grml/):
## OUTPUT="/srv/grml-live"
-FAI_DEBOOTSTRAP="squeeze http://cdn.debian.net/debian/"
-ARCH="i386"
-CLASSES="GRMLBASE,GRML_MEDIUM,I386"
-# PRESERVE_LOGFILE='1'
-# ZERO_FAI_LOGFILE='1'
-GRML_LIVE_SOURCES="
-deb http://deb.grml.org/ grml-stable main
-deb http://deb.grml.org/ grml-testing main
-deb http://cdn.debian.net/debian squeeze main contrib non-free
-"
-EOF
+FAI_DEBOOTSTRAP="stretch http://ftp.debian.org/debian/"
+# ARCH="amd64"
+CLASSES="GRMLBASE,GRML_FULL,AMD64"
+EOF
-
# just optional(!) - upgrade FAI to latest available version:
-cat >> /etc/apt/sources.list << EOF
-# fai:
- deb http://fai-project.org/download lenny koeln
-EOF
+
# just optional(!) - upgrade FAI to latest available version:
+cat >> /etc/apt/sources.list.d/fai.list << EOF
+deb http://jenkins.grml.org/debian fai main
+deb-src http://jenkins.grml.org/debian fai main
+EOF
-
# get gpg key of FAI repos and install current FAI version:
-gpg -a --recv-keys AB9B66FD; gpg -a --export AB9B66FD | apt-key add -
+# get gpg key of FAI repos and install current FAI version:
+wget -O - http://jenkins.grml.org/debian/C525F56752D4A654.asc | sudo apt-key add -
apt-get update
-apt-get install fai-client fai-server fai-doc
+apt-get install fai-client fai-server fai-doc
That’s it. Now invoking grml-live -V should build the ISO. If everything
worked as expected the last line of the shell output should look like:
-
[*] Successfully finished execution of grml-live [running 687 seconds]
+
[*] Successfully finished execution of grml-live [running 687 seconds]
and the ISO can be found inside /grml-live/grml-live/grml_isos/ then.
-
13.2. Help, I’m using Debian etch and I don’t have FAI version >3.2
-
-
-
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
-
-
+
13.2. What is $GRML_FAI_CONFIG?
+
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 <config_dir> 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.
13.3. I’ve problems with the build process. How to start debugging?
-
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.
-
13.4. How much is the difference between LZMA and ZLIB compression?
-
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
-
-
-
-
-
-
13.5. How do I install further files into the chroot/ISO?
+
13.4. How do I install further files into the chroot/ISO?
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
own. Usage example:
-
echo "CHROOT_INSTALL=\$GRML_FAI_CONFIG/chroot_install" >> /etc/grml/grml-live.local
+echo "CHROOT_INSTALL=\$GRML_FAI_CONFIG/chroot_install" >> /etc/grml/grml-live.local
mkdir -p /etc/grml/fai/chroot_install/usr/src/
wget example.org/foo.tar.gz
mv foo.tar.gz /etc/grml/fai/chroot_install/usr/src/
-grml-live ...
+grml-live ...
-
13.6. 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.
-
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.
-
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 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.
+
13.5. Can I use my own (local) Debian mirror?
+
Yes. Set up an according sources.list configuration as class file in
+FAI_DEBOOTSTRAP (if not already using a 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 then
+adjust MIRROR_DIRECTORY in /etc/grml/grml-live.conf[.local] as well.
+
If you want to use a HTTP Proxy (like apt-cacher-ng), set APT_PROXY. Example:
+
+
+
APT_PROXY="http://localhost:3142/"
+
-
13.7. How do I add additional Debian package(s) to my CD/ISO?
+
13.6. How do I add additional Debian package(s) to my CD/ISO?
Just create a new class (using the package_config directory):
-
# cat > /etc/grml/fai/config/package_config/MIKA << EOF
-PACKAGES aptitude
+
# cat > /etc/grml/fai/config/package_config/MIKA << EOF
+PACKAGES install
-
vim
+vim
another_name_of_a_debian_package
and_another_one
-EOF
+EOF
and specify it when invoking grml-live then:
-
# grml-live -c GRMLBASE,GRML_SMALL,I386,MIKA
+
# grml-live -c GRMLBASE,GRML_SMALL,AMD64,MIKA
-
13.8. I fscked up my grml-live configuration. How do I reset it to the defaults?
+
13.7. I fscked up my grml-live configuration. How do I reset it to the defaults?
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
+
rm -rf /etc/grml/fai /etc/grml/grml-live.conf
+dpkg -i --force-confnew --force-confmiss /path/to/grml-live_..._all.deb
-
-
13.9. How do I create a base.tgz for use as NFSROOT?
-
First of all build the chroot system:
-
-
-
mkdir /tmp/nfsroot && cd /tmp/nfsroot
-debootstrap squeeze /tmp/nfsroot/ http://cdn.debian.net/debian
-tar zcf base.tgz ./
-
-
Then check out where your NFSROOT is located:
-
-
-
# grep '^NFSROOT' /etc/grml/fai/make-fai-nfsroot.conf
-NFSROOT=/grml/fai/nfsroot
-
-
So as /grml/fai/nfsroot is your NFSROOT place the file under
-/grml/fai/nfsroot/live/filesystem.dir/var/tmp/:
-
-
-
mv base.tgz /grml/fai/nfsroot/live/filesystem.dir/var/tmp/base.tgz
-
-
or even better use /etc/grml/fai/config/basefiles/$CLASSNAME.tar.gz instead.
-Use I386 as $CLASSNAME for i386 builds and AMD64 for amd64 builds.
-
Now running "grml-live …" will use this file as main system instead of
-executing debootstrap. Check out the output for the following lines if using
-NFSROOT:
-
-
-
[...]
-Calling task_extrbase
-Unpacking Debian base archive
-Extracting /grml/fai/nfsroot/live/filesystem.dir/var/tmp/base.tgz
-Calling task_mirror
-[...]
-
-
or if using /etc/grml/fai/config/basefiles/$CLASSNAME.tar.gz for:
-
-
-
[...]
-ftar: extracting /etc/grml/fai/config/basefiles///AMD64.tar.gz to
-/grml-live/grml-live_20071029.22138/grml_chroot//
-[...]
-
-
-
-
-
13.10. Set up apt-cacher / apt-cacher-ng for use with grml-live
-
Make sure /etc/grml/grml-live.conf provides according GRML_LIVE_SOURCES and
+
13.8. 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.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"
+FAI_DEBOOTSTRAP="stretch http://localhost:3142/ftp.debian.org/debian stretch 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.
-
13.11. Set up approx for use with grml-live
-
Make sure /etc/grml/grml-live.conf provides according GRML_LIVE_SOURCES and
-FAI_DEBOOTSTRAP:
+
13.9. How do I revert the manifold feature from an ISO?
+
The so-called manifold feature Grml ISOs can, but by default do not, use allows
+one to use the same ISO for CD boot and USB boot. If you notice any problems
+when booting manifold-crafted media, just revert the manifold feature running:
-
# cat /etc/grml/grml-live.conf
-[...]
-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"
+
% dd if=/dev/zero of=grml.iso bs=512 count=1 conv=notrunc
-
+
To switch from manifold to isohybrid mode (an alternative approach provided by
+syslinux, used by default for official Grml images) then just execute:
-
# cat /etc/approx/approx.conf
-[...]
-debian http://ftp.at.debian.org/debian
-grml http://deb.grml.org/
+
% isohybrid grml.iso
-
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.
-
13.12. How do I revert the manifold feature from an ISO?
-
The so called manifold feature Grml ISOs use by default allows to use the same
-ISO for CD boot and USB boot. If you notice any problems when booting just
-revert the manifold feature running:
+
13.10. How do I create a base tar.gz (I386.tar.gz or AMD64.tar.gz)
+
First of all create the chroot using debootstrap (requires root):
-
% dd if=/dev/zero of=grml.iso bs=512 count=1 conv=notrunc
-
-
To switch from manifold to isohybrid mode (an alternative approach provided by
-syslinux) then just execute:
-
-
-
% isohybrid grml.iso
+
BASECHROOT='/tmp/basefile' # path where the chroot gets generated
+SUITE='stretch' # using the current stable release should always work
+debootstrap --exclude=info,tasksel,tasksel-data "$SUITE" "$BASECHROOT" http://ftp.debian.org/debian
+tar -C "$BASECHROOT" --exclude='var/cache/apt/archives/*.deb' -zcf "${SUITE}".tar.gz ./
+
+
+
+
+ |
+By default debootstrap builds a chroot matching the architecture of the running
+host system. If you’re using an amd64 system and want to build an i386 base.tgz
+then invoke debootstrap using the --arch i386 option. Disclaimer: building an
+AMD64 base.tgz won’t work if you are using a 32bit kernel system of course. |
+
-
-
13.13. How do I create a base tar.gz (I386.tar.gz or AMD64.tar.gz)
-
Execute the following commands (requires root):
+
Finally place the generated tarball in /etc/grml/fai/config/basefiles/ (note
+that it needs to be uppercase letters matching the class names, so: e.g.
+AMD64.tar.gz for amd64 and I386.tar.gz for i386).
+
Then executing grml-live should use this file as base system instead of executing
+debootstrap. Check out the output for something like:
-
ARCH='amd64' # replace with i386 if necessary
-SUITE='squeeze' # using the current stable release should always work
-debootstrap --arch "$ARCH" --exclude=info,tasksel,tasksel-data "$SUITE" "$ARCH" http://debian.netcologne.de/debian
-cd "$ARCH"
-rm var/cache/apt/archives/*.deb
-tar zcf ../"${ARCH}".tar.gz *
+
[...]
+ftar: extracting //etc/grml/fai/config/basefiles///AMD64.tar.gz to /srv/grml64_testing/grml_chroot//
+[...]
-
And finally place the generated tarball in /etc/grml/fai/config/basefiles/ (note
-that it needs to be uppercase letters matching the class names, so: AMD64.tar.gz
-for amd64 and I386.tar.gz for i386).
-
13.14. How do I set up an autobuild environment?
-
If you want to set up a system like daily.grml.org
-the Debian package grml-live-buildd provides all you need to start. Start with
-figuring out the cron job script /usr/share/grml-live/buildd/cronjob.sh.
-
If you want to automatically update the grml-live Debian package on your build
-system based on the git tree of grml-live (so you get bleeding edge of
-development which might is interesting for services like daily.grml.org) the
-provided release_helper.sh script provides everything you need. Execute as root:
-
-
-
echo "deb file:/home/grml-live-git/grml-live.build-area/ ./" >> /etc/apt/sources.list.d/grml-live.list
-adduser --disabled-login --disabled-password grml-live-git
-
-
Execute visudo to update sudo configuration and add the following line:
+
13.11. How to use your own local repository
+
Let’s assume you have Debian package(s) in your filesystem inside
+/home/foobar/local-packages
and want to provide them to your grml-live build.
+This can be achieved either 1) through a bind mount (using the MIRROR_DIRECTORY
+configuration) or 2) by serving a repository via HTTP.
+
+
13.11.1. Serving via bind mount / MIRROR_DIRECTORY
+
Make sure to create an according sources.list configuration file, e.g. using
+your own class name CUSTOM
:
-
grml-live-git ALL=NOPASSWD: /usr/bin/apt-get
+
# cat > /etc/grml/fai/config/files/etc/apt/sources.list.d/local-packages.list/CUSTOM << EOF
+deb file:///home/foobar/local-packages ./
+EOF
-
Switch to user grml-live-git and configure the rest:
+
Add the according MIRROR_DIRECTORY configuration to your grml-live configuration:
-
su - grml-live-git
-mkdir grml-live.build-area
-git clone git://git.grml.org/grml-live.git
-git config --global user.name "Grml-Live Git Autobuild"
-git config --global user.email "grml-live-git@$(hostname)"
+
# echo "MIRROR_DIRECTORY='/home/foobar/packages'" >> /etc/grml/grml-live.local
-
Finally install a cron job (as user grml-live-git) like:
+
Make sure the local directory looks like a mirror:
-
30 00 * * * cd /home/grml-live-git/grml-live.git/ && env AUTOBUILD=1 scripts/release_helper.sh >/home/grml-live-git/grml-live-build.log
+
% cd /home/foobar/packages
+% dpkg-scanpackages . /dev/null | gzip > Packages.gz
-
Tip: To find out the build date of the installed grml-live package just execute:
+
Finally invoke grml-live with your class name (CUSTOM
in this example) added
+to the list of classes on the command line (see grml-live option -c
).
+
+
+
13.11.2. Serving a repository via HTTP
+
Make sure to create an according sources.list configuration file, e.g. using
+your own class name CUSTOM
:
-
% apt-cache policy grml-live | grep 'Installed.*autobuild'
- Installed: 0.13.1~autobuild1300450381
+
# cat > /etc/grml/fai/config/files/etc/apt/sources.list.d/local-packages.list/CUSTOM << EOF
+deb http://127.0.0.1:8000/ ./
+EOF
-
and run "date -ud @$STRING" where $STRING is the number behind the "autobuild",
-like:
+
Make sure the local directory is served via HTTP on the according IP address and
+port. For the http://127.0.0.1:8000/
example from above it should be enough to
+just invoke:
-
% date -ud @1300450081
-Fri Mar 18 12:08:01 UTC 2011
+
% cd /home/foobar/packages
+% dpkg-scanpackages . /dev/null | gzip > Packages.gz
+% python -m SimpleHTTPServer 8000
+
+
+
+
+ |
+Of course you can also use a real Debian repository setup using tools like
+reprepro(1) and/or using a real web server, though for quick debugging sessions
+python’s SimpleHTTPServer in combination with dpkg-scanpackages from package
+dpkg-dev is a simple and easy approach. |
+
+
+
Finally invoke grml-live with your class name (CUSTOM
in this example) added
+to the list of classes on the command line (see grml-live option -c
).
-
-
13.15. I’ve a question which isn’t answered by this document
-
14. Download / install grml-live as a Debian package
-
Debian packages are available through the grml-repository at
-deb.grml.org. If you want to
-build a Debian package on your own (using for example a specific version or the
-current development tree), just execute:
+
Stable Debian packages are available through the grml-repository at
+deb.grml.org and the latest
+Git commits are available as Debian packages from
+jenkins.grml.org.
+If you want to build a Debian package on your own (using for example a specific
+version or the current development tree), just execute:
-
git clone git://git.grml.org/grml-live
+git clone git://git.grml.org/grml-live
cd grml-live
-debuild -us -uc
+debuild -us -uc
-
15. Source
+
15. Run grml-live directly from git
-
+
In case you want to run grml-live directly from the git repository checkout
+(after making sure all dependencies are installed), you should set
+GRML_FAI_CONFIG
so that a) it finds the according FAI configuration files and
+b) does not use the config files of an possibly installed grml-live
package.
+Usage example:
+
+
+
# export GRML_FAI_CONFIG=$(pwd)/etc/grml/fai
+# export SCRIPTS_DIRECTORY=$(pwd)/scripts
+# export TEMPLATE_DIRECTORY=$(pwd)/templates
+# ./grml-live -s sid -a amd64 -c GRMLBASE,GRML_FULL,AMD64
+
-
16. TODO list
+
16. Source
@@ -1827,7 +1832,8 @@ in different formats: