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