Please notice that you should have a fast network connection as all the Debian
packages will be downloaded and installed via network. If you want to use a
local mirror (strongly recommended if you plan to use grml-live more than once)
-checkout mkdebmirror (see /usr/share/doc/grml-live/examples/mkdebmirror),
-debmirror(1), reprepro(1) (see /usr/share/doc/grml-live/examples/reprepro/ for a
+checkout debmirror(1), reprepro(1) (see /usr/share/doc/grml-live/examples/reprepro/ for a
sample configuration), apt-cacher(1) and approx(8). To avoid downloading the
base system again and again check out <<create-a-base-tgz,the base tar.gz
feature>>.
Specify the Debian suite you want to use for your live-system. If unset defaults
to "testing". Supported values are: stable, testing, unstable (or their
-corresponding release names like "jessie"). Please be aware that recent Debian
+corresponding release names like "stretch"). Please be aware that recent Debian
suites might require a recent base.tgz
(${GRML_FAI_CONFIG}/config/basefiles/$CLASSNAME.tar.gz) or a recent version of
debootstrap.
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 support for file-rc is no longer being actively
-maintained (the Grml team happily accepts patches though) and file-rc (upstream
-wise) might disappear too.
+this class. Please notice that the Grml team no longer provides support for it
+though.
* FRESHCLAM: execute freshclam (if it's present) to update clamav definitions
(increases resulting ISO size ~70MB). By default it's skipped to avoid bigger
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-i386-grml +
-linux-image-amd64-grml) 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).
+enough, because the kernel packages (e.g. linux-image-pass:[*]) are chosen in
+further GRML_pass:[*] 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_FULL: full featured Grml, also known as the "normal", full grml as
-introduced in December 2011 (~600MB ISO size).
+introduced in December 2011 (~750 ISO size).
-* GRML_SMALL: minimum sized Grml version, known as grml-small (~300MB ISO
+* GRML_SMALL: minimum sized Grml version, known as grml-small (~360MB ISO
size).
* LATEX: LaTeX(-related) packages like auctex, texlive,...
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,AMD64 ..." only the configuration of GRMLBASE,
-GRML_SMALL and and AMD64 will be taken. If you use 'grml-live -c
+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
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 1.5GB are required for a minimal grml-live
-run (\~850MB for the chroot [$CHROOT_OUTPUT], \~300MB for the build target
-[$BUILD_OUTPUT], \~30MB for the netboot files and \~300MB for the resulting ISO
+* 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" to workaround this problem as far as possible)
+* your output directory should not be mounted with any of the "nodev", "noexec"
+or "nosuid" mount options. (/tmp typically is at least "nodev" and "nosuid" on
+most systems.)
+
For further information see next section.
[[X8]]
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 jessie (8.x).
+What we have: plain, original Debian stretch (9.x).
-What we want: build a Grml ISO based on Debian/jessie for the amd64 architecture
+What we want: build a Grml ISO based on Debian/stretch for the amd64 architecture
using grml-live.
Instructions
# CHROOT_INSTALL="/etc/grml/fai/chroot_install"
## adjust if necessary (defaults to ./grml/):
## OUTPUT="/srv/grml-live"
- FAI_DEBOOTSTRAP="jessie http://ftp.debian.org/debian/"
+ FAI_DEBOOTSTRAP="stretch http://ftp.debian.org/debian/"
# ARCH="amd64"
CLASSES="GRMLBASE,GRML_FULL,AMD64"
EOF
grml-live you can get commercial support via
link:http://grml-solutions.com/[Grml Solutions].
+Note that FAI doesn't abort immediately on errors that will ultimately cause
+the build to fail. Be sure to look through the logs and find the actual error;
+look for lines that start with "E: " or contain "FAILED" or "exit code 1".
+Some messages that may look like errors are actually benign; e.g.
+"/tmp/grml64/grml_chroot/var/lib/dpkg is not a mounted ramdisk" is not an error.
+
[[install-local-files]]
How do I install further files into the chroot/ISO?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[...]
APT_PROXY="http://localhost:3142/"
[...]
- FAI_DEBOOTSTRAP="jessie http://localhost:3142/ftp.debian.org/debian jessie main contrib non-free"
+ FAI_DEBOOTSTRAP="stretch http://localhost:3142/ftp.debian.org/debian stretch 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.
How do I revert the manifold feature from an ISO?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-The so called manifold feature Grml ISOs use by default allows one to use the same
-ISO for CD boot and USB boot. If you notice any problems when booting just
-revert the manifold feature running:
+By default, Grml ISOs use isohybrid to allow them to be booted from CDs as
+well as USB sticks. Manifold is an alternative to isohybrid.
+
+If you notice any problems
+when booting manifold-crafted media, just revert the manifold feature running:
% 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:
+syslinux, used by default for official Grml images) then just execute:
% isohybrid grml.iso
First of all create the chroot using debootstrap (requires root):
BASECHROOT='/tmp/basefile' # path where the chroot gets generated
- SUITE='jessie' # using the current stable release should always work
+ 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 ./
# 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
[[source]]