summaryrefslogtreecommitdiffstats
path: root/docs/boot-options.txt
blob: c98c93c1ba0e541e265c34f1c1534110c3e2c5f4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
Anaconda Boot Options
=====================
:Author: Anaconda Developers <anaconda-devel-list@redhat.com>

//Actual authors:
//  Will Woods <wwoods@redhat.com>
//  Anne Mulhern <amulhern@redhat.com>

// written in asciidoc: http://www.methods.co.nz/asciidoc/
// here's a few macros to improve readability in the text below..
:dracutdoc:    http://www.kernel.org/pub/linux/utils/boot/dracut/dracut.html
:dracutkernel: {dracutdoc}#dracutcmdline7[`dracut.kernel(7)`]
:dracutnet:    {dracutdoc}#_network[the "Network" section of `dracut.kernel(7)`]
:dracutdebug:  {dracutdoc}#_troubleshooting[dracut "Troubleshooting" guide]
:anacondawiki: https://fedoraproject.org/wiki/Anaconda[Anaconda wiki]


These are the boot options that are useful when starting Anaconda. For more
information refer to the appropriate Installation Guide for your release and
to the {anacondawiki}.

Anaconda bootup is handled by dracut, so most of the kernel arguments handled
by dracut are also valid. See {dracutkernel} for details on those options.

Throughout this guide, installer-specific options are prefixed with
`inst` (e.g. `inst.ks`). Options specified without the `inst` prefix are
recognized, but the prefix may be required in a future release.

[[repo]]
Installation Source
-------------------

.Installable Trees
[NOTE]
==============================================================================
An _installable tree_ is a directory structure containing installer
images, packages, and repodata.
footnote:[an installable tree must contain a valid `.treeinfo` file for
`inst.repo` or `inst.stage2` to work.]

Usually this is either a copy of the DVD media (or loopback-mounted DVD
image), or the `<arch>/os/` directory on the Fedora mirrors.
==============================================================================

[[inst.repo]]
=== inst.repo ===
This gives the location of the _Install Source_ - that is, the place where the
installer can find its images and packages. It can be specified in a few
different ways:

`inst.repo=cdrom`::
Search the system's CDROM drives for installer media. This is the default.

`inst.repo=cdrom:<device>`::
Look for installer media in the specified disk device.

`inst.repo=hd:<device>:<path>`::
Mount the given disk partition and install from the given path.

`inst.repo=[http,https,ftp]://<host>/<path>`::
Look for an installable tree at the given URL.

`inst.repo=nfs:[<options>:]<server>:/<path>`::
Mount the given NFS server and path. Uses NFS version *3* by default.
+
You can specify what version of the NFS protocol to use by adding +nfsvers=X+
to the `options`.

[[diskdev]]
.Disk Device Names
[NOTE]
======================================================================
Disk devices may be specified with any of the following forms:

Kernel Device Name::
    `/dev/sda1`, `sdb2`
Filesystem Label::
    `LABEL=FLASH`, `LABEL=Fedora`, `CDLABEL=Fedora\x2017\x20x86_64`
Filesystem UUID::
    `UUID=8176c7bf-04ff-403a-a832-9557f94e61db`

Non-alphanumeric characters should be escaped with +\xNN+, where
'NN' is the hexidecimal representation of the character (e.g. +\x20+ for
the space character (' ').
======================================================================

=== inst.stage2 ===
This specifies the location to fetch only the installer runtime image;
packages will be ignored. Otherwise the same as <<inst.repo,`inst.repo`>>.

=== inst.dd ===
This specifies the location for driver rpms. May be specified multiple times.
Locations may be specified using any of the formats allowed for
<<inst.repo,`inst.repo`>>.

=== inst.multilib ===
This sets yum's multilib_policy to "all" (as opposed to "best").

[[kickstart]]
Kickstart
---------

=== inst.ks ===
Give the location of a kickstart file to be used to automate the install.
Locations may be specified using any of the formats allowed for
<<inst.repo,`inst.repo`>>.

For any format the `<path>` component defaults to `/ks.cfg` if it is omitted.

If `inst.ks` is used without a value, the installer will look for
`nfs:<next_server>:/<filename>`:

* `<next_server>` is the DHCP "next-server" option, or the IP of the DHCP server itself,
* `<filename>` is the DHCP "filename" option, or `/kickstart/`, and
* if the filename given ends in `/`, `<ip>-kickstart` is added
* example:
** DHCP server: `192.168.122.1`
** client address: `192.168.122.100`
*** kickstart file: `nfs:192.168.122.1:/kickstart/192.168.122.100-kickstart`

==== inst.ks.sendmac ====
Add headers to outgoing HTTP requests which include the MAC addresses of all
network interfaces. The header is of the form:

* `X-RHN-Provisioning-MAC-0: eth0 01:23:45:67:89:ab`

This is helpful when using `inst.ks=http...` to provision systems.

==== inst.ks.sendsn ====
Add a header to outgoing HTTP requests which includes the system's serial
number. footnote:[as read from `/sys/class/dmi/id/product_serial`]
The header is of the form:

* `X-System-Serial-Number: <serial>`

[[network]]
Network Options
---------------
Initial network setup is handled by dracut. For detailed information consult
{dracutnet}.

The most common dracut network options are covered here, along with some
installer-specific options.

=== ip ===
Configure one (or more) network interfaces. You can use multiple `ip`
arguments to configure multiple interfaces, but if you do you must specify an
interface for every `ip=` argument, and you must specify which interface
is the primary boot interface with `bootdev`.

Accepts a few different forms; the most common are:

`ip=<dhcp|dhcp6|auto6|ibft>`::
Try to bring up every interface using the given autoconf method.  Defaults
to `ip=dhcp` if network is required by `inst.repo`, `inst.ks`, `inst.updates`,
etc.

`ip=<interface>:<autoconf>`::
Bring up only one interface using the given autoconf method, e.g.
`ip=eth0:dhcp`.

`ip=<ip>::<gateway>:<netmask>:<hostname>:<interface>:none`::
Bring up the given interface with a static network config, where:
[horizontal]
  `<ip>`::: The client IP address. IPv6 addresses may be specified by putting
            them in square brackets, like so: `[2001:DB8::1]`.
  `<gateway>`::: The default gateway. IPv6 addresses are accepted here too.
  `<netmask>`::: The netmask (e.g. `255.255.255.0`) or prefix (e.g. `64`).
  `<hostname>`::: Hostname for the client machine. This component is optional.

`ip=<ip>::<gateway>:<netmask>:<hostname>:<interface>:<autoconf>:<mtu>`::
Bring up the given interface with the given autoconf method, but override the
automatically obtained IP/gateway/etc. with the provided values.
+
Technically all of the items are optional, so if you want to use dhcp but also
set a hostname you can use `ip=::::<hostname>::dhcp`.

=== nameserver ===
Specify the address of a nameserver to use. May be used multiple times.

=== bootdev ===
Specify which interface is the boot device. Required if multiple ip=
options are used.

=== ifname ===
`ifname=<interface>:<MAC>`::
Assign the given interface name to the network device with the given MAC. May
be used multiple times.

=== inst.dhcpclass ===
Set the DHCP vendor class identifier.
footnote:[ISC `dhcpd` will see this value as "option
vendor-class-identifier".] Defaults to `anaconda-$(uname -srm)`.


Console / Display Options
-------------------------

[[console]]
=== console ===
This is a kernel option that specifies what device to use as the primary
console. For example, if your console should be on the first serial port, use
`console=ttyS0`.

You can use multiple `console=` options; boot message will be displayed on
all consoles, but anaconda will put its display on the last console listed.

Implies <<inst.text,`inst.text`>>.

=== inst.lang ===
Set the language to be used during installation. The language specified must
be valid for the `lang` kickstart command.

=== inst.geoloc ===
Configure geolocation usage in Anaconda. Geolocation is used to pre-set
language and time zone.

`inst.geoloc=0`:: Disables geolocation.

`inst.geoloc=provider_fedora_geoip`:: Use the Fedora GeoIP API (default).

`inst.geoloc=provider_hostip`:: Use the Hostip.info GeoIP API.

=== inst.keymap ===
Set the keyboard layout to use. The layout specified must be valid for use with
the `keyboard` kickstart command.

=== inst.cmdline ===
Run the installer in command-line mode. This mode does not
allow any interaction; all options must be specified in a kickstart file or
on the command line.

=== inst.graphical ===
Run the installer in graphical mode. This is the default.

[[inst.text]]
=== inst.text ===
Run the installer using a limited text-based UI. Unless you're using a
kickstart file this probably isn't a good idea; you should use VNC instead.

=== inst.resolution ===
Specify screen size for the installer. Use format nxm, where n is the
number of horizontal pixels, m the number of vertical pixels. The lowest
supported resolution is 800x600.

[[inst.vnc]]
=== inst.vnc ===
Run the installer GUI in a VNC session. You will need a VNC client application
to interact with the installer. VNC sharing is enabled, so multiple clients
may connect.

A system installed with VNC will start in text mode (runlevel 3).

==== inst.vncpassword ====
Set a password on the VNC server used by the installer.

==== inst.vncconnect ====
`inst.vncconnect=<host>[:<port>]`::
Once the install starts, connect to a listening VNC client at the given host.
Default port is 5900.
+
Use with `vncviewer -listen`.

=== inst.headless ===
Specify that the machine being installed onto doesn't have any display
hardware, and that anaconda shouldn't bother looking for it.

=== inst.xdriver ===
Specify the X driver that should be used during installation and on the
installed system.

=== inst.usefbx ===
Use the framebuffer X driver (`fbdev`) rather than a hardware-specific driver.

Equivalent to `inst.xdriver=fbdev`.

=== inst.sshd ===
Start up `sshd` during system installation. You can then ssh in while the
installation progresses to debug or monitor its progress.

*NOTE*: The `root` account has no password by default. You can set one using
the `sshpw` kickstart command.

Debugging and Troubleshooting
-----------------------------

=== inst.rescue ===
Run the rescue environment. This is useful for trying to diagnose and fix
broken systems.

[[inst.updates]]
=== inst.updates ===
Give the location of an `updates.img` to be applied to the installer runtime.
Locations may be specified using any of the formats allowed for `inst.repo`.

For any format the `<path>` component defaults to `/updates.img` if it is
omitted.

=== inst.loglevel ===
`inst.loglevel=<debug|info|warning|error|critical>`::
Set the minimum level required for messages to be logged on a terminal (log
files always contain messages of all levels). The default value is `info`.

=== inst.syslog ===
`inst.syslog=<host>[:<port>]`::
Once installation is running, send log messages to the syslog process on
the given host. The default port is 514 (UDP).
+
Requires the remote syslog process to accept incoming connections.

=== inst.virtiolog ===
Forward logs through the named virtio port (a character device at
`/dev/virtio-ports/<name>`). A port named `org.fedoraproject.anaconda.log.0`
will be used by default, if found.


Deprecated Options
------------------

These options should still be accepted by the installer, but they are
deprecated and may be removed soon.

=== method ===
This is an alias for <<inst.repo,`inst.repo`>>.

=== repo=nfsiso:... ===
The difference between an installable tree and a dir with an `.iso` file is
autodetected, so this is the same as `inst.repo=nfs:`...

=== dns ===
Use <<network,`nameserver`>> instead. Note that `nameserver` does not
accept comma-separated lists; use multiple `nameserver` options instead.

=== netmask, gateway, hostname ===
These can be provided as part of the <<network,`ip`>> option.

=== ip=bootif ===
A PXE-supplied BOOTIF option will be used automatically, so there's no need
for this.

=== ksdevice ===
[horizontal]
_Not present_::     The first device with a usable link is used
`ksdevice=link`::   Ignored (this is the same as the default behavior)
`ksdevice=bootif`:: Ignored (this is the default if `BOOTIF=` is present)
`ksdevice=ibft`::   Replaced with <<network, `ip=ibft`>>
`ksdevice=<MAC>`::  Replaced with <<network, `BOOTIF=${MAC/:/-}`>>
`ksdevice=<DEV>`::  Replaced with <<network,`bootdev=$MAC`>>

=== blacklist, nofirewire ===

`modprobe` handles blacklisting kernel modules on its own; try
`modprobe.blacklist=<mod1>,<mod2>...`

You can blacklist the firewire module with `modprobe.blacklist=firewire_ohci`.

Removed Options
---------------

These options are obsolete and have been removed.

=== askmethod, asknetwork ===
Anaconda's initramfs is now is completely non-interactive, so these have been
removed.

Instead, use <<repo,`inst.repo`>> or specify appropriate <<network,`network`>>
options.

=== serial ===
This option was never intended for public use; it was supposed to be used to
force anaconda to use `/dev/ttyS0` as its console when testing it on a live
machine.

Use `console=ttyS0` or similar instead. See <<console,`console`>> for details.

=== updates ===
Use <<inst.updates,`inst.updates`>> instead.

=== essid, wepkey, wpakey ===
Dracut doesn't support wireless networking, so these don't do anything.

=== ethtool ===
Who needs to force half-duplex 10-base-T anymore?

=== gdb ===
This was used to debug `loader`, so it has been removed. There are plenty of
options for debugging dracut-based initramfs - see the {dracutdebug}.

=== inst.mediacheck ===
Use the dracut option rd.live.check instead.

=== ks=floppy ===
We no longer support floppy drives. Try `inst.ks=hd:<device>` instead.

=== display ===
For remote display of the UI, use <<inst.vnc,`inst.vnc`>>.

=== utf8 ===
All this option actually did was set `TERM=vt100`. The default `TERM` setting
works fine these days, so this was no longer necessary.

=== noipv6  ===
ipv6 is built into the kernel and can't be removed by anaconda.

You can disable ipv6 with `ipv6.disable=1`. This setting will be carried onto
the installed system.

=== upgradeany ===
Anaconda doesn't handle upgrades anymore.

// vim: set tw=78 syntax=asciidoc: