diff options
author | Jeroen Schot <schot@a-eskwadraat.nl> | 2012-08-29 15:10:27 +0000 |
---|---|---|
committer | Jeroen Schot <schot@a-eskwadraat.nl> | 2012-08-29 15:10:27 +0000 |
commit | a292182f917a4104b223016e041410498f4d47a3 (patch) | |
tree | 31983bd3bb12e47ca30a949da0d472b93796a9ea /nl/appendix/preseed.xml | |
parent | f842e23756734b3ce4932695707bc416810e46cc (diff) | |
download | installation-guide-a292182f917a4104b223016e041410498f4d47a3.zip |
Restart Dutch translation of D-I manual in PO format.
Diffstat (limited to 'nl/appendix/preseed.xml')
-rw-r--r-- | nl/appendix/preseed.xml | 1624 |
1 files changed, 0 insertions, 1624 deletions
diff --git a/nl/appendix/preseed.xml b/nl/appendix/preseed.xml deleted file mode 100644 index 90ce8a4f6..000000000 --- a/nl/appendix/preseed.xml +++ /dev/null @@ -1,1624 +0,0 @@ -<!-- retain these comments for translator revision tracking --> -<!-- original version: 62798 untranslated --> - -<!-- -Be careful with the format of this file as it is parsed to generate -the example preconfiguration file. -In that file all text between <informalexample> tags that have the -attribute 'role="example"' set is included, except if a 'condition' -attribute is in force that does not match the specified release or if an -'arch' attribute is in force that does not match the specified architecture. - -Currently only a single variant of the example file is generated (for i386). ---> - -<appendix id="appendix-preseed"> -<title>Automating the installation using preseeding</title> - -<para> - -This appendix explains how to preseed answers to questions in &d-i; to -automate your installation. - -</para><para> - -The configuration fragments used in this appendix are also available as an -example preconfiguration file from &urlset-example-preseed;. - -</para> - - <sect1 id="preseed-intro"> - <title>Introduction</title> -<para> - -Preseeding provides a way to set answers to questions asked during the -installation process, without having to manually enter the answers while -the installation is running. This makes it possible to fully automate most -types of installation and even offers some features not available during -normal installations. - -</para><para> - -Preseeding is not required. If you use an empty preseed file, the installer -will behave just the same way as in a normal manual installation. Each -question you preseed will (if you got it right!) modify the installation in -some way from that baseline. - -</para> - - <sect2 id="preseed-methods"> - <title>Preseeding methods</title> -<para> - -There are three methods that can be used for preseeding: -<firstterm>initrd</firstterm>, <firstterm>file</firstterm> and -<firstterm>network</firstterm>. Initrd preseeding will work with any -installation method and supports preseeding of more things, but it requires -the most preparation. File and network preseeding each can be used with -different installation methods. - -</para><para> - -The following table shows which preseeding methods can be used with which -installation methods. - -<informaltable> -<tgroup cols="4"> -<thead> -<row> - <entry>Installation method</entry><entry>initrd</entry> - <entry>file</entry><entry>network</entry> -</row> -</thead> - -<tbody> -<row> - <entry>CD/DVD</entry> - <entry>yes</entry> - <entry>yes</entry> - <entry>yes<footnote id='apx-ps-net'> - - <para> - but only if you have network access, and set <literal>preseed/url</literal> - appropriately - </para> - - </footnote></entry> -</row><row> - <entry>netboot</entry> - <entry>yes</entry> - <entry>no</entry> - <entry>yes</entry> -</row><row> - <entry>hd-media <phrase condition="bootable-usb">(including usb-stick)</phrase></entry> - <entry>yes</entry> - <entry>yes</entry> - <entry>yes<footnoteref linkend='apx-ps-net'/></entry> -</row><row condition="supports-floppy-boot"> - <entry>floppy based (cd-drivers)</entry> - <entry>yes</entry> - <entry>yes</entry> - <entry>yes<footnoteref linkend='apx-ps-net'/></entry> -</row><row condition="supports-floppy-boot"> - <entry>floppy based (net-drivers)</entry> - <entry>yes</entry> - <entry>no</entry> - <entry>yes</entry> -</row><row arch="s390"> - <entry>generic/tape</entry> - <entry>yes</entry> - <entry>no</entry> - <entry>yes</entry> -</row> -</tbody> - -</tgroup></informaltable> - -</para><para> - -An important difference between the preseeding methods is the point at which -the preconfiguration file is loaded and processed. For initrd preseeding -this is right at the start of the installation, before the first question is -even asked. For file preseeding this is after the CD or CD image has been -loaded. For network preseeding it is only after the network has been -configured. - -</para><para> - -Obviously, any questions that have been processed before the -preconfiguration file is loaded cannot be preseeded (this will include -questions that are only displayed at medium or low priority, like the -first hardware detection run). <xref linkend="preseed-bootparms"/> -offers a way to avoid these questions being asked. - -</para><para> - -In order to avoid the questions that would normally appear before the -preseeding occurs, you can start the installer in <quote>auto</quote> -mode. This delays questions that would normally be asked too early for -preseeding (i.e. language, country and keyboard selection) until after -the network comes up, thus allowing them to be preseeded. It also runs -the installation at critical priority, which avoids many unimportant -questions. See <xref linkend="preseed-auto"/> for details. - -</para> - </sect2> - - <sect2 id="preseed-limitations"> - <title>Limitations</title> -<para> - -Although most questions used by &d-i; can be preseeded using this method, -there are some notable exceptions. You must (re)partition an entire disk -or use available free space on a disk; it is not possible to use existing -partitions. - -</para> - </sect2> - -<!-- Joeyh feels this is too technical, so leave it out for now - <sect2 id="preseed-debconf"> - <title>Debconf basics</title> -<para> - -Preseeding makes use of the <classname>debconf</classname> framework. This -framework is the preferred mechanism used in &debian; to interact with the user -when configuring packages and also forms the heart of &d-i;. -In the <classname>debconf</classname> framework questions or dialogs are -based on <firstterm>templates</firstterm>. There are different types of -templates for different types of questions. The actual questions are -<quote>generated</quote> from templates at runtime; multiple questions can -use the same template. - -</para><para> - -The following types of templates are relevant for preseeding. - -</para> - -<itemizedlist spacing="compact"> -<listitem><para> - string: allows the user to type any value -</para></listitem> -<listitem><para> - password: similar to string but the value typed is not displayed -</para></listitem> -<listitem><para> - boolean: for yes/no or true/false type of questions -</para></listitem> -<listitem><para> - select: allows the user to select one option from a list -</para></listitem> -<listitem><para> - multiselect: allows the user to select zero, one or more options from a list -</para></listitem> -<listitem><para> - note: used to display a message -</para></listitem> -</itemizedlist> - -<para> - -In &d-i; templates are stored in a readable file -<filename>/var/cache/debconf/templates.dat</filename>. This file contains all fixed -text and all translations. It can also contain a default value for the -template. The fixed text can include variables that will be replaced at -runtime. - -</para><para> - -Another readable file <filename>/var/cache/debconf/questions.dat</filename> -is used to store the values for variables and the answers given to questions. -A question always refers to the template used to ask it. For obvious -security reasons the values for questions of type <quote>password</quote> -are stored in a separate, non-readable file in the same directory. - -</para> - </sect2> ---> - </sect1> - - - <sect1 id="preseed-using"> - <title>Using preseeding</title> -<para> - -You will first need to create a preconfiguration file and place it in -the location from where you want to use it. Creating the preconfiguration file -is covered later in this appendix. Putting it in the correct location is fairly -straightforward for network preseeding or if you want to read the file off -a floppy or usb-stick. If you want to include the file on a CD or DVD, you -will have to remaster the ISO image. How to get the preconfiguration file -included in the initrd is outside the scope of this document; please consult -the developers' documentation for &d-i;. - -</para><para> - -An example preconfiguration file that you can use as basis for your own -preconfiguration file is available from &urlset-example-preseed;. This file is -based on the configuration fragments included in this appendix. - -</para> - - <sect2 id="preseed-loading"> - <title>Loading the preconfiguration file</title> -<para> - -If you are using initrd preseeding, you only have to make sure a file named -<filename>preseed.cfg</filename> is included in the root directory of the -initrd. The installer will automatically check if this file is present and -load it. - -</para><para> - -For the other preseeding methods you need to tell the installer what file -to use when you boot it. This is normally done by passing the kernel a boot -parameter, either manually at boot time or by editing the bootloader -configuration file (e.g. <filename>syslinux.cfg</filename>) and adding the -parameter to the end of the append line(s) for the kernel. - -</para><para> - -If you do specify the preconfiguration file in the bootloader configuration, -you might change the configuration so you don't need to hit enter to boot the -installer. For syslinux this means setting the timeout to <literal>1</literal> -in <filename>syslinux.cfg</filename>. - -</para><para> - -To make sure the installer gets the right preconfiguration file, you can -optionally specify a checksum for the file. Currently this needs to be a -md5sum, and if specified it must match the preconfiguration file or the -installer will refuse to use it. - -</para> - -<informalexample><screen> -Boot parameters to specify: -- if you're netbooting: - preseed/url=http://host/path/to/preseed.cfg - preseed/url/checksum=5da499872becccfeda2c4872f9171c3d - -- if you're booting a remastered CD: - preseed/file=/cdrom/preseed.cfg - preseed/file/checksum=5da499872becccfeda2c4872f9171c3d - -- if you're installing from USB media (put the preconfiguration file in the - toplevel directory of the USB stick): - preseed/file=/hd-media/preseed.cfg - preseed/file/checksum=5da499872becccfeda2c4872f9171c3d -</screen></informalexample> - -<para> - -Note that <filename>preseed/url</filename> can be shortened to just -<filename>url</filename> and <filename>preseed/file</filename> to just -<filename>file</filename> when they are passed as boot parameters. - -</para> - </sect2> - - <sect2 id="preseed-bootparms"> - <title>Using boot parameters to preseed questions</title> -<para> - -If a preconfiguration file cannot be used to preseed some steps, the -install can still be fully automated, since you can pass preseed values on -the command line when booting the installer. - -</para><para> - -Boot parameters can also be used if you do not really want to use preseeding, -but just want to provide an answer for a specific question. Some examples where -this can be useful are documented elsewhere in this manual. - -</para><para> - -To set a value to be used inside &d-i;, just pass -<userinput><replaceable>path/to/variable</replaceable>=<replaceable>value</replaceable></userinput> -for any of the preseed variables listed in the examples in this appendix. -If a value is to be used to configure packages for the target system, you -will need to prepend the <firstterm>owner</firstterm><footnote> - -<para> -The owner of a debconf variable (or template) is normally the name of the -package that contains the corresponding debconf template. For variables -used in the installer itself the owner is <quote>d-i</quote>. -Templates and variables can have more than one owner which helps to -determine whether they can be removed from the debconf database if the -package is purged. -</para> - -</footnote> of the variable as in -<userinput><replaceable>owner</replaceable>:<replaceable>path/to/variable</replaceable>=<replaceable>value</replaceable></userinput>. -If you don't specify the owner, the value for the variable will not be -copied to the debconf database in the target system and thus remain unused -during the configuration of the relevant package. - -</para><para> - -Normally, preseeding a question in this way will mean that the question will -not be asked. To set a specific default value for a question, but still have -the question asked, use <quote>?=</quote> instead of <quote>=</quote> as -operator. See also <xref linkend="preseed-seenflag"/>. - -</para><para> - -Note that some variables that are frequently set at the boot prompt -have a shorter alias. If an alias is available, it is used in the -examples in this appendix instead of the full variable. The -<literal>preseed/url</literal> variable for example has been aliased as -<literal>url</literal>. Another example is the <literal>tasks</literal> -alias, which translates to <literal>tasksel:tasksel/first</literal>. - -</para><para> - -A <quote>--</quote> in the boot options has special meaning. Kernel -parameters that appear after the last <quote>--</quote> may be copied -into the bootloader configuration for the installed system (if supported by -the installer for the bootloader). The installer will automatically filter -out any options (like preconfiguration options) that it recognizes. - -</para> -<note arch="linux-any"><para> - -Current linux kernels (2.6.9 and later) accept a maximum of 32 command line -options and 32 environment options, including any options added by default -for the installer. If these numbers are exceeded, the kernel will panic -(crash). (For earlier kernels, these numbers were lower.) - -</para></note> -<para> - -For most installations some of the default options in your bootloader -configuration file, like <literal>vga=normal</literal>, may be safely -removed which may allow you to add more options for preseeding. - -</para> -<note><para> - -It may not always be possible to specify values with spaces for boot -parameters, even if you delimit them with quotes. - -</para></note> - </sect2> - - <sect2 id="preseed-auto"> - <title>Auto mode</title> -<para> - -There are several features of &debian; Installer that combine to allow -fairly simple command lines at the boot prompt to result in -arbitrarily complex customized automatic installs. To illustrate -this, here are some examples that can be used at the boot prompt: - -<informalexample><screen> -auto url=autoserver -</screen></informalexample> - -This relies on there being a DHCP server that will get the machine to -the point where <literal>autoserver</literal> can be resolved by DNS, -perhaps after adding the local domain if that was provided by DHCP. -If this was done at a site where the domain is -<literal>example.com</literal>, and they have a reasonably sane DHCP -setup, it would result in the preseed file being retrieved from -<literal>http://autoserver.example.com/d-i/&releasename;/./preseed.cfg</literal>. - -</para><para> - -The last part of that url (<literal>d-i/&releasename;/./preseed.cfg</literal>) -is taken from <literal>auto-install/defaultroot</literal>. By default -this includes the directory <literal>&releasename;</literal> to allow future versions -to specify their own codename and let people migrate forwards in a -controlled manner. The <literal>/./</literal> bit is used to indicate -a root, relative to which subsequent paths can be anchored (for use in -preseed/include and preseed/run). This allows files to be specified -either as full URLs, paths starting with / that are thus anchored, or -even paths relative to the location where the last preseed file was -found. This can be used to construct more portable scripts where an -entire hierarchy of scripts can be moved to a new location without -breaking it, for example copying the files onto a USB stick when they -started out on a web server. In this example, if the preseed file -sets <literal>preseed/run</literal> to -<literal>/scripts/late_command.sh</literal> then the file will be -fetched from -<literal>http://autoserver.example.com/d-i/&releasename;/./scripts/late_command.sh</literal>. - -</para><para> - -If there is no local DHCP or DNS infrastructure, or if you do not want to -use the default path to <filename>preseed.cfg</filename>, you can still -use an explicit url, and if you don't use the <literal>/./</literal> -element it will be anchored to the start of the path (i.e. the third -<literal>/</literal> in the URL). Here is an example that requires minimal -support from the local network infrastructure: - -<informalexample><screen> -auto url=<replaceable>http://192.168.1.2/path/to/mypreseed.file</replaceable> -</screen></informalexample> - -The way this works is that: -<itemizedlist spacing="compact"> -<listitem><para> -if the URL is missing a protocol, http is assumed, -</para></listitem> -<listitem><para> -if the hostname section contains no periods, it has the domain derived -from DHCP appended to it, and -</para></listitem> -<listitem><para> -if there's no <literal>/</literal>'s after the hostname, then the default -path is added. -</para></listitem> -</itemizedlist> - -</para><para> - -In addition to specifying the url, you can also specify settings that -do not directly affect the behavior of &d-i; itself, but can be passed -through to scripts specified using <literal>preseed/run</literal> -in the loaded preseed file. At present, the only example of -this is <literal>auto-install/classes</literal>, which has an alias -<literal>classes</literal>. This can be used thus: - -<informalexample><screen> -auto url=<replaceable>example.com</replaceable> classes=<replaceable>class_A;class_B</replaceable> -</screen></informalexample> - -The classes could for example denote the type of system to be installed, -or the localization to be used. - -</para><para> - -It is of course possible to extend this concept, and if you do, it is -reasonable to use the auto-install namespace for this. So one might have -something like <literal>auto-install/style</literal> which is then used -in your scripts. If you feel the need to do this, please mention it on -the <email>debian-boot@lists.debian.org</email> mailing list so that we -can avoid namespace conflicts, and perhaps add an alias for the parameter -for you. - -</para><para> - -The <literal>auto</literal> boot label is not yet defined everywhere. -The same effect may be achieved by simply adding the two -parameters <literal>auto=true priority=critical</literal> to the kernel -command line. The <literal>auto</literal> parameter is an alias for -<literal>auto-install/enable</literal> and setting it to -<literal>true</literal> delays the -locale and keyboard questions until after there has been a chance to -preseed them, while <literal>priority</literal> is an alias for -<literal>debconf/priority</literal> and setting it to -<literal>critical</literal> stops any questions with a lower priority -from being asked. - -</para><para> - -Additional options that may be of interest while attempting to -automate an install while using DHCP are: <literal>interface=auto -netcfg/dhcp_timeout=60</literal> which makes the machine choose the -first viable NIC and be more patient about getting a reply to its -DHCP query. - -</para> -<tip><para> - -An extensive example of how to use this framework, including example scripts -and classes, can be found on the <ulink url="http://hands.com/d-i/">website -of its developer</ulink>. The examples available there also show many other -nice effects that can be achieved by creative use of preconfiguration. - -</para></tip> - </sect2> - - <sect2 id="preseed-aliases"> - <title>Aliases useful with preseeding</title> -<para> - -The following aliases can be useful when using (auto mode) preseeding. -Note that these are simply short aliases for question names, and you -always need to specify a value as well: for example, -<literal>auto=true</literal> or <literal>interface=eth0</literal>. - -</para> - -<!-- Setting column width does not seem to work; use non-breaking spaces - to separate columns a bit --> -<informaltable frame="none"> -<tgroup cols="2"><tbody> -<row><entry>auto</entry><entry>auto-install/enable</entry></row> -<row><entry>classes</entry><entry>auto-install/classes</entry></row> -<row><entry>fb</entry><entry>debian-installer/framebuffer</entry></row> -<row><entry>language</entry><entry>debian-installer/language</entry></row> -<row><entry>country</entry><entry>debian-installer/country</entry></row> -<row><entry>locale</entry><entry>debian-installer/locale</entry></row> -<row><entry>priority</entry><entry>debconf/priority</entry></row> -<row><entry>file</entry><entry>preseed/file</entry></row> -<row><entry>url</entry><entry>preseed/url</entry></row> -<row><entry>interface</entry><entry>netcfg/choose_interface</entry></row> -<row><entry>hostname </entry><entry>netcfg/get_hostname</entry></row> -<row><entry>domain</entry><entry>netcfg/get_domain</entry></row> -<row><entry>protocol</entry><entry>mirror/protocol</entry></row> -<row><entry>suite</entry><entry>mirror/suite</entry></row> -</tbody></tgroup> -</informaltable> - - </sect2> - - <sect2 id="preseed-dhcp"> - <title>Using a DHCP server to specify preconfiguration files</title> -<para> - -It's also possible to use DHCP to specify a preconfiguration file to download -from the network. DHCP allows specifying a filename. Normally this is a file -to netboot, but if it appears to be an URL then installation media that -support network preseeding will download the file from the URL and use it as a -preconfiguration file. Here is an example of how to set it up in the dhcpd.conf -for version 3 of the ISC DHCP server (the dhcp3-server &debian; package). - -</para> - -<informalexample><screen> -if substring (option vendor-class-identifier, 0, 3) = "d-i" { - filename "http://host/preseed.cfg"; -} -</screen></informalexample> - -<para> - -Note that the above example limits this filename to DHCP clients that identify -themselves as "d-i", so it will not affect regular DHCP clients, but only -the installer. You can also put the text in a stanza for only one particular -host to avoid preseeding all installs on your network. - -</para><para> - -A good way to use the DHCP preseeding is to only preseed values specific to -your network, such as the &debian; mirror to use. This way installs on your -network will automatically get a good mirror selected, but the rest of the -installation can be performed interactively. Using DHCP preseeding to fully -automate &debian; installs should only be done with care. - -</para> - </sect2> - </sect1> - - - <sect1 id="preseed-creating"> - <title>Creating a preconfiguration file</title> -<para> - -The preconfiguration file is in the format used by the -<command>debconf-set-selections</command> command. The general format of -a line in a preconfiguration file is: - -<informalexample><screen> -<owner> <question name> <question type> <value> -</screen></informalexample> - -</para><para> - -There are a few rules to keep in mind when writing a preconfiguration file. - -</para> - -<itemizedlist> -<listitem><para> - Put only a single space or tab between type and value: any additional - whitespace will be interpreted as belonging to the value. -</para></listitem> -<listitem><para> - A line can be split into multiple lines by appending a backslash - (<quote><literal>\</literal></quote>) as the line continuation character. - A good place to split a line is after the question name; a bad place is - between type and value. Split lines will be joined into a single line - with all leading/trailing whitespace condensed to a single space. -</para></listitem> -<listitem><para> - For debconf variables (templates) used in the installer itself, the - owner should be set to <quote>d-i</quote>; to preseed variables used - in the installed system, the name of the package that contains the - corresponding debconf template should be used. Only variables that have - their owner set to something other than <quote>d-i</quote> will be - propagated to the debconf database for the installed system. -</para></listitem> -<listitem><para> - Most questions need to be preseeded using the values valid in English and - not the translated values. However, there are some questions (for example - in <classname>partman</classname>) where the translated values need to be - used. -</para></listitem> -<listitem><para> - Some questions take a code as value instead of the English text that is - shown during installation. -</para></listitem> -</itemizedlist> - -<para> - -The easiest way to create a preconfiguration file is to use the example file -linked in <xref linkend="preseed-contents"/> as basis and work from there. - -</para><para> - -An alternative method is to do a manual installation and then, after -rebooting, use the <command>debconf-get-selections</command> from the -<classname>debconf-utils</classname> package to dump both the debconf -database and the installer's cdebconf database to a single file: - -<informalexample><screen> -$ debconf-get-selections --installer > <replaceable>file</replaceable> -$ debconf-get-selections >> <replaceable>file</replaceable> -</screen></informalexample> - -</para><para> - -However, a file generated in this manner will have some items that should -not be preseeded, and the example file is a better starting place for most -users. - -</para> - -<note><para> - -This method relies on the fact that, at the end of the installation, the -installer's cdebconf database is saved to the installed system in -<filename>/var/log/installer/cdebconf</filename>. However, because the -database may contain sensitive information, by default the files are only -readable by root. - -</para><para> - -The directory <filename>/var/log/installer</filename> and all files in it -will be deleted from your system if you purge the package -<classname>installation-report</classname>. - -</para></note> - -<para> - -To check possible values for questions, you can use <command>nano</command> -to examine the files in <filename>/var/lib/cdebconf</filename> while an -installation is in progress. View <filename>templates.dat</filename> for -the raw templates and <filename>questions.dat</filename> for the current -values and for the values assigned to variables. - -</para><para> - -To check if the format of your preconfiguration file is valid before performing -an install, you can use the command <command>debconf-set-selections -c -<replaceable>preseed.cfg</replaceable></command>. - -</para> - </sect1> - - - <sect1 id="preseed-contents"> - <title>Contents of the preconfiguration file (for &releasename;)</title> -<para> - -The configuration fragments used in this appendix are also available as an -example preconfiguration file from &urlset-example-preseed;. - -</para><para> - -Note that this example is based on an installation for the Intel x86 -architecture. If you are installing a different architecture, some of the -examples (like keyboard selection and bootloader installation) may not be -relevant and will need to be replaced by debconf settings appropriate for -your architecture. - -</para> - - <sect2 id="preseed-l10n"> - <title>Localization</title> -<para> - -Setting localization values will only work if you are using initrd preseeding. -With all other methods the preconfiguration file will only be loaded after -these questions have been asked. - -</para><para> - -The locale can be used to specify both language and country and can be any -combination of a language supported by &d-i; and a recognized country. If -the combination does not form a valid locale, the installer will automatically -select a locale that is valid for the selected language. -To specify the locale as a boot parameter, use -<userinput>locale=<replaceable>en_US</replaceable></userinput>. - -</para><para> - -Although this method is very easy to use, it does not allow preseeding of -all possible combinations of language, country and locale<footnote> - -<para> -Preseeding <literal>locale</literal> to <userinput>en_NL</userinput> would -for example result in <literal>en_US.UTF-8</literal> as default locale for -the installed system. If e.g. <literal>en_GB.UTF-8</literal> is preferred -instead, the values will need to be preseeded individually. -</para> - -</footnote>. So alternatively the values can be preseeded individually. -Language and country can also be specified as boot parameters. - -<informalexample role="example"><screen> -# Preseeding only locale sets language, country and locale. -d-i debian-installer/locale string en_US - -# The values can also be preseeded individually for greater flexibility. -#d-i debian-installer/language string en -#d-i debian-installer/country string NL -#d-i debian-installer/locale string en_GB.UTF-8 -# Optionally specify additional locales to be generated. -#d-i localechooser/supported-locales en_US.UTF-8, nl_NL.UTF-8 -</screen></informalexample> - -</para><para> - -Keyboard configuration consists of selecting a keymap. - -<informalexample role="example"><screen> -# Keyboard selection. -# keymap is an alias for keyboard-configuration/xkb-keymap -d-i keymap select us -# d-i keyboard-configuration/toggle select No toggling -</screen></informalexample> - -</para><para> - -To skip keyboard configuration, preseed -<classname>keymap</classname> with -<userinput>skip-config</userinput>. -This will result in the kernel keymap remaining active. - -</para> - - </sect2> - - <sect2 id="preseed-network"> - <title>Network configuration</title> -<para> - -Of course, preseeding the network configuration won't work if you're -loading your preconfiguration file from the network. But it's great when -you're booting from CD or USB stick. If you are loading preconfiguration -files from the network, you can pass network config parameters by using -kernel boot parameters. - -</para><para> - -If you need to pick a particular interface when netbooting before loading -a preconfiguration file from the network, use a boot parameter such as -<userinput>interface=<replaceable>eth1</replaceable></userinput>. - -</para><para> - -Although preseeding the network configuration is normally not possible when -using network preseeding (using <quote>preseed/url</quote>), you can use -the following hack to work around that, for example if you'd like to set a -static address for the network interface. The hack is to force the network -configuration to run again after the preconfiguration file has been loaded -by creating a <quote>preseed/run</quote> script containing the following -commands: - -<informalexample><screen> -killall.sh; netcfg -</screen></informalexample> - -</para><para> - -The following debconf variables are relevant for network configuration. - -</para> - -<informalexample role="example"><screen> -# Disable network configuration entirely. This is useful for cdrom -# installations on non-networked devices where the network questions, -# warning and long timeouts are a nuisance. -#d-i netcfg/enable boolean false - -# netcfg will choose an interface that has link if possible. This makes it -# skip displaying a list if there is more than one interface. -d-i netcfg/choose_interface select auto - -# To pick a particular interface instead: -#d-i netcfg/choose_interface select eth1 - -# If you have a slow dhcp server and the installer times out waiting for -# it, this might be useful. -#d-i netcfg/dhcp_timeout string 60 - -# If you prefer to configure the network manually, uncomment this line and -# the static network configuration below. -#d-i netcfg/disable_dhcp boolean true - -# If you want the preconfiguration file to work on systems both with and -# without a dhcp server, uncomment these lines and the static network -# configuration below. -#d-i netcfg/dhcp_failed note -#d-i netcfg/dhcp_options select Configure network manually - -# Static network configuration. -#d-i netcfg/get_nameservers string 192.168.1.1 -#d-i netcfg/get_ipaddress string 192.168.1.42 -#d-i netcfg/get_netmask string 255.255.255.0 -#d-i netcfg/get_gateway string 192.168.1.1 -#d-i netcfg/confirm_static boolean true - -# Any hostname and domain names assigned from dhcp take precedence over -# values set here. However, setting the values still prevents the questions -# from being shown, even if values come from dhcp. -d-i netcfg/get_hostname string unassigned-hostname -d-i netcfg/get_domain string unassigned-domain - -# Disable that annoying WEP key dialog. -d-i netcfg/wireless_wep string -# The wacky dhcp hostname that some ISPs use as a password of sorts. -#d-i netcfg/dhcp_hostname string radish - -# If non-free firmware is needed for the network or other hardware, you can -# configure the installer to always try to load it, without prompting. Or -# change to false to disable asking. -#d-i hw-detect/load_firmware boolean true -</screen></informalexample> - -<para> - -Please note that <command>netcfg</command> will automatically determine the -netmask if <classname>netcfg/get_netmask</classname> is not preseeded. In -this case, the variable has to be marked as <literal>seen</literal> for -automatic installations. Similarly, <command>netcfg</command> will choose -an appropriate address if <classname>netcfg/get_gateway</classname> is not -set. As a special case, you can set -<classname>netcfg/get_gateway</classname> to <quote>none</quote> to specify -that no gateway should be used. - -</para> - - </sect2> - - <sect2 id="preseed-network-console"> - <title>Network console</title> - -<informalexample role="example"><screen> -# Use the following settings if you wish to make use of the network-console -# component for remote installation over SSH. This only makes sense if you -# intend to perform the remainder of the installation manually. -#d-i anna/choose_modules string network-console -#d-i network-console/authorized_keys_url string http://10.0.0.1/openssh-key -#d-i network-console/password password r00tme -#d-i network-console/password-again password r00tme -</screen></informalexample> - - </sect2> - - <sect2 id="preseed-mirror"> - <title>Mirror settings</title> -<para> - -Depending on the installation method you use, a mirror may be used to -download additional components of the installer, to install the base system, -and to set up the <filename>/etc/apt/sources.list</filename> for the installed -system. - -</para><para> - -The parameter <classname>mirror/suite</classname> determines the suite for -the installed system. - -</para><para> - -The parameter <classname>mirror/udeb/suite</classname> determines the suite -for additional components for the installer. It is only useful to set this -if components are actually downloaded over the network and should match the -suite that was used to build the initrd for the installation method used for -the installation. Normally the installer will automatically use the correct -value and there should be no need to set this. - -</para> - -<informalexample role="example"><screen> -# If you select ftp, the mirror/country string does not need to be set. -#d-i mirror/protocol string ftp -d-i mirror/country string manual -d-i mirror/http/hostname string &archive-mirror; -d-i mirror/http/directory string /debian -d-i mirror/http/proxy string - -# Suite to install. -#d-i mirror/suite string testing -# Suite to use for loading installer components (optional). -#d-i mirror/udeb/suite string testing -</screen></informalexample> - - </sect2> - - <sect2 id="preseed-account"> - <title>Account setup</title> -<para> - -The password for the root account and name and password for a first regular -user's account can be preseeded. For the passwords you can use either clear -text values or MD5 <emphasis>hashes</emphasis>. - -</para> -<warning><para> - -Be aware that preseeding passwords is not completely secure as everyone -with access to the preconfiguration file will have the knowledge of these -passwords. Using MD5 hashes is considered slightly better in terms of -security but it might also give a false sense of security as access to a -MD5 hash allows for brute force attacks. - -</para></warning> - -<informalexample role="example"><screen> -# Skip creation of a root account (normal user account will be able to -# use sudo). -#d-i passwd/root-login boolean false -# Alternatively, to skip creation of a normal user account. -#d-i passwd/make-user boolean false - -# Root password, either in clear text -#d-i passwd/root-password password r00tme -#d-i passwd/root-password-again password r00tme -# or encrypted using an MD5 hash. -#d-i passwd/root-password-crypted password [MD5 hash] - -# To create a normal user account. -#d-i passwd/user-fullname string Debian User -#d-i passwd/username string debian -# Normal user's password, either in clear text -#d-i passwd/user-password password insecure -#d-i passwd/user-password-again password insecure -# or encrypted using an MD5 hash. -#d-i passwd/user-password-crypted password [MD5 hash] -# Create the first user with the specified UID instead of the default. -#d-i passwd/user-uid string 1010 - -# The user account will be added to some standard initial groups. To -# override that, use this. -#d-i passwd/user-default-groups string audio cdrom video -</screen></informalexample> - -<para> - -The <classname>passwd/root-password-crypted</classname> and -<classname>passwd/user-password-crypted</classname> variables can also -be preseeded with <quote>!</quote> as their value. In that case, the -corresponding account is disabled. This may be convenient for the root -account, provided of course that an alternative method is set up to allow -administrative activities or root login (for instance by using SSH key -authentication or <command>sudo</command>). - -</para><para> - -The following command can be used to generate an MD5 hash for a password: - -<informalexample><screen> -$ printf "r00tme" | mkpasswd -s -m md5 -</screen></informalexample> - -</para> - </sect2> - - <sect2 id="preseed-time"> - <title>Clock and time zone setup</title> - -<informalexample role="example"><screen> -# Controls whether or not the hardware clock is set to UTC. -d-i clock-setup/utc boolean true - -# You may set this to any valid setting for $TZ; see the contents of -# /usr/share/zoneinfo/ for valid values. -d-i time/zone string US/Eastern - -# Controls whether to use NTP to set the clock during the install -d-i clock-setup/ntp boolean true -# NTP server to use. The default is almost always fine here. -#d-i clock-setup/ntp-server string ntp.example.com -</screen></informalexample> - - </sect2> - - <sect2 id="preseed-partman"> - <title>Partitioning</title> -<para> - -Using preseeding to partition the harddisk is limited to what is supported -by <classname>partman-auto</classname>. You can choose to partition -either existing free space on a disk or a whole disk. The layout of the -disk can be determined by using a predefined recipe, a custom recipe from -a recipe file or a recipe included in the preconfiguration file. - -</para><para> - -Preseeding of advanced partition setups using RAID, LVM and encryption is -supported, but not with the full flexibility possible when partitioning -during a non-preseeded install. - -</para><para> - -The examples below only provide basic information on the use of recipes. -For detailed information see the files -<filename>partman-auto-recipe.txt</filename> and -<filename>partman-auto-raid-recipe.txt</filename> included in the -<classname>debian-installer</classname> package. -Both files are also available from the -<ulink url="&url-d-i-websvn;/trunk/installer/doc/devel/">&d-i; source -repository</ulink>. Note that the supported functionality may change -between releases. - -</para> - -<warning><para> - -The identification of disks is dependent on the order in which their drivers -are loaded. If there are multiple disks in the system, make very sure the -correct one will be selected before using preseeding. - -</para></warning> - - <sect3 id="preseed-partman-example"> - <title>Partitioning example</title> - -<informalexample role="example"><screen> -# If the system has free space you can choose to only partition that space. -# This is only honoured if partman-auto/method (below) is not set. -#d-i partman-auto/init_automatically_partition select biggest_free - -# Alternatively, you may specify a disk to partition. If the system has only -# one disk the installer will default to using that, but otherwise the device -# name must be given in traditional, non-devfs format (so e.g. /dev/hda or -# /dev/sda, and not e.g. /dev/discs/disc0/disc). -# For example, to use the first SCSI/SATA hard disk: -#d-i partman-auto/disk string /dev/sda -# In addition, you'll need to specify the method to use. -# The presently available methods are: -# - regular: use the usual partition types for your architecture -# - lvm: use LVM to partition the disk -# - crypto: use LVM within an encrypted partition -d-i partman-auto/method string lvm - -# If one of the disks that are going to be automatically partitioned -# contains an old LVM configuration, the user will normally receive a -# warning. This can be preseeded away... -d-i partman-lvm/device_remove_lvm boolean true -# The same applies to pre-existing software RAID array: -d-i partman-md/device_remove_md boolean true -# And the same goes for the confirmation to write the lvm partitions. -d-i partman-lvm/confirm boolean true -d-i partman-lvm/confirm_nooverwrite boolean true - -# You can choose one of the three predefined partitioning recipes: -# - atomic: all files in one partition -# - home: separate /home partition -# - multi: separate /home, /usr, /var, and /tmp partitions -d-i partman-auto/choose_recipe select atomic - -# Or provide a recipe of your own... -# If you have a way to get a recipe file into the d-i environment, you can -# just point at it. -#d-i partman-auto/expert_recipe_file string /hd-media/recipe - -# If not, you can put an entire recipe into the preconfiguration file in one -# (logical) line. This example creates a small /boot partition, suitable -# swap, and uses the rest of the space for the root partition: -#d-i partman-auto/expert_recipe string \ -# boot-root :: \ -# 40 50 100 ext3 \ -# $primary{ } $bootable{ } \ -# method{ format } format{ } \ -# use_filesystem{ } filesystem{ ext3 } \ -# mountpoint{ /boot } \ -# . \ -# 500 10000 1000000000 ext3 \ -# method{ format } format{ } \ -# use_filesystem{ } filesystem{ ext3 } \ -# mountpoint{ / } \ -# . \ -# 64 512 300% linux-swap \ -# method{ swap } format{ } \ -# . - -# The full recipe format is documented in the file partman-auto-recipe.txt -# included in the 'debian-installer' package or available from D-I source -# repository. This also documents how to specify settings such as file -# system labels, volume group names and which physical devices to include -# in a volume group. - -# This makes partman automatically partition without confirmation, provided -# that you told it what to do using one of the methods above. -d-i partman-partitioning/confirm_write_new_label boolean true -d-i partman/choose_partition select finish -d-i partman/confirm boolean true -d-i partman/confirm_nooverwrite boolean true -</screen></informalexample> - - </sect3> - <sect3 id="preseed-partman-raid"> - <title>Partitioning using RAID</title> -<para> - -You can also use preseeding to set up partitions on software RAID arrays. -Supported are RAID levels 0, 1, 5, 6 and 10, creating degraded arrays and -specifying spare devices. -If you are using RAID 1, you can preseed grub to install to all devices -used in the array; see <xref linkend="preseed-bootloader"/>. - -</para> - -<warning><para> - -This type of automated partitioning is easy to get wrong. It is also -functionality that receives relatively little testing from the developers -of &d-i;. The responsibility to get the various recipes right (so they -make sense and don't conflict) lies with the user. -Check <filename>/var/log/syslog</filename> if you run into problems. - -</para></warning> - -<informalexample role="example"><screen> -# The method should be set to "raid". -#d-i partman-auto/method string raid -# Specify the disks to be partitioned. They will all get the same layout, -# so this will only work if the disks are the same size. -#d-i partman-auto/disk string /dev/sda /dev/sdb - -# Next you need to specify the physical partitions that will be used. -#d-i partman-auto/expert_recipe string \ -# multiraid :: \ -# 1000 5000 4000 raid \ -# $primary{ } method{ raid } \ -# . \ -# 64 512 300% raid \ -# method{ raid } \ -# . \ -# 500 10000 1000000000 raid \ -# method{ raid } \ -# . - -# Last you need to specify how the previously defined partitions will be -# used in the RAID setup. Remember to use the correct partition numbers -# for logical partitions. RAID levels 0, 1, 5, 6 and 10 are supported; -# devices are separated using "#". -# Parameters are: -# <raidtype> <devcount> <sparecount> <fstype> <mountpoint> \ -# <devices> <sparedevices> - -#d-i partman-auto-raid/recipe string \ -# 1 2 0 ext3 / \ -# /dev/sda1#/dev/sdb1 \ -# . \ -# 1 2 0 swap - \ -# /dev/sda5#/dev/sdb5 \ -# . \ -# 0 2 0 ext3 /home \ -# /dev/sda6#/dev/sdb6 \ -# . - -# For additional information see the file partman-auto-raid-recipe.txt -# included in the 'debian-installer' package or available from D-I source -# repository. - -# This makes partman automatically partition without confirmation. -d-i partman-md/confirm boolean true -d-i partman-partitioning/confirm_write_new_label boolean true -d-i partman/choose_partition select finish -d-i partman/confirm boolean true -d-i partman/confirm_nooverwrite boolean true -</screen></informalexample> - - </sect3> - - <sect3 id="preseed-partman-mount-styles"> - <title>Controlling how partitions are mounted</title> -<para> - -Normally, filesystems are mounted using a universally unique identifier -(UUID) as a key; this allows them to be mounted properly even if their -device name changes. UUIDs are long and difficult to read, so, if you -prefer, the installer can mount filesystems based on the traditional device -names, or based on a label you assign. If you ask the installer to mount by -label, any filesystems without a label will be mounted using a UUID instead. - -</para><para> - -Devices with stable names, such as LVM logical volumes, will continue to use -their traditional names rather than UUIDs. - -</para> - -<warning><para> - -Traditional device names may change based on the order in which the kernel -discovers devices at boot, which may cause the wrong filesystem to be -mounted. Similarly, labels are likely to clash if you plug in a new disk or -a USB drive, and if that happens your system's behaviour when started will -be random. - -</para></warning> - -<informalexample role="example"><screen> -# The default is to mount by UUID, but you can also choose "traditional" to -# use traditional device names, or "label" to try filesystem labels before -# falling back to UUIDs. -#d-i partman/mount_style select uuid -</screen></informalexample> - - </sect3> - </sect2> - - <sect2 id="preseed-base-installer"> - <title>Base system installation</title> -<para> - -There is actually not very much that can be preseeded for this stage of the -installation. The only questions asked concern the installation of the kernel. - -</para> - -<informalexample role="example"><screen> -# Configure APT to not install recommended packages by default. Use of this -# option can result in an incomplete system and should only be used by very -# experienced users. -#d-i base-installer/install-recommends boolean false - -# Select the initramfs generator used to generate the initrd for 2.6 kernels. -#d-i base-installer/kernel/linux/initramfs-generators string initramfs-tools - -# The kernel image (meta) package to be installed; "none" can be used if no -# kernel is to be installed. -#d-i base-installer/kernel/image string &kernelpackage;-2.6-486 -</screen></informalexample> - - </sect2> - - <sect2 id="preseed-apt"> - <title>Apt setup</title> -<para> - -Setup of the <filename>/etc/apt/sources.list</filename> and basic configuration -options is fully automated based on your installation method and answers to -earlier questions. You can optionally add other (local) repositories. - -</para> - -<informalexample role="example"><screen> -# You can choose to install non-free and contrib software. -#d-i apt-setup/non-free boolean true -#d-i apt-setup/contrib boolean true -# Uncomment this if you don't want to use a network mirror. -#d-i apt-setup/use_mirror boolean false -# Select which update services to use; define the mirrors to be used. -# Values shown below are the normal defaults. -#d-i apt-setup/services-select multiselect security, volatile -#d-i apt-setup/security_host string security.debian.org -#d-i apt-setup/volatile_host string volatile.debian.org - -# Additional repositories, local[0-9] available -#d-i apt-setup/local0/repository string \ -# http://local.server/debian stable main -#d-i apt-setup/local0/comment string local server -# Enable deb-src lines -#d-i apt-setup/local0/source boolean true -# URL to the public key of the local repository; you must provide a key or -# apt will complain about the unauthenticated repository and so the -# sources.list line will be left commented out -#d-i apt-setup/local0/key string http://local.server/key - -# By default the installer requires that repositories be authenticated -# using a known gpg key. This setting can be used to disable that -# authentication. Warning: Insecure, not recommended. -#d-i debian-installer/allow_unauthenticated boolean true -</screen></informalexample> - - </sect2> - - <sect2 id="preseed-pkgsel"> - <title>Package selection</title> -<para> - -You can choose to install any combination of tasks that are available. -Available tasks as of this writing include: - -</para> - -<itemizedlist> -<listitem><para> - <userinput>standard</userinput> -</para></listitem> -<listitem><para> - <userinput>desktop</userinput> -</para></listitem> -<listitem><para> - <userinput>gnome-desktop</userinput> -</para></listitem> -<listitem><para> - <userinput>kde-desktop</userinput> -</para></listitem> -<listitem><para> - <userinput>web-server</userinput> -</para></listitem> -<listitem><para> - <userinput>print-server</userinput> -</para></listitem> -<listitem><para> - <userinput>dns-server</userinput> -</para></listitem> -<listitem><para> - <userinput>file-server</userinput> -</para></listitem> -<listitem><para> - <userinput>mail-server</userinput> -</para></listitem> -<listitem><para> - <userinput>sql-database</userinput> -</para></listitem> -<listitem><para> - <userinput>laptop</userinput> -</para></listitem> -</itemizedlist> - -<para> - -You can also choose to install no tasks, and force the installation of a -set of packages in some other way. We recommend always including the -<userinput>standard</userinput> task. - -</para><para> - -If you want to install some individual packages in addition to packages -installed by tasks, you can use the parameter -<classname>pkgsel/include</classname>. The value of this parameter can be -a list of packages separated by either commas or spaces, which allows it -to be used easily on the kernel command line as well. - -</para> - -<informalexample role="example"><screen> -#tasksel tasksel/first multiselect standard, web-server -# If the desktop task is selected, install the kde and xfce desktops -# instead of the default gnome desktop. -#tasksel tasksel/desktop multiselect kde, xfce - -# Individual additional packages to install -#d-i pkgsel/include string openssh-server build-essential -# Whether to upgrade packages after debootstrap. -# Allowed values: none, safe-upgrade, full-upgrade -#d-i pkgsel/upgrade select none - -# Some versions of the installer can report back on what software you have -# installed, and what software you use. The default is not to report back, -# but sending reports helps the project determine what software is most -# popular and include it on CDs. -#popularity-contest popularity-contest/participate boolean false -</screen></informalexample> - - </sect2> - - <sect2 id="preseed-bootloader"> - <title>Boot loader installation</title> - -<informalexample role="example"><screen> -# Grub is the default boot loader (for x86). If you want lilo installed -# instead, uncomment this: -#d-i grub-installer/skip boolean true -# To also skip installing lilo, and install no bootloader, uncomment this -# too: -#d-i lilo-installer/skip boolean true - -# With a few exceptions for unusual partitioning setups, GRUB 2 is now the -# default. If you need GRUB Legacy for some particular reason, then -# uncomment this: -#d-i grub-installer/grub2_instead_of_grub_legacy boolean false - -# This is fairly safe to set, it makes grub install automatically to the MBR -# if no other operating system is detected on the machine. -d-i grub-installer/only_debian boolean true - -# This one makes grub-installer install to the MBR if it also finds some other -# OS, which is less safe as it might not be able to boot that other OS. -d-i grub-installer/with_other_os boolean true - -# Alternatively, if you want to install to a location other than the mbr, -# uncomment and edit these lines: -#d-i grub-installer/only_debian boolean false -#d-i grub-installer/with_other_os boolean false -#d-i grub-installer/bootdev string (hd0,0) -# To install grub to multiple disks: -#d-i grub-installer/bootdev string (hd0,0) (hd1,0) (hd2,0) - -# Optional password for grub, either in clear text -#d-i grub-installer/password password r00tme -#d-i grub-installer/password-again password r00tme -# or encrypted using an MD5 hash, see grub-md5-crypt(8). -#d-i grub-installer/password-crypted password [MD5 hash] - -# Use the following option to add additional boot parameters for the -# installed system (if supported by the bootloader installer). -# Note: options passed to the installer will be added automatically. -#d-i debian-installer/add-kernel-opts string nousb -</screen></informalexample> - -<para> - -An MD5 hash for a password for <classname>grub</classname> can be generated -using <command>grub-md5-crypt</command>, or using the command from the -example in <xref linkend="preseed-account"/>. - -</para> - </sect2> - - <sect2 id="preseed-finish"> - <title>Finishing up the installation</title> - -<informalexample role="example"><screen> -# During installations from serial console, the regular virtual consoles -# (VT1-VT6) are normally disabled in /etc/inittab. Uncomment the next -# line to prevent this. -#d-i finish-install/keep-consoles boolean true - -# Avoid that last message about the install being complete. -d-i finish-install/reboot_in_progress note - -# This will prevent the installer from ejecting the CD during the reboot, -# which is useful in some situations. -#d-i cdrom-detect/eject boolean false - -# This is how to make the installer shutdown when finished, but not -# reboot into the installed system. -#d-i debian-installer/exit/halt boolean true -# This will power off the machine instead of just halting it. -#d-i debian-installer/exit/poweroff boolean true -</screen></informalexample> - - </sect2> - - <sect2 id="preseed-other"> - <title>Preseeding other packages</title> - -<informalexample role="example"><screen> -# Depending on what software you choose to install, or if things go wrong -# during the installation process, it's possible that other questions may -# be asked. You can preseed those too, of course. To get a list of every -# possible question that could be asked during an install, do an -# installation, and then run these commands: -# debconf-get-selections --installer > file -# debconf-get-selections >> file -</screen></informalexample> - - </sect2> - </sect1> - - - <sect1 id="preseed-advanced"> - <title>Advanced options</title> - - <sect2 id="preseed-hooks"> - <title>Running custom commands during the installation</title> -<para> - -A very powerful and flexible option offered by the preconfiguration tools -is the ability to run commands or scripts at certain points in the -installation. - -</para> - -<informalexample role="example"><screen> -# d-i preseeding is inherently not secure. Nothing in the installer checks -# for attempts at buffer overflows or other exploits of the values of a -# preconfiguration file like this one. Only use preconfiguration files from -# trusted locations! To drive that home, and because it's generally useful, -# here's a way to run any shell command you'd like inside the installer, -# automatically. - -# This first command is run as early as possible, just after -# preseeding is read. -#d-i preseed/early_command string anna-install some-udeb -# This command is run immediately before the partitioner starts. It may be -# useful to apply dynamic partitioner preseeding that depends on the state -# of the disks (which may not be visible when preseed/early_command runs). -#d-i partman/early_command \ -# string debconf-set partman-auto/disk "$(list-devices disk | head -n1)" -# This command is run just before the install finishes, but when there is -# still a usable /target directory. You can chroot to /target and use it -# directly, or use the apt-install and in-target commands to easily install -# packages and run commands in the target system. -#d-i preseed/late_command string apt-install zsh; in-target chsh -s /bin/zsh -</screen></informalexample> - - </sect2> - - <sect2 id="preseed-seenflag"> - <title>Using preseeding to change default values</title> -<para> - -It is possible to use preseeding to change the default answer for a -question, but still have the question asked. To do this the -<firstterm>seen</firstterm> flag must be reset to <quote>false</quote> after -setting the value for a question. - -<informalexample><screen> -d-i foo/bar string value -d-i foo/bar seen false -</screen></informalexample> - -The same effect can be achieved for <emphasis>all</emphasis> questions by -setting the parameter <classname>preseed/interactive=true</classname> at -the boot prompt. This can also be useful for testing or debugging your -preconfiguration file. - -</para><para> - -Note that the <quote>d-i</quote> owner should only be used for variables -used in the installer itself. For variables belonging to packages installed -on the target system, you should use the name of that package instead. See -the footnote to <xref linkend="preseed-bootparms"/>. - -</para><para> - -If you are preseeding using boot parameters, you can make the installer ask -the corresponding question by using the <quote>?=</quote> operator, i.e. -<userinput><replaceable>foo</replaceable>/<replaceable>bar</replaceable>?=<replaceable>value</replaceable></userinput> -(or <userinput><replaceable>owner</replaceable>:<replaceable>foo/bar</replaceable>?=<replaceable>value</replaceable></userinput>). -This will of course only have effect for parameters that correspond to -questions that are actually displayed during an installation and not for -<quote>internal</quote> parameters. - -</para> - </sect2> - - <sect2 id="preseed-chainload"> - <title>Chainloading preconfiguration files</title> -<para> - -It is possible to include other preconfiguration files from a preconfiguration -file. Any settings in those files will override pre-existing settings from -files loaded earlier. This makes it possible to put, for example, general -networking settings for your location in one file and more specific -settings for certain configurations in other files. - -</para> - -<informalexample><screen> -# More than one file can be listed, separated by spaces; all will be -# loaded. The included files can have preseed/include directives of their -# own as well. Note that if the filenames are relative, they are taken from -# the same directory as the preconfiguration file that includes them. -#d-i preseed/include string x.cfg - -# The installer can optionally verify checksums of preconfiguration files -# before using them. Currently only md5sums are supported, list the md5sums -# in the same order as the list of files to include. -#d-i preseed/include/checksum string 5da499872becccfeda2c4872f9171c3d - -# More flexibly, this runs a shell command and if it outputs the names of -# preconfiguration files, includes those files. -#d-i preseed/include_command \ -# string if [ "`hostname`" = bob ]; then echo bob.cfg; fi - -# Most flexibly of all, this downloads a program and runs it. The program -# can use commands such as debconf-set to manipulate the debconf database. -# More than one script can be listed, separated by spaces. -# Note that if the filenames are relative, they are taken from the same -# directory as the preconfiguration file that runs them. -#d-i preseed/run string foo.sh -</screen></informalexample> - -<para> - -It is also possible to chainload from the initrd or file preseeding phase, -into network preseeding by setting preseed/url in the earlier files. -This will cause network preseeding to be performed when the network comes -up. You need to be careful when doing this, since there will be two -distinct runs at preseeding, meaning for example that you get another -chance to run the preseed/early command, the second one happening after the -network comes up. - -</para> - - </sect2> - </sect1> -</appendix> |