grml-live (0.0.10) unstable; urgency=low
+ * Drop patches which are part of FAI 3.2.3 now. Depend on
+ FAI version 3.2.3 therefor.
+ * FAI 3.2.3 has a new log schema, adjusted grml-live accordingly.
+ Quoting the NEWS file of FAI:
+ - LOGDIR is now /var/log/fai/$HOSTNAME/$FAI_ACTION_date+time
+ - LOGDIR is /tmp/fai during an installation (not dirinstall), and
+ will be copied to the path above at the end of an installation
+ * Log the executed FAI, squashfs and mkisofs command lines to
+ /var/log/grml-live.log.
+ * New option '-C <configuration_file>' for specifying a configuration
+ file. Needs heavy testing though, because the files are updated
+ during runtime it isn't as easy as expected to be. :-/
+ * Support $ZERO_FAI_LOGFILE inside grml-live configuration for removing
+ old FAI logs.
* Do not enable apt-listbugs if the binary is not available.
[Testing: issue340]
- * Add keychain package to GRML_MEDIUM.
* Add keychain package to GRML_SMALL.
+ * Add new packages to GRML_MEDIUM:
+ - grml-live
+ - keychain
+ - lzma-modules-2.6.23-grml
+ - squashfs-modules-2.6.23-grml (we build the module external now)
+ * Add new packages to GRML_FULL:
+ - aosd-cat
+ - grml-live
+ - lzma-modules-2.6.23-grml
+ - squashfs-modules-2.6.23-grml (we build the module external now)
+ * Support loading of squashfs module via
+ /etc/grml/fai/live-initramfs/grml-script.init-top
+ * Make sure we have pinning for grml-stable and grml-testing
+ repositories via /etc/grml/fai/apt/preferences, not matter where
+ the packages come from (web vs. local mirror/cache for example).
+ * Remove base.tgz from chroot directory.
* Do not create /etc/sysconfig/network-scripts and
/etc/sysconfig/provider any longer in cleanup script.
* Fix typo in bootsplash f3 (thanks, jimmy).
* Switch order of 'lang=us apm=power-off' to 'apm=poweroff' in
isolinyx/syslinux/grub configuration because getbootparam
of grml-autoconfig requires a whitespace inside /proc/cmdline.
+ * Support grml2ram bootoption inside isolinyx/syslinux/grub
+ configuration.
-- Michael Prokop <mika@grml.org> Mon, 19 Nov 2007 12:49:37 +0100
Package: grml-live
Architecture: all
-Depends: fai-client (>= 3.2), fai-server (>= 3.2), memtest86+ [i386 amd64], mkisofs, squashfs-tools, syslinux [i386 amd64], wget
+Depends: fai-client (>= 3.2.3), fai-server (>= 3.2.3), memtest86+ [i386 amd64], mkisofs, squashfs-tools, syslinux [i386 amd64], wget
Suggests: fai-doc
Description: build system for creating a grml (based) live-cd
This package provides the build system for creating
cp -a examples debian/grml-live/usr/share/doc/grml-live/
cp -a templates debian/grml-live/usr/share/grml-live/
cp -a scripts debian/grml-live/usr/share/grml-live/
- cp -a patches debian/grml-live/usr/share/grml-live/
cp -a buildd/*.sh debian/grml-live/usr/share/grml-live/buildd/
install -o root -m 640 buildd/grml-buildd.conf debian/grml-live/etc/grml/grml-buildd.conf
install -o root -m 755 grml-live debian/grml-live/usr/sbin/grml-live
*******************************************************************************
Important! This document is growing as requested. If you have questions which
aren't answered by this document yet please let me know: <mika@grml.org>!
-This document currently applies to grml-live version 0.0.6.
+This document currently applies to grml-live version 0.0.10.
*******************************************************************************
Description
/etc/grml/fai/config/package_config/ for a full list). So instead of GRML_SMALL
you can also use GRML_MEDIUM and GRML_FULL instead.
+ -C **CONFIGURATION_FILE**::
+
+The specified file is used as configuration file for grml-live. By default
+/etc/grml/grml-live.conf is used for main configuration. If a file named
+/etc/grml/grml-live.local exists it is used as well (sourced after reading
+/etc/grml/grml-live.conf to allow overriding settings). As a last option the
+specified configuration file is sourced so it is possible to override settings
+of /etc/grml/grml-live.conf as well as of /etc/grml/grml-live.local. 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. 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
+/etc/grml/grml-live.conf and/or /etc/grml/grml-live.local for configuration
+stuff used inside /etc/grml/fai/config.
+
-F::
Force execution and do not prompt for acknowledgment of configuration.
-t **TEMPLATE_DIRECTORY**::
-Specify place of the templates used for building the ISO. By default
+Specify place of the templates used for building the ISO. By default
(and if not manually specified) this is /usr/share/grml-live/templates/.
-u::
grml-live itself logs to /var/log/grml-live.log. Unless you set ZERO_LOGFILE in
/etc/grml/grml-live.conf the output is appended to the file. If you set the
-ZERO_LOGFILE configuration option the logfile will be truncated on a new
+ZERO_LOGFILE configuration option the logfile will be truncated on each new
invocation of grml-live.
-The FAI part of grml-live logs to /var/log/fai/dirinstall/$HOSTNAME - so the
-default being /var/log/fai/dirinstall/grml.
-
-If you are using the update option of grml-live (option -u) the logs are
-available at /var/log/fai/current.
+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.
Help, I'm using Debian etch and I don't have FAI version >3.2
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- wget http://www.informatik.uni-koeln.de/fai/download/etch/fai-client_3.2.1_all.deb \
- http://www.informatik.uni-koeln.de/fai/download/etch/fai-server_3.2.1_all.deb
- dpkg -i fai-client_3.2.1_all.deb fai-server_3.2.1_all.deb
+ wget http://www.informatik.uni-koeln.de/fai/download/etch/fai-client_3.2.3_all.deb \
+ http://www.informatik.uni-koeln.de/fai/download/etch/fai-server_3.2.3_all.deb \
+ http://www.informatik.uni-koeln.de/fai/download/etch/fai-doc_3.2.3_all.deb
+ dpkg -i fai-client_3.2.3_all.deb fai-server_3.2.3_all.deb fai-doc_3.2.3_all.deb
or check out the link:http://www.informatik.uni-koeln.de/fai/[FAI-homepage] for
further details.
I've problems with the build process. How to start debugging?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-Check out the logs inside /var/log/fai/dirinstall/... If you don't have the time
-to debug the problem in further detail or don't know how to proceed just send a
-copy of your config, logs and the commandline with a short problem description
-to <mika@grml.org>:
+Check out the logs inside /var/log/fai/... If you don't have the time to debug
+the problem in further detail or don't know how to proceed just 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 \
- /var/log/fai/dirinstall /etc/grml/fai
+ /etc/grml/grml-buildd.conf /var/log/fai /etc/grml/fai
Can I use my own (local) Debian mirror?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// main grml-repository:
Package: *
-Pin: origin deb.grml.org
+Pin: release o=The grml project,a=grml-testing,l=grml,c=main
Pin-Priority: 996
+Package: *
+Pin: release o=The grml project,a=grml-stable,l=grml,c=main
+Pin-Priority: 995
+
+Package: *
+Pin: origin deb.grml.org
+Pin-Priority: 994
+
// debian unstable pool (default):
Package: *
Pin: release a=unstable,o=Debian
Pin-Priority: 991
+
# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
# License: This file is licensed under the GPL v2 or any later version.
-# Latest change: Mon Nov 12 11:14:32 CET 2007 [mika]
+# Latest change: Sun Nov 25 18:28:54 CET 2007 [mika]
################################################################################
set -u
echo grml_chroot > $target/etc/debian_chroot
HOSTNAME=''
-[ -r /etc/grml/grml-live.conf ] && . /etc/grml/grml-live.conf
+[ -r /etc/grml/grml-live.conf ] && . /etc/grml/grml-live.conf
+[ -r /etc/grml/grml-live.local ] && . /etc/grml/grml-live.local
[ -n "$HOSTNAME" ] || HOSTNAME=grml
echo "$HOSTNAME" > $target/etc/hostname
echo "Softupdate of FAI via grml-live running"
if [ -r /etc/resolv.conf ] ; then
- if [ -r $target/etc/resolvconf/run/resolv.conf ] ; then
- cat /etc/resolv.conf >> $target/etc/resolvconf/run/resolv.conf
- else
- cat /etc/resolv.conf >> $target/etc/resolv.conf
- fi
+ if [ -r $target/etc/resolvconf/run/resolv.conf ] ; then
+ cat /etc/resolv.conf >> $target/etc/resolvconf/run/resolv.conf
+ else
+ cat /etc/resolv.conf >> $target/etc/resolv.conf
+ fi
fi
if [ -r $target/etc/policy-rc.d.conf ] ; then
fi
fi
+ # FAI softupdate executes upgrade only with the sources.list being
+ # present in the chroot :-/ - so let's do it on our own:
if [ -r /etc/grml/fai/apt/sources.list ] ; then
if [ -L $target/etc/apt/sources.list ] ; then
rm $target/etc/apt/sources.list
cp /etc/grml/fai/apt/sources.list $target/etc/apt/sources.list
fi
- # FAI softupdate does not execute upgrade, so let's do it on our own:
$ROOTCMD apt-get update
if [ -x $target/usr/bin/aptitude ] ; then
- if strings $target/usr/bin/aptitude | grep safe-upgrade 1>/dev/null ; then
+ if $ROOTCMD aptitude --help | grep -q safe-upgrade ; then
$ROOTCMD aptitude -y safe-upgrade
else
$ROOTCMD aptitude -y upgrade
grml-firefox
grml-hwinfo
grml-laptop
+grml-live
grml-mercurial-utils
grml-network
grml-policyrcd
ack-grep
acl
acpi
-acpi-support
acpid
acpidump
+acpi-support
acpitail
acpitool
adduser
alien
alsa-base
alsa-oss
-alsa-utils
alsaplayer-alsa
alsaplayer-common
alsaplayer-gtk
alsaplayer-jack
alsaplayer-oss
+alsa-utils
amanda-client
amanda-common
anacron
antiword
aoetools
+aosd-cat
+apache2.2-common
apache2-mpm-prefork
apache2-utils
-apache2.2-common
apcupsd
apcupsd-cgi
apel
apt
apt-dpkg-ref
apt-file
+aptitude
apt-listbugs
apt-listchanges
+aptsh
apt-show-source
apt-show-versions
apt-spy
apt-transport-https
apt-utils
apt-zip
-aptitude
-aptsh
apwal
ara
archivemail
argus-client
aria2
arj
-arp-scan
arping
+arp-scan
arptables
arpwatch
array-info
-array-util
arrayprobe
+array-util
ascii
ascii2binary
asciidoc
awesome
axel
axp
-backup-manager
backup2l
+backup-manager
backuppc
bacula-common
bacula-console
binclock
bind9
bind9-host
-binfmt-support
binfmtc
+binfmt-support
bing
binstats
binutils
bzip2
bzr
c3270
-ca-certificates
cabber
cabextract
caca-utils
+ca-certificates
cadaver
calcurse
calife
ccontrol
ccrypt
ccze
-cd-discid
cdbackup
cdbs
cdck
cdda2wav
cddb
+cd-discid
cdebootstrap
cdecl
cdparanoia
cfv
cgdb
check
-check
cheops
chkrootkit
chrootuid
cpulimit
crack
crack-common
-cracklib-runtime
cracklib2
+cracklib-runtime
cramfsprogs
cron
crosshurd
curl
curlftpfs
cvs
-cvs-buildpackage
cvs2cl
+cvs-buildpackage
cvsconnect
cvsdelta
cw
devio
devscripts
devtodo
-dh-kpatches
-dh-make
-dh-make-perl
dhcp3-client
dhcp3-common
dhcp3-server
dhcpdump
dhcping
+dh-kpatches
+dh-make
+dh-make-perl
di
diakonos
dialog
dnstracer
dnsutils
docbook
+docbook2odf
docbook-dsssl
docbook-to-man
-docbook2odf
dog
doscan
dosfstools
dupload
durep
dvb-utils
-dvd+rw-tools
dvdbackup
dvdisaster
+dvd+rw-tools
dvi2tty
dvipng
dviutils
facter
fai-client
fai-doc
-fai-server
fail2ban
+fai-server
fake
fakechroot
fakeroot
fetchmail
fgetty
file
-file-rc
filepp
+file-rc
filetraq
fileutils
findimagedupes
finger
firehol
fish
-fl-cow
flashrom
flawfinder
+fl-cow
flex
flexbackup
flite
freeradius-ldap
freesweep
ftp
-ftp-upload
ftpcopy
+ftp-upload
ftpwatch
fttools
funionfs
funny-manpages
-fuse-utils
fusedav
fuseiso
fuseiso9660
fusesmb
+fuse-utils
fvwm
fwlogwatch
fxload
gitweb
gkermit
gkrellm
-gkrellm-reminder
-gkrellm-volume
-gkrellm-x86info
gkrellmd
gkrellmitime
+gkrellm-reminder
+gkrellm-volume
gkrellmwireless
+gkrellm-x86info
gkrellshoot
gkrellweather
glark
hicolor-icon-theme
hnb
honeyd
-hostap-utils
hostapd
+hostap-utils
hostname
-hotkey-setup
hotkeys
+hotkey-setup
hotswap-text
hoz
hpijs
ii
iisemulator
ike-scan
-im-switch
imagemagick
imapcopy
imapfilter
imediff2
-imlib-base
imlib11
+imlib-base
imsniff
+im-switch
imwheel
inadyn
indent
laptop-detect
laptop-mode-tools
latex-beamer
+latexmk
latex-mk
latex-xcolor
-latexmk
lbdb
lcap
-ld.so.preload-manager
-ldap-utils
ldapscripts
+ldap-utils
ldapvi
lde
ldnsutils
+ld.so.preload-manager
leave
less
lft
links2
linneighborhood
lintian
-linux-sound-base
-linux-wlan-ng
linuxdoc-tools
linuxlogo
+linux-sound-base
+linux-wlan-ng
listadmin
live-initramfs
lkl
mrb
mrxvt
mrxvt-common
-ms-sys
msmtp
msort
-mt-st
+ms-sys
mtd-tools
mtools
-mtp-tools
mtpaint
+mtp-tools
mtr-tiny
+mt-st
multi-aterm
multipath-tools
multitail
ne
nedit
nemesis
-nessus-plugins
nessusclient
nessusd
-net-tools
+nessus-plugins
netbase
netcat
netcat6
nethogs
netmask
netpbm
-netpipe-tcp
netpipes
+netpipe-tcp
netrik
netris
netrw
netsed
netstat-nat
netsurf
+net-tools
netwag
netwox
newsbeuter
olsrd-plugins
op
opalmod
-open-iscsi
openafs-client
openafs-krb5
openbox
openbsd-inetd
openipmi
+open-iscsi
openjade
opensc
openssh-client
opie-client
orange
orpheus
-os-prober
osdsh
osiris
+os-prober
oss-compat
p0f
p3nfs
patchutils
pavuk
pax
-pax-utils
paxctl
+pax-utils
pbuilder
pbzip2
pciutils
perl
perl-base
perl-doc
+perlmagick
perl-modules
perl-suid
perl-tk
-perlmagick
pfqueue
pgf
pia
powermgmt-base
powernowd
powertop
-powertweak-gtk
powertweakd
+powertweak-gtk
pperl
ppmd
ppp
pppoe
pppoeconf
pppstatus
-pptp-linux
pptpd
+pptp-linux
preload
preview-latex-style
prismstumbler
pydb
pymacs
python
+python2.4
+python2.4-minimal
+python2.5
+python2.5-minimal
python-apt
python-cddb
python-celementtree
python-support
python-twisted-bin
python-urwid
-python2.4
-python2.4-minimal
-python2.5
-python2.5-minimal
pytris
qc-usb-utils
qjackctl
rtorrent
rubilicious
ruby
-ruby-prof
ruby1.8
ruby1.8-examples
+ruby-prof
rungetty
runit
rutilt
screen
screenie
scrot
-scsi-idle
scsiadd
+scsi-idle
scsitools
sdate
sdd
sic
sigit
sing
-sip-tester
sipsak
+sip-tester
sitecopy
sjog
sl
sm
smake
smartmontools
-smb-nat
smbc
smbclient
smbfs
smbldap-tools
+smb-nat
smbnetfs
sn
snarf
sound-recorder
sox
sp
-speech-dispatcher
speechd-el
+speech-dispatcher
speedometer
speex
spell
systune
sysvinit
sysvinit-utils
-t-prot
tagtool
tailor
taktuk
tct
tdl
telak
-telnet-ssl
telnetd-ssl
+telnet-ssl
testdisk
tetradraw
tetrinet-client
toshutils
tpconfig
tpp
+t-prot
tra
traceproto
traceroute
uruk
usbutils
usbview
-user-setup
userinfo
+user-setup
uswsusp
util-linux
util-linux-locales
vncommand
vnstat
vobcopy
-vorbis-tools
vorbisgain
+vorbis-tools
vpnc
vrfy
vrms
wcalc
wdiff
webcam
-webcam-server
webcamd
+webcam-server
webcheck
webcpp
weblint-perl
wpasupplicant
wprint
wput
-wwwconfig-common
wvdial
+wwwconfig-common
wyrd
-x-ttcidfont-conf
x11-common
x11vnc
x2x
xtermset
xtrace
xtrlock
+x-ttcidfont-conf
xtv
xutils
xutils-dev
#linux-source-2.6.23-grml
linux-wlan-ng-modules-2.6.23-grml
loop-aes-modules-2.6.23-grml
+lzma-modules-2.6.23-grml
madwifi-modules-2.6.23-grml
ndiswrapper-modules-2.6.23-grml
nozomi-modules-2.6.23-grml
rt2500-modules-2.6.23-grml
rt73-module-2.6.23-grml
sl-modem-modules-2.6.23-grml
+squashfs-modules-2.6.23-grml
sysprof-module-2.6.23-grml
tp-smapi-modules-2.6.23-grml
truecrypt-2.6.23-grml
grml-etc
grml-etc-core
grml-hwinfo
+grml-live
grml-network
grml-policyrcd
grml-rebuildfstab
zsh
PACKAGES aptitude I386
-linux-image-2.6.23-grml aufs-modules-2.6.23-grml grml-kerneladdons-2.6.23
-# linux-image-2.6.22-grml aufs-modules-2.6.22-grml grml-kerneladdons-2.6.22
+linux-image-2.6.23-grml squashfs-modules-2.6.23-grml lzma-modules-2.6.23-grml aufs-modules-2.6.23-grml grml-kerneladdons-2.6.23
PACKAGES aptitude AMD64
linux-image-2.6.23-grml64 aufs-modules-2.6.23-grml64
set -e
HOSTNAME=''
-[ -r /etc/grml/grml-live.conf ] && . /etc/grml/grml-live.conf
+[ -r /etc/grml/grml-live.conf ] && . /etc/grml/grml-live.conf
+[ -r /etc/grml/grml-live.local ] && . /etc/grml/grml-live.local
[ -n "$HOSTNAME" ] || HOSTNAME=grml
echo "$HOSTNAME" > $target/etc/hostname
set -e
USERNAME=''
-[ -r /etc/grml/grml-live.conf ] && . /etc/grml/grml-live.conf
+[ -r /etc/grml/grml-live.conf ] && . /etc/grml/grml-live.conf
+[ -r /etc/grml/grml-live.local ] && . /etc/grml/grml-live.local
[ -n "$USERNAME" ] || USERNAME=grml
if [ -r /etc/grml/fai/files/etc/sudoers ] ; then
set -e
USERNAME=''
-[ -r /etc/grml/grml-live.conf ] && . /etc/grml/grml-live.conf
+[ -r /etc/grml/grml-live.conf ] && . /etc/grml/grml-live.conf
+[ -r /etc/grml/grml-live.local ] && . /etc/grml/grml-live.local
[ -n "$USERNAME" ] || USERNAME=grml
if grep -q "$USERNAME:x:1000" $target/etc/group ; then
set -e
USERNAME=''
-[ -r /etc/grml/grml-live.conf ] && . /etc/grml/grml-live.conf
+[ -r /etc/grml/grml-live.conf ] && . /etc/grml/grml-live.conf
+[ -r /etc/grml/grml-live.local ] && . /etc/grml/grml-live.local
[ -n "$USERNAME" ] || USERNAME=grml
if [ -r /etc/grml/fai/files/etc/fstab ] ; then
set -e
HOSTNAME=''
-[ -r /etc/grml/grml-live.conf ] && . /etc/grml/grml-live.conf
+[ -r /etc/grml/grml-live.conf ] && . /etc/grml/grml-live.conf
+[ -r /etc/grml/grml-live.local ] && . /etc/grml/grml-live.local
[ -n "$HOSTNAME" ] || HOSTNAME=grml
if [ -r /etc/grml/fai/files/etc/hosts ] ; then
################################################################################
HOSTNAME=''
-[ -r /etc/grml/grml-live.conf ] && . /etc/grml/grml-live.conf
+[ -r /etc/grml/grml-live.conf ] && . /etc/grml/grml-live.conf
+[ -r /etc/grml/grml-live.local ] && . /etc/grml/grml-live.local
[ -n "$HOSTNAME" ] || HOSTNAME=grml
+if ! [ -d /var/log/fai/"$HOSTNAME"/last/ ] ; then
+ echo "Error: /var/log/fai/"$HOSTNAME"/last/ not available. Exiting.">&2
+ exit 1
+fi
+
if [ -x $target/usr/bin/dpkg-query ] ; then
$ROOTCMD dpkg-query -W --showformat='${Package}\t${Installed-Size;10}\n' > \
- /var/log/fai/dirinstall/$HOSTNAME/packages.size
+ /var/log/fai/$HOSTNAME/last/packages.size
fi
-COLUMNS=200 $ROOTCMD dpkg --list > /var/log/fai/dirinstall/$HOSTNAME/dpkg.list
-COLUMNS=200 $ROOTCMD dpkg --get-selections > /var/log/fai/dirinstall/$HOSTNAME/dpkg.selections
+COLUMNS=200 $ROOTCMD dpkg --list > /var/log/fai/$HOSTNAME/last/dpkg.list
+COLUMNS=200 $ROOTCMD dpkg --get-selections > /var/log/fai/$HOSTNAME/last/dpkg.selections
## END OF FILE #################################################################
if ifclass RELEASE ; then
HOSTNAME=''
- [ -r /etc/grml/grml-live.conf ] && . /etc/grml/grml-live.conf
+ [ -r /etc/grml/grml-live.conf ] && . /etc/grml/grml-live.conf
+ [ -r /etc/grml/grml-live.local ] && . /etc/grml/grml-live.local
[ -n "$HOSTNAME" ] || HOSTNAME=grml
if [ -r /etc/resolv.conf ] ; then
[ -r /proc/sys/kernel/printk ] && echo "0" > /proc/sys/kernel/printk
fi
+# Make sure we support squashfs:
+if ! grep -q squashfs /proc/filesystems ; then
+ modprobe -q squashfs || log_grml_failure_msg "Warning: look like you do not have support for squashfs"
+fi
+
if grep -q 'boot=live' /proc/cmdline 2>/dev/null ; then
log_grml_begin_msg "Finished early booting sequence." ; echo "$SUCCESS"
log_grml_begin_msg "Searching for GRML file, this might take a few seconds..."
# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
# License: This file is licensed under the GPL v2 or any later version.
-# Latest change: Sun Oct 28 16:26:36 CET 2007 [mika]
+# Latest change: Sun Nov 25 18:39:34 CET 2007 [mika]
################################################################################
# Main output directory
# Default: unset (so do not zero the logfile)
#ZERO_LOGFILE='1'
+# Do you want to zero / clean up / remove the previous logfiles of FAI
+# before executing grml-live? Otherwise keep all the logfiles inside
+# /var/log/fai/$HOSTNAME/...
+# Default: unset (so do not remove the logfile(s))
+#ZERO_FAI_LOGFILE='1'
+
# Which Debian suite to you want to use? Unless it is set it defaults to "etch"
# Supported values are: etch, lenny, sid
# SUITE="sid"
# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
# License: This file is licensed under the GPL v2 or any later version.
-# Latest change: Mon Nov 05 09:24:45 CET 2007 [mika]
+# Latest change: Sun Nov 25 20:08:06 CET 2007 [mika]
################################################################################
# read configuration files, set some misc variables {{{
# exit on any error:
set -e
-GRML_LIVE_VERSION='0.0.7'
+GRML_LIVE_VERSION='0.0.10'
CMDLINE="$0 $@"
ISO_DATE="$(date +%Y-%m-%d)"
exit 1
fi
+# see #449236
if [ -r /var/run/fai/fai_softupdate_is_running ] ; then
echo "/usr/sbin/fai softupdate already running or was aborted before.">&2
echo "You may remove /var/run/fai/fai_softupdate_is_running and try again.">&2
log "------------------------------------------------------------------------------"
exit "$EXIT"
}
+# trap bailout 1 2 3 6 9 14 15
trap bailout 1 2 3 15
# }}}
touch $LOGFILE
chown root:adm $LOGFILE
chmod 640 $LOGFILE
-# clean/zero logfile:
+# clean/zero grml-live logfile:
if [ -n "$ZERO_LOGFILE" ] ; then
echo -n > $LOGFILE
fi
+# clean/zero/remove old FAI directory:
+if [ -n "$ZERO_FAI_LOGFILE" ] ; then
+ if [ -d /var/log/fai/"$HOSTNAME" ] ; then
+ rm -rf /var/log/fai/"$HOSTNAME"/"$(readlink /var/log/fai/"$HOSTNAME"/last)"
+ fi
+fi
+
NFSROOT_CONF=/etc/grml/fai/make-fai-nfsroot.conf
# }}}
# command line parsing {{{
-while getopts "a:c:g:i:o:r:s:t:v:FhuV" opt; do
+while getopts "a:C:c:g:i:o:r:s:t:v:FhuV" opt; do
case "$opt" in
a) ARCH="$OPTARG" ;;
c) CLASSES="$OPTARG" ;;
+ C) CONFIG="$OPTARG" ;;
g) GRML_NAME="$OPTARG" ;;
i) ISO_NAME="$OPTARG" ;;
o) OUTPUT="$OPTARG"
echo
echo " FAI classes: $CLASSES"
echo " main directory: $OUTPUT"
+ [ -n "$CONFIG" ] && echo " configuration: $CONFIG"
[ -n "$CHROOT_OUTPUT" ] && echo " chroot target: $CHROOT_OUTPUT"
[ -n "$BUILD_OUTPUT" ] && echo " build target: $BUILD_OUTPUT"
[ -n "$ISO_OUTPUT" ] && echo " ISO target: $ISO_OUTPUT"
echo
fi
+# read local (non-packaged) configuration:
+LOCAL_CONFIG=/etc/grml/grml-live.local
+if [ -r "$LOCAL_CONFIG" ] ; then
+ log "Sourcing $LOCAL_CONFIG"
+ . $LOCAL_CONFIG
+else
+ LOCAL_CONFIG=''
+fi
+
+if [ -n "$CONFIG" ] ; then
+ if ! [ -f "$CONFIG" ] ; then
+ log "Sorry, $CONFIG could not be read. Exiting. [$(date)]"
+ eerror "Sorry, $CONFIG could not be read. Exiting."
+ bailout 1
+ else
+ log "Sourcing $CONFIG"
+ . $CONFIG
+ fi
+fi
+
start_seconds=$(cut -d . -f 1 /proc/uptime)
log "------------------------------------------------------------------------------"
log "Starting grml-live [${GRML_LIVE_VERSION}] run on $(date)"
-log "Executed command line: $CMDLINE"
+log "Executed grml-live command line:"
+log "$CMDLINE"
einfo "Logging actions to logfile $LOGFILE"
# }}}
# does this suck? YES!
if [ -n "$SUITE" ] ; then
- sed -i "s/SUITE=.*/SUITE=\"$SUITE\"/" $LIVE_CONF
- DIST="\|\ etch\ \|\ stable\ \|\ lenny\ \|\ testing\ \|\ sid\ \|\ unstable\ "
- sed -i "s/\(deb .\+\)\([ \t]+\)$DIST\([ \t]+\)\(main \)/\1\2 $SUITE \3\4/" $LIVE_CONF
+ for file in "$LIVE_CONF" "$CONFIG" "$LOCAL_CONFIG" ; do
+ if [ -n "$file" ] ; then
+ sed -i "s/SUITE=.*/SUITE=\"$SUITE\"/" $LIVE_CONF
+ DIST="\|\ etch\ \|\ stable\ \|\ lenny\ \|\ testing\ \|\ sid\ \|\ unstable\ "
+ sed -i "s/\(deb .\+\)\([ \t]+\)$DIST\([ \t]+\)\(main \)/\1\2 $SUITE \3\4/" $file
+ fi
+ done
+
sed -i "s/\(deb .\+\)\([ \t]+\)$DIST\([ \t]+\)\(main \)/\1\2 $SUITE \3\4/" /etc/grml/fai/apt/sources.list
# notice: activate grml-live pool only if we are building against unstable:
if grep -qe unstable -qe sid /etc/grml/fai/apt/sources.list ; then
sed -i 's/.*grml-live.*/# removed grml-live repository/' /etc/grml/fai/apt/sources.list
fi
- sed -i "s|FAI_DEBOOTSTRAP=\"[a-z]* |FAI_DEBOOTSTRAP=\"$SUITE |" $LIVE_CONF
+ for file in "$LIVE_CONF" "$CONFIG" "$LOCAL_CONFIG" ; do
+ if [ -n "$file" ] ; then
+ sed -i "s|FAI_DEBOOTSTRAP=\"[a-z]* |FAI_DEBOOTSTRAP=\"$SUITE |" "$file"
+ fi
+ done
sed -i "s|FAI_DEBOOTSTRAP=\"[a-z]* |FAI_DEBOOTSTRAP=\"$SUITE |" $NFSROOT_CONF
fi
ewarn "$CHROOT_OUTPUT exists already, skipping stage 'fai dirinstall'" ; eend 0
else
mkdir -p "$CHROOT_OUTPUT" || bailout 5 "Problem with creating $CHROOT_OUTPUT for FAI"
+
if [ -n "${MIRROR_DIRECTORY}" ] ; then
mkdir -p "${CHROOT_OUTPUT}/${MIRROR_DIRECTORY}"
mount --bind "${MIRROR_DIRECTORY}" "${CHROOT_OUTPUT}/${MIRROR_DIRECTORY}"
fi
+
+ log "Executed FAI command line:"
+ log "fai $VERBOSE -C $GRML_FAI_CONFIG -c$CLASSES -u $HOSTNAME $FAI_ACTION $CHROOT_OUTPUT $FAI_ARGS"
fai $VERBOSE -C "$GRML_FAI_CONFIG" -c"$CLASSES" -u "$HOSTNAME" $FAI_ACTION "$CHROOT_OUTPUT" $FAI_ARGS | tee -a $LOGFILE
log "Setting /etc/grml_version to $GRML_NAME $VERSION Release Codename $RELEASENAME [$ISO_DATE]"
# notice: 'fai dirinstall' does not seem to exit appropriate, so:
ERROR=''
- if [ -n "$UPDATE" ] ; then
- CHECKLOG=/var/log/fai/current/
- else
- CHECKLOG=/var/log/fai/dirinstall/$HOSTNAME/
- fi
+ CHECKLOG=/var/log/fai/$HOSTNAME/last
if [ -r "$CHECKLOG/software.log" ] ; then
# 1 errors during executing of commands
# Unable to write mmap - msync (28 No space left on device)
ewarn "$BUILD_OUTPUT/live exists already, skipping stage 'squashfs'" ; eend 0
else
[ -d "$BUILD_OUTPUT"/live ] || mkdir "$BUILD_OUTPUT"/live
+ # make sure we don't leave (even an empty) base.tgz:
+ [ -f "$CHROOT_OUTPUT/base.tgz" ] && rm -f "$CHROOT_OUTPUT/base.tgz"
+
+ # execute squashfs:
+ log "mksquashfs $CHROOT_OUTPUT/* $BUILD_OUTPUT/live/grml.squashfs -noappend"
mksquashfs $CHROOT_OUTPUT/* $BUILD_OUTPUT/live/grml.squashfs -noappend
log "Finished execution of stage 'squashfs' [$(date)]"
einfo "Finished execution of stage 'squashfs'" ; eend 0
mkdir -p "$ISO_OUTPUT" || bailout 6 "Problem with creating $ISO_OUTPUT for stage 'iso build'"
CURRENT_DIR=$(pwd)
cd "$BUILD_OUTPUT" &&
+ log "mkisofs -V grml $VERSION -publisher 'grml-live | grml.org' -l -r -J -no-emul-boot -boot-load-size 4 -boot-info-table -b $BOOT_FILE -o ${ISO_OUTPUT}/${ISO_NAME} ."
mkisofs -V "grml $VERSION" -publisher 'grml-live | grml.org' \
-l -r -J -no-emul-boot -boot-load-size 4 -boot-info-table \
-b $BOOT_FILE \
+++ /dev/null
---- /usr/sbin/fai 2007-10-17 21:20:47.000000000 +0000
-+++ /usr/sbin/fai 2007-10-17 21:20:50.000000000 +0000
-@@ -223,7 +223,7 @@
-
- export NFSROOT=$(source $FAI_ETC_DIR/make-fai-nfsroot.conf; echo $NFSROOT)
- export FAI_DEBOOTSTRAP=$(source $FAI_ETC_DIR/make-fai-nfsroot.conf; echo $FAI_DEBOOTSTRAP)
-- export FAI_DEBOOTSTRAP_OPT=$(source $FAI_ETC_DIR/make-fai-nfsroot.conf; echo $FAI_DEBOOTSTRAP_OPT)
-+ export FAI_DEBOOTSTRAP_OPTS=$(source $FAI_ETC_DIR/make-fai-nfsroot.conf; echo $FAI_DEBOOTSTRAP_OPTS)
-
- fi
-
+++ /dev/null
---- /usr/lib/fai/subroutines-linux 2007-10-17 21:21:11.000000000 +0000
-+++ /usr/lib/fai/subroutines-linux 2007-10-17 21:21:03.000000000 +0000
-@@ -124,7 +124,7 @@
-
- local dversion=$(dpkg -l debootstrap | grep debootstrap | cut -f7 -d' ')
- echo "Creating base system using debootstrap version $dversion"
-- echo "Calling debootstrap $1 $FAI_ROOT $2"
-+ echo "Calling debootstrap $1 $FAI_DEBOOTSTRAP_OPTS $FAI_ROOT $2"
- yes '' | LC_ALL=C debootstrap $FAI_DEBOOTSTRAP_OPTS $1 $FAI_ROOT $2
- }
- # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+++ /dev/null
---- /usr/lib/fai/updatebase.orig 2007-10-29 00:12:49.000000000 +0100
-+++ /usr/lib/fai/updatebase 2007-10-29 00:13:27.000000000 +0100
-@@ -31,7 +31,11 @@
- [ $? -ne 0 ] && yes '' | $ROOTCMD dpkg --configure -a
- # using the above value, causes an error: "dpkg need action"
- export aptopt=
-+if [ -x /usr/bin/aptitude ] ; then
-+$ROOTCMD aptitude $aptopt -f -y dist-upgrade </dev/null
-+else
- $ROOTCMD apt-get $aptopt -f -y dist-upgrade </dev/null
-+fi
- # update dpkg info which packages are available
- tmp=$($ROOTCMD mktemp)
- $ROOTCMD apt-cache dumpavail > $FAI_ROOT/$tmp
kernel /boot/isolinux/linux26 apm=power-off lang=us vga=791 verbose debug=vc debug initrd=initrd.gz boot=live initcall_debug nomce
initrd /boot/isolinux/initrd.gz
+title %GRML_NAME% %VERSION% - copy grml squashfs file to RAM
+kernel /boot/isolinux/linux26 toram=grml.squashfs apm=power-off lang=us vga=791 quiet boot=live nomce
+initrd /boot/isolinux/initrd.gz
+
+title %GRML_NAME% %VERSION% - copy medium to RAM
+kernel /boot/isolinux/linux26 toram apm=power-off lang=us vga=791 quiet boot=live nomce
+initrd /boot/isolinux/initrd.gz
+
title %GRML_NAME% %VERSION% - forensic mode
kernel /boot/isolinux/linux26 vga=791 lang=us nofstab noraid nolvm noautoconfig noswap raid=noautodetect quiet initrd=initrd.gz boot=live
initrd /boot/isolinux/initrd.gz
MENU DEFAULT
KERNEL linux26
APPEND apm=power-off lang=us vga=791 quiet initrd=initrd.gz boot=live nomce
-# APPEND apm=power-off lang=us vga=791 live-media-path=/GRML quiet initrd=initrd.gz boot=live nomce
+LABEL grml2ram
+MENU LABEL grml2ram - Copy Squashfs file to RAM
+MENU DEFAULT
+KERNEL linux26
+APPEND apm=power-off toram=grml.squashfs lang=us vga=791 quiet initrd=initrd.gz boot=live nomce
+
+# deprecated:
LABEL old
MENU LABEL old
KERNEL linux26
MENU DEFAULT
KERNEL linux26
APPEND apm=power-off lang=us vga=791 quiet initrd=initrd.gz boot=live nomce
-# APPEND apm=power-off lang=us vga=791 live-media-path=/GRML quiet initrd=initrd.gz boot=live nomce
+LABEL grml2ram
+MENU LABEL grml2ram - Copy Squashfs file to RAM
+MENU DEFAULT
+KERNEL linux26
+APPEND apm=power-off toram=grml.squashfs lang=us vga=791 quiet initrd=initrd.gz boot=live nomce
+
+# deprecated:
LABEL old
MENU LABEL old
KERNEL linux26