Drop pump from Depends now that we support dhclient.
[grml-autoconfig.git] / doc / grml-autoconfig.current.txt
1 Behavior in current Grml versions
2 ---------------------------------
3
4 This section applies to all Grml versions newer than release 2009.05.
5
6 The central concept of grml-autoconfig is the DCS directory which holds debs,
7 configuration and scripts which are used during system startup.
8
9 Determination of DCS directory
10 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
11
12 The DCS directory defaults to the root directory of the GRML live image. If a
13 file system labeled GRMLCFG is found, the DCS directory is the root directory of
14 that file system. Alternatively, the myconfig boot parameter can be used to
15 directly specify a device which is then taken as DCS directory
16 (myconfig=/dev/sda1, for example).
17
18 Without any additional boot parameters, the GCA at DCSDIR/config.tbz is
19 automatically unpacked and DCSDIR/scrips/grml.sh is automatically executed on
20 system startup. The 'noautoconfig' boot parameter disables this automatic
21 behavior.
22
23 Boot Parameters
24 ~~~~~~~~~~~~~~~
25
26 The following boot parameters are supported. Use them at the (isolinux)
27 bootprompt as documented here.
28
29 myconfig::
30
31    This parameter directly sets DCSDIR to the root directory of the specified
32    device. Usage examples:
33
34   myconfig=/dev/sda1                        => read DCS from usb-device
35   myconfig=/dev/fd0                         => read DCS from floppy-disk
36
37 home::
38
39     This parameter is for setting a specific partition as home directory.  Usage
40     examples:
41
42   home=/dev/sda3    =>  use /dev/sda3 as the homepartition
43   home=scan         =>  scan through the available partitions and search
44                         for file grml.img
45
46 partconf::
47
48     This parameter mounts the specified device in read-only mode and tries to
49     copy all files specified in /etc/grml/partconf to the Grml system. This
50     provides the possibility to use the configuration of a harddisk
51     installation. For example using the network configuration (which is
52     specified in /etc/network) is possible using this boot parameter. Usage
53     example:
54
55   partconf=/dev/sda2 => try to mount /dev/sda2 and copy files specified
56                         in /etc/grml/partconf to the booted Grml system
57
58 netconfig::
59
60     Use this parameter to restore configuration using wget to download a GCA
61     from the specified destination. You can also add variables to change the
62     file name depending on the host configuration. Predefined and useful
63     variables are $ARCH, $HOSTNAME and $KERNEL. Usage example:
64
65   netconfig=server.tld/path/to/config.tbz  =>   restore configuration using wget to download file config.tbz
66   netconfig=server.tld/config-$ARCH.tbz    =>   download config for specified architecture
67
68 netscript::
69     Use this parameter to download and run a script from specified destination:
70     You can also add variables to change the file name depending on the host
71     configuration. Predefined and useful variables are $ARCH, $HOSTNAME and
72     $KERNEL. The environment variable NETSCRIPT is set to the specified URI.
73     This can be used to detect if the script is executed via the netscript bootoption.
74     Usage example:
75
76   netcript=server.tld/path/to/script       =>   download and run script/executable from server
77   netscript=server.tld/script-$HOSTNAME    =>   download and run script/executable for specific host
78
79 extract::
80
81     Extract specific directories from the GCA which needs to be specified by
82     other means.
83
84   extract=/home/grml         => extract only /home/grml from archive
85   extract=/etc               => extract only /etc from archive
86   extract=/home/grml/config  => extract only $HOME/config from archive
87
88 scripts::
89
90     This parameter executes scripts. If an optional path is given, it is
91     relative to DCSDIR. If the path points to a file, this single file is
92     executed. If no path is given, it defaults to scripts/grml.sh.
93     If the given name points to a directory, all scripts inside it are
94     executed, but the run-parts name restrictions apply: script names must
95     consist entirely of upper and lower case letters, digits, underscores,
96     and hyphens. Usage examples:
97
98   scripts               =>   run script DCSDIR/scripts/grml.sh
99   scripts=foobar.sh     =>   run script foobar.sh in DCSDIR
100   scripts=foobar        =>   run all scripts inside DCSDIR/foobar directory
101
102 config::
103
104     This parameter restores a configuration using a GCA. If an optional path is
105     given, it is relative to DCSDIR. If no path is given, it defaults to
106     DCSDIR/config.tbz. Usage examples:
107
108   config                    =>   restore configuration using file DCSDIR/config.tbz
109   config=config_foobar.tbz  =>   restore configuration using file DCSDIR/config_foobar.tbz
110
111 debs::
112
113     This parameter allows automatic installation of deb packages while booting.
114     The path is relative to DCSDIR, not optional and is a shell wildcard. All
115     Files matching the wildcard are installed in a single dpkg --install call.
116     For backwards compatibility, if no slash is contained in the path, it is
117     taken relative to DCSDIR/debs.
118
119     Usage examples:
120
121   debs=*.deb        =>   install all debian packages (suffix .deb) from directory DCSDIR/debs/
122   debs=foo/01*.deb  =>   install all debian packages (suffix .deb) starting with 01 in the filename from directory DCSDIR/foo
123
124 debnet::
125
126     Search all local partitions and dm devices for file /etc/network/interfaces and
127     copy the directory /etc/network to the grml system and restart networking.
128
129 noautoconfig::
130
131     Deactivate automounting. By default the scripts try to mount a device with
132     label 'GRMLCFG'. If you specify the noautoconfig bootparam this automounting
133     will be deactivated.
134
135   noautoconfig            => disables auto mounting of label 'GRMLCFG'
136
137
138 Permanently adjust boot parameters
139 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
140
141 As you probably know you can adjust boot parameters on the bootprompt.  You want
142 to set some boot parameters permanently? That's possible via adding a directory
143 named 'bootparams' to the Grml ISO which has to be located at the root-directory
144 /bootparams/ (note: the directory is known as /live/image/bootparams/ on a
145 _running_ Grml system then). Place a textfile inside the directory containing
146 the boot parameters which should be appended to default ones (this corresponds
147 to booting without any special parameters).
148
149   mkdir bootparams
150   echo lang=de > bootparams/my_bootparams
151
152 Then burn a multisession CD where directory bootparams is located in the root
153 directory of the CD.
154
155 [NOTE]
156 Not all boot parameters can be used via /bootparams/. This is a limitation of
157 the way the kernel and userspace retrieve boot parameters. Boot parameter
158 regarding the kernel definitely do *NOT* work. Boot parameter related to
159 grml-autoconfig (the main part of the boot process in Grml running in userspace,
160 being all the stuff after startup of udev) are expected to work. Boot parameter
161 related to initrd/initramfs (the part between 'Searching for GRML file' and
162 startup of udev) are *NOT* covered by /bootparams/ as well yet.
163
164 TIP: the application k3b (not available on the live-CD but available through the
165 Debian repositories) provides an easy to use interface for doing the
166 multisession task.
167