document run-parts restrictions for script= option. [Closes: issue906]
[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. Usage example:
73
74   netcript=server.tld/path/to/script       =>   download and run script/executable from server
75   netscript=server.tld/script-$HOSTNAME    =>   download and run script/executable for specific host
76
77 extract::
78
79     Extract specific directories from the GCA which needs to be specified by
80     other means.
81
82   extract=/home/grml         => extract only /home/grml from archive
83   extract=/etc               => extract only /etc from archive
84   extract=/home/grml/config  => extract only $HOME/config from archive
85
86 scripts::
87
88     This parameter executes scripts. If an optional path is given, it is
89     relative to DCSDIR. If the path points to a file, this single file is
90     executed. If no path is given, it defaults to scripts/grml.sh.
91     If the given name points to a directory, all scripts inside it are
92     executed, but the run-parts name restrictions apply: script names must
93     consist entirely of upper and lower case letters, digits, underscores,
94     and hyphens. Usage examples:
95
96   scripts               =>   run script DCSDIR/scripts/grml.sh
97   scripts=foobar.sh     =>   run script foobar.sh in DCSDIR
98   scripts=foobar        =>   run all scripts inside DCSDIR/foobar directory
99
100 config::
101
102     This parameter restores a configuration using a GCA. If an optional path is
103     given, it is relative to DCSDIR. If no path is given, it defaults to
104     DCSDIR/config.tbz. Usage examples:
105
106   config                    =>   restore configuration using file DCSDIR/config.tbz
107   config=config_foobar.tbz  =>   restore configuration using file DCSDIR/config_foobar.tbz
108
109 debs::
110
111     This parameter allows automatic installation of deb packages while booting.
112     The path is relative to DCSDIR, not optional and is a shell wildcard. All
113     Files matching the wildcard are installed in a single dpkg --install call.
114     For backwards compatibility, if no slash is contained in the path, it is
115     taken relative to DCSDIR/debs.
116
117     Usage examples:
118
119   debs=*.deb        =>   install all debian packages (suffix .deb) from directory DCSDIR/debs/
120   debs=foo/01*.deb  =>   install all debian packages (suffix .deb) starting with 01 in the filename from directory DCSDIR/foo
121
122 debnet::
123
124     Search all local partitions and dm devices for file /etc/network/interfaces and
125     copy the directory /etc/network to the grml system and restart networking.
126
127 noautoconfig::
128
129     Deactivate automounting. By default the scripts try to mount a device with
130     label 'GRMLCFG'. If you specify the noautoconfig bootparam this automounting
131     will be deactivated.
132
133   noautoconfig            => disables auto mounting of label 'GRMLCFG'
134
135
136 Permanently adjust boot parameters
137 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
138
139 As you probably know you can adjust boot parameters on the bootprompt.  You want
140 to set some boot parameters permanently? That's possible via adding a directory
141 named 'bootparams' to the Grml ISO which has to be located at the root-directory
142 /bootparams/ (note: the directory is known as /live/image/bootparams/ on a
143 _running_ Grml system then). Place a textfile inside the directory containing
144 the boot parameters which should be appended to default ones (this corresponds
145 to booting without any special parameters).
146
147   mkdir bootparams
148   echo lang=de > bootparams/my_bootparams
149
150 Then burn a multisession CD where directory bootparams is located in the root
151 directory of the CD.
152
153 [NOTE]
154 Not all boot parameters can be used via /bootparams/. This is a limitation of
155 the way the kernel and userspace retrieve boot parameters. Boot parameter
156 regarding the kernel definitely do *NOT* work. Boot parameter related to
157 grml-autoconfig (the main part of the boot process in Grml running in userspace,
158 being all the stuff after startup of udev) are expected to work. Boot parameter
159 related to initrd/initramfs (the part between 'Searching for GRML file' and
160 startup of udev) are *NOT* covered by /bootparams/ as well yet.
161
162 TIP: the application k3b (not available on the live-CD but available through the
163 Debian repositories) provides an easy to use interface for doing the
164 multisession task.
165