B.4. Содержимое файла ответов

Фрагменты конфигурации, используемые в этом приложении, также доступны в примере файла ответов http://d-i.alioth.debian.org/manual/example-preseed.txt.

Заметим, что показанный пример основан на установке для архитектуры Intel x86. Если вы выполняете установку на другую архитектуру, то некоторые примеры (например, выбор клавиатуры и установка загрузчика) могут различаться и должны быть заменены на соответствующие настройки debconf для этой архитектуры.

B.4.1. Локализация

Настройка значений локализации работает только для метода initrd. Во всех остальных методах файл ответов загружается после того, как эти вопросы уже заданы.

Для указания языка и страны можно использовать локаль. Для назначения локали в параметре загрузки, используйте locale=ru_RU.

# настройка языка и страны согласно локали. d-i debian-installer/locale string ru_RU

Настройка клавиатуры состоит из указания архитектуры клавиатуры и раскладки. В большинстве случаев правильная архитектура клавиатуры уже выбрана по умолчанию, поэтому обычно не нужно задавать автоматический ответ. Раскладка клавиатуры должна быть допустимой для выбранной архитектуры клавиатуры.

# Выбор клавиатуры. #d-i console-tools/archs select at d-i console-keymaps-at/keymap select us # Пример другой архитектуры клавиатуры #d-i console-keymaps-usb/keymap select mac-usb-us

Чтобы не выполнять настройку клавиатуры укажите в console-tools/archs значение skip-config. В результате останется активной клавиатурная раскладка ядра.

Замечание

Изменения в уровне ввода в ядрах версии 2.6 сделали архитектуру клавиатуры виртуально ненужной. Для ядер версии 2.6 обычно нужно выбирать клавиатурную раскладку PC (at).

B.4.2. Настройка сети

Естественно, автоматическая настройка сети не работает, если вы загружаете файл ответов из сети. Но она отлично работает, если загрузка происходит с CD или USB накопителя. Если вы загружаете файл ответов из сети, то можете указать конфигурацию сети через загрузочные параметры ядра.

Если нужно использовать определённый интерфейс для загрузки по сети перед загрузкой файла ответов из сети, используйте параметр загрузки interface=eth1.

Хотя автоматическая настройка сети обычно невозможна при загрузки файла ответов по сети (с помощью preseed/url), вы можете обойти этот недостаток, например, если можете установить статический адрес сетевого интерфейса. Данное обходное решение заставит запуститься настройку сети ещё раз после загрузки файла ответов, если создать сценарий preseed/run со следующими строчками:

killall.sh dhclient netcfg

# netcfg выберет активный сетевой интерфейс, если такой имеется. Если # есть более одного интерфейса, то при данной настройке список # интерфейсов выводится не будет. d-i netcfg/choose_interface select auto # Чтобы использовать нужный интерфейс: #d-i netcfg/choose_interface select eth1 # Если у вас медленный dhcp сервер и программа установки не дожидается # ответа, то данная настройка может оказаться полезной. #d-i netcfg/dhcp_timeout string 60 # Если вы предпочитаете настраивать сеть вручную, раскомментируйте эту # строку и статическую настройку сети ниже. #d-i netcfg/disable_dhcp boolean true # Если вы хотите чтобы файл ответов работал при наличии и без сервера # dhcp, раскомментируйте эти строки и статическую настройку сети ниже. #d-i netcfg/dhcp_failed note #d-i netcfg/dhcp_options select Configure network manually # Статическая настройка сети. #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 # Имена хоста и домен, назначенные с помощью dhcp имеют приоритет над # значениями, установленными здесь. Однако, установка значений всё ещё # предотвращает показ вопросов, даже если значения получены от dhcp. d-i netcfg/get_hostname string неназначенное-имя-хоста d-i netcfg/get_domain string неназначенный-домен # Выключить показ надоедливого диалога с WEP ключом. d-i netcfg/wireless_wep string # Странное имя dhcp сервера, которое используют некоторые провайдеры в # качестве некоего пароля. #d-i netcfg/dhcp_hostname string radish

B.4.3. Настройка сервера-зеркала

В зависимости от используемого метода установки для загрузки дополнительных компонент программы установки, установки базовой системы и настройки файла /etc/apt/sources.list в установленной системе можно использовать сервер-зеркало.

Параметр mirror/suite определяет версию дистрибутива для устанавливаемой системы.

Параметр mirror/udeb/suite определяет версию дистрибутива для дополнительных компонент программы установки. Он нужен только если компоненты загружаются по сети и должны соответствовать версии, которая была использована для сборки initrd, который используется для установки с помощью одноимённого метода. По умолчанию значение mirror/udeb/suite совпадает со значением mirror/suite.

# Если вы выберете ftp, то mirror/country string устанавливать не нужно. #d-i mirror/protocol string ftp d-i mirror/country string manual d-i mirror/http/hostname string http.us.debian.org d-i mirror/http/directory string /debian d-i mirror/http/proxy string # Устанавливаемая версия. #d-i mirror/suite string testing # Версия загружаемых компонент (необязательно). #d-i mirror/udeb/suite string testing

B.4.4. Разметка дисков

Использование настроек разметки жёсткого диска в автоматической установке очень ограничено; поддерживаются параметры только для partman-auto. Вы можете выбрать разметку только свободного места на диске или всего диска. Разметку диска можно выбрать из одного из имеющихся в программе установки наборов, пользовательского набора из файла или набора из файла ответов. В данный момент в автоматическом режиме не поддерживается разметка нескольких дисков.

Внимание

Идентификация дисков зависит от порядка загрузки драйверов. Если в системе есть несколько дисков, проверьте, что выбирается правильный диск перед тем как использовать автоматическую установку.

# Если система имеет свободное место, вы можете выбрать для разметки # только его. # Замечание: нужно указывать локализованные (переведённые) значения. #d-i partman-auto/init_automatically_partition \ # select Авто - использовать наибольшее свободное место #Или же, вы можете задать размечаемый диск. Имя устройства # должно задаваться в обычном не-devfs формате. # Например, для использования первого жёсткого диска SCSI/SATA: d-i partman-auto/disk string /dev/sda # Замечание: если вы хотите использовать любой доступный диск, не важно # какое у него имя, закоммерируйте строку выше. Она работает только если # в системе один жёсткий диск. # Также, вы можете указать какой метод использовать. # Доступные методы: "regular", "lvm" и "crypto" d-i partman-auto/method string lvm # Если один из дисков, который нужно разметить с помощью автоматической # разметки, содержит старую конфигурацию LVM, то пользователю выдаётся # предупреждение. Ответ можно автоматизировать... d-i partman-auto/purge_lvm_from_device boolean true # И подтвердить запись lvm разделов. d-i partman-lvm/confirm boolean true # Вы можете выбрать любой из имеющихся наборов разметки. # Замечание: он должен содержать локализованные (переведённые) значения. d-i partman-auto/choose_recipe \ select Все файлы в одном разделе (рекомендуется новичкам) #d-i partman-auto/choose_recipe \ # select Отдельный раздел для /home #d-i partman-auto/choose_recipe \ # select Отдельные разделы для /home, /usr, /var и /tmp # Или создать набор вручную... # Формат файла набора описан в файле devel/partman-auto-recipe.txt. # Если вы каким-то образом поместили файл набора в окружение d-i, то можно # просто указать путь. #d-i partman-auto/expert_recipe_file string /hd-media/recipe # Если нет, то можно записать набор полностью в файле ответов в одну # (логическую) строку. В примере ниже создаётся маленький /boot # раздел, подходящего размера раздел подкачки, # а оставшееся место используется под корневой раздел: #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{ } \ # . # Этот параметр заставляет partman выполнить разметку автоматически # без подтверждения. d-i partman/confirm_write_new_label boolean true d-i partman/choose_partition \ select Закончить разметку и записать изменения на диск d-i partman/confirm boolean true

B.4.5. Разметка с использованием RAID

Также вы можете автоматизировать настройку массивов RAID. Поддерживаются RAID уровни 0, 1 и 5, создание неполных массивов (degraded arrays) и указание запасных устройств. Если вы используете RAID 1, то можете автоматизировать установку grub на все устройства массива; смотрите Раздел B.4.11, Установка загрузчика.

Внимание

В данном типе автоматизации разделов легко ошибиться. Также это очень новый компонент и может содержать ошибки или не обрабатывать какие-то ошибочные ситуации. Ответственность при создании правильного набора (то есть, чтобы он был логически верным и не имел конфликтов) лежит на пользователе. Если возникают проблемы -- смотрите /var/log/syslog.

Заметим, что разработчики компонента тестировали только RAID 0 и RAID 1. RAID 5 не тестировался. Более сложная настройка RAID с неполными массивами (degraded arrays) или запасными устройствами тестировалась поверхностно.

# ЗАМЕЧАНИЕ: это бета-версия, используйте осторожно # Метод должен быть установлен в значение "raid". #d-i partman-auto/method string raid # Задать размечаемые диски. Они будут иметь одинаковую раскладку, # поэтому это работает только если все диски одинакового размера. #d-i partman-auto/disk string /dev/discs/disc0/disc /dev/discs/disc1/disc # Далее нужно указать какие физические разделы будут использоваться. #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 } \ # . # Наконец, нужно указать как использовать определённые ранее разделы # в настройке RAID. Указывайте правильные номера разделов # для логических разделов. # Параметры: # <raidtype> <devcount> <sparecount> <fstype> <mountpoint> \ # <devices> <sparedevices> # Поддерживаются RAID уровни 0, 1 и 5; устройства разделяются с помощью "#" #d-i partman-auto-raid/recipe string \ # 1 2 0 ext3 / \ # /dev/discs/disc0/part1#/dev/discs/disc1/part1 \ # . \ # 1 2 0 swap - \ # /dev/discs/disc0/part5#/dev/discs/disc1/part5 \ # . \ # 0 2 0 ext3 /home \ # /dev/discs/disc0/part6#/dev/discs/disc1/part6 \ # . # Это заставит partman сделать разметку автоматически, без подтверждения. d-i partman-md/confirm boolean true d-i partman/confirm_write_new_label boolean true d-i partman/choose_partition \ select Закончить разметку и записать изменения на диск d-i partman/confirm boolean true

B.4.6. Настройка времени и часового пояса

# Задаёт, установлены или нет аппаратные часы по Гринвичу. d-i clock-setup/utc boolean true # Здесь вы можете указать любое допустимое значение для $TZ; смотрите # допустимые значения в файле /usr/share/zoneinfo/. d-i time/zone string US/Eastern # Определяет, нужно ли использовать NTP для установки часов во время установки d-i clock-setup/ntp boolean true # Используемый сервер NTP. Значение по умолчанию указывается здесь. #d-i clock-setup/ntp-server ntp.example.com

B.4.7. Настройка учётной записи

Могут быть автоматически настроены пароль суперпользователя и имя и пароль первого обычного пользователя. Пароли могут быть заданы или в нешифрованном виде или в виде хешей MD5.

Внимание

Обратите внимание, что автоматическую настройку паролей использовать небезопасно, так как любой может получить доступ к файлу ответов и узнать пароли. Считается, что использование хешей MD5 улучшает ситуацию с точки зрения безопасности, но MD5 хеш всё ещё остаётся доступным для атак на пароль прямым перебором.

# Пропустить создание учётной записи суперпользователя (в обычной учётной # записи пользователя можно использовать sudo). #d-i passwd/root-login boolean false # Или же пропустить создание обычной учётной записи пользователя. #d-i passwd/make-user boolean false # Пароль суперпользователя, любой открытым текстом #d-i passwd/root-password password r00tme #d-i passwd/root-password-again password r00tme # или в виде MD5 хеша. #d-i passwd/root-password-crypted password [MD5 хеш] # Создать учётную запись обычного пользователя. #d-i passwd/user-fullname string Debian User #d-i passwd/username string debian # Пароль обычного пользователя, или открытым текстом #d-i passwd/user-password password insecure #d-i passwd/user-password-again password insecure # или в виде MD5 хеша. #d-i passwd/user-password-crypted password [MD5 хеш] # Создать первую учётную запись с заданным UID вместо значения по # умолчанию. #d-i passwd/user-uid string 1010 # Учётная запись будет добавлена в несколько стандартных начальных групп. # Чтобы это изменить -- отредактируйте и раскомментируйте строчку ниже. #d-i passwd/user-default-groups string audio cdrom video

Также, в начале значений переменных passwd/root-password-crypted и passwd/user-password-crypted можно указать знак !. В этом случае, соответствующая учётная запись будет заблокирована. Это может быть удобно для учётной записи суперпользователя, если используется другой метод настройки, предоставляющий возможность выполнить административные действия или вход в систему от имени суперпользователя (например, используя аутентификацию по SSH ключу или sudo).

MD5 хеш для пароля можно сгенерировать с помощью следующей команды.

$ echo "r00tme" | mkpasswd -s -H MD5

B.4.8. Установка базовой системы

Для этого этапа, фактически, не так много автоматизируемых настроек. В основном они касаются установки ядра.

# Выбрать генератор initramfs, используемый для создания initrd для ядер 2.6. #d-i base-installer/kernel/linux/initramfs-generators string yaird # Устанавливаемый пакет (мета) с образом ядра; можно указать "none", # если ядро устанавливать не нужно. #d-i base-installer/kernel/image linux-image-2.6-486

B.4.9. Настройка Apt

Настройка файла /etc/apt/sources.list и основных параметров конфигурации выполняется автоматически на основании метода установки и ответов на ранее заданные вопросы. Необязательно вы можете добавить другие (локальные) репозитории.

# Вы можете указать нужно ли устанавливать non-free и contrib ПО. #d-i apt-setup/non-free boolean true #d-i apt-setup/contrib boolean true # Раскомментируйте, если не хотите использовать зеркало из сети. #d-i apt-setup/use_mirror boolean false # Выберите обновляемые сервисы; задайте используемые зеркала. # Значения ниже используются по умолчанию. #d-i apt-setup/services-select multi-select security, volatile #d-i apt-setup/security_host string security.debian.org #d-i apt-setup/volatile_host string volatile.debian.org # Дополнительные репозитории доступны как local[0-9] #d-i apt-setup/local0/repository string \ # http://local.server/debian stable main #d-i apt-setup/local0/comment string local server # Активировать строки для deb-src #d-i apt-setup/local0/source boolean true # URL публичного ключа локального репозитория; вы должны # предоставлять ключ, или apt будет жаловаться о невозможности # аутентифицировать репозиторий и закомментирует строку, # описывающую этот репозиторий в sources.list #d-i apt-setup/local0/key string http://local.server/key # По умолчанию программа установки требует, чтобы репозитории # аутентифицировались с помощью известного ключа gpg. # Этот параметр выключает данную аутентификацию. # Предупреждение: это небезопасно, рекомендуется не делать этого. #d-i debian-installer/allow_unauthenticated string true

B.4.10. Выбор пакетов

Вы можете выбрать любую доступную комбинацию устанавливаемых задач. Доступные задачи:

  • standard (стандартная система)

  • desktop (рабочий стол)

  • gnome-desktop (рабочий стол gnome)

  • kde-desktop (рабочий стол kde)

  • web-server (веб сервер)

  • print-server (сервер печати)

  • dns-server (DNS-сервер)

  • file-server (файловый сервер)

  • mail-server (почтовый сервер)

  • sql-database (база данных SQL)

  • laptop (для ноутбука)

Также вы можете не выбирать задачи и выполнить установку списка пакетов каким-то другим способом. Мы рекомендуем всегда включать задачу standard.

Если вы хотите установить несколько отдельных пакетов в дополнении к пакетам, устанавливаемым задачами, то вы можете использовать параметр pkgsel/include. В значении этого параметра в качестве разделителя можно использовать запятые или пробелы, поэтому также его можно указать в командной строке ядра.

#tasksel tasksel/first multiselect standard, web-server # Если выбрана задача Рабочий стол, то установить рабочий стол # kde и xfce вместо рабочего стола gnome по умолчанию. #tasksel tasksel/desktop multiselect kde, xfce # Отдельные дополнительные пакеты для установки #d-i pkgsel/include string openssh-server build-essential # Некоторые версии программы установки могут отсылать отчёт # об установленных пакетах. По умолчанию данная возможность # выключена, но отправка отчёта помогает проекту # определить популярность программ и какие из них включать на CD. #popularity-contest popularity-contest/participate boolean false

B.4.11. Установка загрузчика

# Grub является загрузчиком по умолчанию (для x86). Если вы хотите # установить lilo, раскомментируйте следующую строку: #d-i grub-installer/skip boolean true # Чтобы пропустить установку lilo и вообще не устанавливать системный # загрузчик, раскомментируйте: #d-i lilo-installer/skip boolean true # Эту переменную можно безопасно устанавливать, она указывает, что grub # должен устанавливаться в MBR, # если на машине не найдено другой операционной системы. d-i grub-installer/only_debian boolean true # Это заставляет grub-installer устанавливать в MBR, даже если на машине # есть другая ОС, что менее безопасно, так как может привести к отказу # загрузки этой другой ОС. d-i grub-installer/with_other_os boolean true # Или же, если вы хотите установить загрузчик не в mbr, # то раскомментируйте и отредактируйте следующие строки: #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) # Для установки grub на несколько дисков: #d-i grub-installer/bootdev string (hd0,0) (hd1,0) (hd2,0)

B.4.12. Завершение первого этапа установки

# Не показывать последнее сообщение о том, что установка завершена. d-i finish-install/reboot_in_progress note # Эта настройка заставляет программу установки не выдвигать лоток CD при # перезагрузке, что иногда полезно. #d-i cdrom-detect/eject boolean false

B.4.13. Настройка X системы

Возможна автоматическая настройка X системы в Debian, но для этого, вероятно, нужно знать некоторые детали о видео аппаратуре машины, так как X конфигуратор Debian не поддерживает полную автоматическую настройку любого оборудования.

# X может определить нужный драйвер для некоторых карт, но при # автоматизации, # можно задать нужный. Кроме того, драйвер vesa работает почти везде. #xserver-xorg xserver-xorg/config/device/driver select vesa # Предостережение при неудачном автообнаружении мыши, X будет # показывать снова и снова. Поэтому при выполнении автоустановки существует # вероятность возникновения бесконечного цикла, если мышь не будет # обнаружена. #xserver-xorg xserver-xorg/autodetect_mouse boolean true # Рекомендуется включать автоопределение монитора. xserver-xorg xserver-xorg/autodetect_monitor boolean true # Раскомментируйте, если у вас LCD монитор. #xserver-xorg xserver-xorg/config/monitor/lcd boolean true # X имеет три пути настройки монитора. Здесь показан # "средний" путь, который всегда работает. "Простой" путь # может быть не доступен, а в "расширенном" пути задаётся слишком # много вопросов. xserver-xorg xserver-xorg/config/monitor/selection-method \ select medium xserver-xorg xserver-xorg/config/monitor/mode-list \ select 1024x768 @ 60 Hz

B.4.14. Автоматизация других пакетов

# В зависимости от выбранного для установки ПО, или если что-то идёт # неправильно во время процесса установки, существует вероятность появления других # вопросов. Естественно, их тоже можно автоматизировать. Чтобы получить список # всех возможных вопросов, которые могут быть заданы во время установки, выполните # установку, а затем запустите следующие команды: # debconf-get-selections --installer > файл # debconf-get-selections > > файл