diff options
author | Frans Pop <elendil@planet.nl> | 2005-11-16 23:08:40 +0000 |
---|---|---|
committer | Frans Pop <elendil@planet.nl> | 2005-11-16 23:08:40 +0000 |
commit | 1c7ae900298533be9db5a0e8125b497d9f63f3e4 (patch) | |
tree | cf0c605f79c52738cf48b2a427377f7bb70c6953 | |
parent | a57a59b7272ce73eb7c6102453b8f718c098c731 (diff) | |
download | installation-guide-1c7ae900298533be9db5a0e8125b497d9f63f3e4.zip |
Create separate appendix for preseeding for Etch. Needs more work before it is included.
-rw-r--r-- | en/appendix/example-preseed-etch-new.xml | 667 |
1 files changed, 667 insertions, 0 deletions
diff --git a/en/appendix/example-preseed-etch-new.xml b/en/appendix/example-preseed-etch-new.xml new file mode 100644 index 000000000..301c6ddb1 --- /dev/null +++ b/en/appendix/example-preseed-etch-new.xml @@ -0,0 +1,667 @@ +<!-- retain these comments for translator revision tracking --> +<!-- $Id: example-preseed-etch.xml 32158 2005-11-16 01:20:19Z joeyh $ --> + +<!-- +Should be renamed to this, but don't want to break link from ch4 now. +<appendix id="appendix-preseed" condition="etch"> +--> +<appendix id="example-preseed" condition="etch"> +<title>Automating the installation using preseeding</title> + +<para> + +The configuration fragments used in this appendix are also available as an +example preseed file from &urlset-example-preseed;. + +</para> + +<sect1 id="preseed-intro"> + <title>Introduction</title> + +<itemizedlist> +<listitem><para> + Supports 1st and 2nd stage +</para></listitem> +<listitem><para> + Methods: initrd, net, file +</para></listitem> +<listitem><para> + Hooks +</para></listitem> +<listitem><para> + Seen flags +</para></listitem> +<listitem><para> + Limitations +</para></listitem> +<listitem><para> + How 2nd stage preseeding works +</para></listitem> +</itemizedlist> + +<para> + +<!-- +- Methods: initrd, net, file +- General stuff from Startup +--> + +</para> + +</sect1> + +<sect1 id="preseed-using"> + <title>Using preseeding</title> + + <sect2 id="preseed-loading"> + <title>Loading the preseed file</title> +<para> + +If you 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 done by passing the kernel a boot parameter, +either manually at boot or by editing the <filename>syslinux.cfg</filename> +(or similar) file and adding the parameter to the end of the append line(s) +for the kernel. + +</para><para> + +If you do specify the preseed file in the syslinux configuration, you might +set the timeout to 1 in syslinux.cfg to avoid needing to hit enter to boot +the installer. + +</para><para> + +To make sure the installer gets the right preseed file, you can optionally +specify a checksum for the file. Currently this needs to be a md5sum, and if +specified it must match the preseed 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 +# preseed/url/checksum=5da499872becccfeda2c4872f9171c3d +# +# - if you're booting a remastered CD: +# preseed/file=/cdrom/preseed +# preseed/file/checksum=5da499872becccfeda2c4872f9171c3d +# +# - if you're installing from USB media (put the preseed file in the +# toplevel directory of the USB stick): +# preseed/file=/hd-media/preseed +# preseed/file/checksum=5da499872becccfeda2c4872f9171c3d +</screen></informalexample> + +<para> + +While you're at it, you may want to add a boot parameter +<userinput>debconf/priority=critical</userinput>. This will avoid most +questions even if the preseeding below misses some. + +</para> + </sect2> + + <sect2 id="preseed-bootparms"> + <title>Using boot parameters to supplement preseeding</title> +<para> + +Some parts of the installation process cannot be automated using +some forms of preseeding, because the questions are asked before +the preseed file is loaded. For example, if the preseed file is +downloaded over the network, the network setup must be done first. +One reason to use initrd preseeding is that it allows preseeding +of even these early steps of the installation process. + +</para><para> + +If a preseed file cannot be used to preseed some steps, the install can +still be fully automated, since you can pass preseed values to the kernel +on the command line. Just pass <userinput>path/to/var=value</userinput> +for any of the preseed variables listed in the examples. + +</para> +<note><para> + +The 2.4 kernel accepts a maximum of 8 command line options and +8 environment options (including any options added by default for the +installer). If these numbers are exceeded, 2.4 kernels will drop any +excess options and 2.6 kernels will panic. With kernel 2.6.9 or newer, +you can use 32 command line options and 32 environment options. + +</para></note> +<note><para> + +It may not be possible to specify values with spaces for boot parameters, +even if you delimit them with quotes. + +</para></note> +<para> + +Some of the default options, like 'vga=normal' may be safely removed +for most installations, which may allow you to add more options for +preseeding. + +</para> + </sect2> +</sect1> + +<sect1 id="preseed-creating"> + <title>Creating a preseed file</title> + +<itemizedlist> +<listitem><para> + Relation with /var/lib/(c)debconf/templates +</para></listitem> +<listitem><para> + Most values need to be in English +</para></listitem> +<listitem><para> + Using a manual installation as base +</para></listitem> +<listitem><para> + Finding other possible values +</para></listitem> +</itemizedlist> + +<para> + +</para> + +</sect1> + +<sect1 id="preseed-stage1"> + <title>Preseeding the first stage of the installation</title> +<para> + +The configuration fragments used in this appendix are also available as an +example preseed 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 valid 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 preseed file will only be loaded after these +questions have been asked. + +</para><para> + +The locale can be used to specify both language and country. +To specify the locale as a boot parameter, use +<userinput>debian-installer/locale=<replaceable>en_US</replaceable></userinput>. + +<informalexample><screen> +# Locale sets language and country. +d-i debian-installer/locale string en_US +</screen></informalexample> + +</para><para> + +Something about selecting keyboard architectures (needs new kbd-chooser) and how +the keymap needs to match the architecture. + +<informalexample><screen> +# Keyboard. +#d-i console-tools/archs select at +d-i console-keymaps-at/keymap select us +</screen></informalexample> + +</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 preseed file from the network! But it's great if you're +booting from CD or USB stick. If you are loading preseed files from +the network, you can pass network config parameters in using kernel +boot parameters. + +<informalexample><screen> +# 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 + +# 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, here's how: +#d-i netcfg/disable_dhcp boolean true +#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 +</screen></informalexample> + +</para> + </sect2> + + <sect2 id="preseed-mirror"> + <title>Mirror settings</title> +<para> + +Depending on the installation method you use, a mirror may used both to +download additional components of the installer, 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. +By default the value for <classname>mirror/udeb/suite</classname> is the same +as <classname>mirror/suite</classname>. + +</para> + +<informalexample><screen> +d-i mirror/country string enter information manually +d-i mirror/http/hostname string http.us.debian.org +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-partman"> + <title>Partitioning</title> + +<informalexample><screen> +# If the system has free space you can choose to only partition that space. +#d-i partman-auto/init_automatically_partition \ +# select Use the largest continuous free space + +# Alternatively, you can specify a disk to partition. The device name can +# be given in either devfs or traditional non-devfs format. +# For example, to use the first disk devfs knows of: +d-i partman-auto/disk string /dev/discs/disc0/disc + +# You can choose from any of the predefined partitioning recipes: +d-i partman-auto/choose_recipe \ + select All files in one partition (recommended for new users) +#d-i partman-auto/choose_recipe \ +# select Separate /home partition +#d-i partman-auto/choose_recipe \ +# select Separate /home, /usr, /var, and /tmp partitions + +# Or provide a recipe of your own... +# The recipe format is documented in the file devel/partman-auto-recipe.txt. +# 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 the preseed 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{ } \ +# . + +# This makes partman automatically partition without confirmation. +d-i partman/confirm_write_new_label boolean true +d-i partman/choose_partition \ + select Finish partitioning and write changes to disk +d-i partman/confirm boolean true +</screen></informalexample> + + </sect2> + + <sect2 id="preseed-time"> + <title>Clock and time zone setup</title> + +<informalexample><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 +</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 physical access to the preseed 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 physical +access to a MD5 hash allows for brute force attacks. + +</para></warning> + +<informalexample><screen> +# Root password, either in clear text +#passwd passwd/root-password password r00tme +#passwd passwd/root-password-again password r00tme +# or encrypted using an MD5 hash. +#passwd passwd/root-password-crypted password [MD5 hash] + +# Skip creation of a normal user account. +#passwd passwd/make-user boolean false + +# Alternatively, create a normal user account. +#passwd passwd/user-fullname string Debian User +#passwd passwd/username string debian +# Normal user's password, either in clear text +#passwd passwd/user-password password insecure +#passwd passwd/user-password-again password insecure +# or encrypted using an MD5 hash. +#passwd passwd/user-password-crypted password [MD5 hash] +</screen></informalexample> + +<para> + +The <classname>passwd/root-password-crypted</classname> and +<classname>passwd/user-password-crypted</classname> variables can also be +preseeded with "!" as value. In that case, the corresponding account +is disabled. This may be convenient for the root account, provided of +course that an alternate method is setup to allow administrative +activities or root login (for instance by using SSH key authentication). + +</para> + </sect2> + + <sect2 id="preseed-bootloader"> + <title>Boot loader installation</title> + +<informalexample><screen> +# Grub is the default boot loader (for x86). If you want lilo installed +# instead, uncomment this: +#d-i grub-installer/skip boolean true + +# 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 if finds some other OS +# too, 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/bootdev string (hd0,0) +#d-i grub-installer/only_debian boolean false +#d-i grub-installer/with_other_os boolean false +</screen></informalexample> + + </sect2> + + <sect2 id="preseed-finish"> + <title>Finishing up the first stage install</title> + +<informalexample><screen> +# Avoid that last message about the install being complete. +d-i prebaseconfig/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 +</screen></informalexample> + + </sect2> + + <sect2 id="preseed-shell"> + <title>Shell commands</title> + +<informalexample><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 +# preseed file like this one. Only use preseed 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 just before the install finishes, but when there is +# still a usable /target directory. +#d-i preseed/late_command string echo foo > /target/etc/bar + +# This command is run just as base-config is starting up. +#base-config base-config/early_command string echo hi mom + +# This command is run after base-config is done, just before the login: +# prompt. This is a good way to install a set of packages you want, or to +# tweak the configuration of the system. +#base-config base-config/late_command \ +# string apt-get install zsh; chsh -s /bin/zsh +</screen></informalexample> + + </sect2> +</sect1> + +<sect1 id="preseed-stage2"> + <title>Preseeding the second stage of the installation</title> + + <sect2 id="preseed-baseconfig"> + <title>Base config</title> + +<informalexample><screen> +# Avoid the introductory message. +base-config base-config/intro note + +# Avoid the final message. +base-config base-config/login note + +# If you installed a display manager, but don't want to start it immediately +# after base-config finishes. +#base-config base-config/start-display-manager boolean false + +# Some versions of the installer can report back on what you've installed. +# 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-apt"> + <title>Apt setup</title> + +<informalexample><screen> +# This question controls what source the second stage installation uses +# for packages. Choices are cdrom, http, ftp, filesystem, edit sources list +# by hand +base-config apt-setup/uri_type select http + +# If you choose ftp or http, you'll be asked for a country and a mirror. +base-config apt-setup/country select enter information manually +base-config apt-setup/hostname string http.us.debian.org +base-config apt-setup/directory string /debian +# Stop after choosing one mirror. +base-config apt-setup/another boolean false + +# You can choose to install non-free and contrib software. +#base-config apt-setup/non-free boolean true +#base-config apt-setup/contrib boolean true + +# Do enable security updates. +base-config apt-setup/security-updates boolean true +</screen></informalexample> + + </sect2> + + <sect2 id="preseed-tasksel"> + <title>Package selection</title> + +<informalexample><screen> +# You can choose to install any combination of tasks that are available. +# Available tasks as of this writing include: Desktop environment, +# Web server, Print server, DNS server, File server, Mail server, +# SQL database, Laptop, Standard system, manual package selection. The +# last of those will run aptitude. 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 Standard system task. +tasksel tasksel/first multiselect Desktop environment, Standard system +#tasksel tasksel/first multiselect Web server, Standard system +</screen></informalexample> + + </sect2> + + <sect2 id="preseed-mailer"> + <title>Mailer configuration</title> + +<informalexample><screen> +# During a normal install, exim asks only a few questions. Here's how to +# avoid even those. More complicated preseeding is possible. +exim4-config exim4/dc_eximconfig_configtype \ + select no configuration at this time +exim4-config exim4/no_config boolean true +exim4-config exim4/no_config boolean true + +# It's a good idea to set this to whatever user account you choose to +# create. Leaving the value blank results in postmaster mail going to +# /var/mail/mail. +exim4-config exim4/dc_postmaster string +</screen></informalexample> + + </sect2> + + <sect2 id="preseed-X"> + <title>X configuration</title> + +<informalexample><screen> +# Preseeding Debian's X config is possible, but you probably need to know +# some details about the video hardware of the machine, since Debian's X +# configurator does not do fully automatic configuration of everything. + +# X can detect the right driver for some cards, but if you're preseeding, +# you override whatever it chooses. Still, vesa will work most places. +#xserver-xfree86 xserver-xfree86/config/device/driver select vesa + +# A caveat with mouse autodetection is that if it fails, X will retry it +# over and over. So if it's preseeded to be done, there is a possibility of +# an infinite loop if the mouse is not autodetected. +#xserver-xfree86 xserver-xfree86/autodetect_mouse boolean true + +# Monitor autodetection is recommended. +xserver-xfree86 xserver-xfree86/autodetect_monitor boolean true +# Uncomment if you have an LCD display. +#xserver-xfree86 xserver-xfree86/config/monitor/lcd boolean true +# X has three configuration paths for the monitor. Here's how to preseed +# the "medium" path, which is always available. The "simple" path may not +# be available, and the "advanced" path asks too many questions. +xserver-xfree86 xserver-xfree86/config/monitor/selection-method \ + select medium +xserver-xfree86 xserver-xfree86/config/monitor/mode-list \ + select 1024x768 @ 60 Hz +</screen></informalexample> + + </sect2> + + <sect2 id="preseed-other"> + <title>Preseeding other packages</title> + +<informalexample><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> + +<informalexample><screen> +# If you like, you can include other preseed files into this one. +# Any settings in those files will override pre-existing settings from this +# file. More that 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 preseed file that includes them. +#d-i preseed/include string x.cfg + +# The installer can optionally verify checksums of preseed 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 +# preseed files, includes those files. +#d-i preseed/include_command \ +# string echo if [ "`hostname`" = bob ]; then echo bob.cfg; fi + +# To check the format of your preseed file before performing an install, +# you can use debconf-set-selections: +# debconf-set-selections -c preseed.cfg +</screen></informalexample> + +</sect1> +</appendix> |