# adjust apt-pinning (only prefer squashfs stuff from grml): -cat >> /etc/apt/preferences << EOF -Package: * -Pin: origin deb.grml.org -Pin-Priority: 1-
X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=grml-live%2Findex.html;h=a3cd5ca5a53069b3918fd9c5bc73d87d0c85be29;hb=81e632382cd713a1ae8036b6539418866e4ae7ed;hp=3ab29e6e335896b0fae306d1bb2f56bc0100c001;hpb=b7b730a28da6a78247641d600128e7e17df1ba12;p=grml.org.git diff --git a/grml-live/index.html b/grml-live/index.html index 3ab29e6..a3cd5ca 100644 --- a/grml-live/index.html +++ b/grml-live/index.html @@ -752,9 +752,10 @@ 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>] [ +
grml-live [-a <architecture>] [-c <classe[s]>] [-C <configfile>] [ +-e <extract_iso_name>] [-g <grml_name>] [-i <iso_name>] [ +-o <output_directory>] [-r <release_name>] [-s <suite>] [ +-t <template_directory>] [-v <version_number>] [-U <username>] [ -AbBFnNqQuVz]
-Clean up output directories before attempting the build. Packs the chroot -into a tar archive, and removes chroot and ISO build directories before exiting. +Clean up all output directories before running the build process. After finishing, +clean up the Chroot target and Build target directories.
+The squashfs inside the specified ISO will be extracted and used as the chroot. +This option is useful for remastering, in combination with -A and -b or -u. +
+-Unpack chroot tar archive before starting. Most useful in combination with --A and -b or -u. -
-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 have: plain, original Debian squeeze (6.0) with debian-backports +enabled. (This is important for squashfs-tools.)
What we want: build a Grml ISO based on Debian/wheezy for the amd64 architecture using grml-live.
# 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: apt-get update apt-get --allow-unauthenticated install grml-debian-keyring@@ -1498,14 +1483,14 @@ apt-get --allow-unauthenticated install grml-debian-keyring
# 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+apt-get install -t squeeze-backports squashfs-tools +apt-get --no-install-recommends install grml-live
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:
First of all create the chroot using debootstrap:
# grep '^NFSROOT' /etc/grml/fai/make-fai-nfsroot.conf -NFSROOT=/grml/fai/nfsroot+
BASECHROOT='/tmp/basefile' +debootstrap squeeze "$BASECHROOT" http://cdn.debian.net/debian +tar -C "$BASECHROOT" --exclude='var/cache/apt/archives/*.deb' -zcf base.tar.gz ./
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:
+ + | +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. | +
Then move the base.tar.gz to /etc/grml/fai/config/basefiles/$CLASSNAME.tar.gz. +Use e.g. I386 as $CLASSNAME for i386 chroots and AMD64 for amd64 chroots.
Now executing grml-live should use this file as base system instead of executing +debootstrap. Check out the output for something like:
[...] -ftar: extracting /etc/grml/fai/config/basefiles///AMD64.tar.gz to -/grml-live/grml-live_20071029.22138/grml_chroot// +ftar: extracting //etc/grml/fai/config/basefiles///AMD64.tar.gz to /srv/grml64_testing/grml_chroot// [...]
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:
grml-live-git ALL=NOPASSWD: /usr/bin/apt-get-
Switch to user grml-live-git and configure the rest:
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)"-
Finally install a cron job (as user grml-live-git) like:
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-
Tip: To find out the build date of the installed grml-live package just execute:
% apt-cache policy grml-live | grep 'Installed.*autobuild' - Installed: 0.13.1~autobuild1300450381-
and run "date -ud @$STRING" where $STRING is the number behind the "autobuild", -like:
% date -ud @1300450081 -Fri Mar 18 12:08:01 UTC 2011-