Autoinstall
Материал из ALT Linux Wiki
(→Запуск установки) |
|||
Строка 1: | Строка 1: | ||
- | + | Дистрибутив ALT Linux можно установить в автоматическом режиме. Для этого нужно иметь установочный диск и доступный по сети каталог с несколькими файлами. | |
- | Дистрибутив ALT Linux можно установить в автоматическом режиме. Для этого нужно иметь установочный диск и доступный по сети каталог с несколькими файлами. | + | |
+ | Данное руководство проверено на установке [[Альт Линукс 6.0 Кентавр]]. | ||
== Запуск установки == | == Запуск установки == | ||
Строка 24: | Строка 25: | ||
* '''vm-profile.scm''' — схема разбивки жёсткого диска на языке scheme | * '''vm-profile.scm''' — схема разбивки жёсткого диска на языке scheme | ||
* '''pkg-groups.tar''' — архив, содержащий дополнительные к базовой системе группы пакетов (можно просто взять с диска из подкаталога Metadata/ | * '''pkg-groups.tar''' — архив, содержащий дополнительные к базовой системе группы пакетов (можно просто взять с диска из подкаталога Metadata/ | ||
- | |||
== Делаем «собственный» дистрибутив == | == Делаем «собственный» дистрибутив == | ||
Строка 30: | Строка 30: | ||
При автоустановке по сети (например, через alterator-netinst) есть возможность править состав и скрипты автоустановки «вживую». | При автоустановке по сети (например, через alterator-netinst) есть возможность править состав и скрипты автоустановки «вживую». | ||
- | # | + | # Добавьте требуемые файлы автоустановки в каталог, например, /var/Metadata/ |
- | # | + | # Прикрепите этот каталог в /srv/public/Metadata <pre>mount --bind /var/Metadata /srv/public/Metadata</pre> |
- | # Можете добавить свои пакеты в состав пакетов в подкаталоге ALTLinux/RPMS.main. После этого запустите | + | # Можете добавить свои пакеты в состав пакетов в подкаталоге ALTLinux/RPMS.main. После этого запустите <pre>genbasedir --topdir=/srv/public ALTLinux main</pre> |
- | + | ||
== Формат файла autoinstall.scm == | == Формат файла autoinstall.scm == | ||
Строка 39: | Строка 38: | ||
Файл autoinstall.scm представляет из себя командный скрипт для программы установки, написанный с использованием языка программирования scheme. Каждая строка крипта — команда для модуля программы установки. Рассмотрим в качестве примера стандартный скрипт автоматической установки операционной системы: | Файл autoinstall.scm представляет из себя командный скрипт для программы установки, написанный с использованием языка программирования scheme. Каждая строка крипта — команда для модуля программы установки. Рассмотрим в качестве примера стандартный скрипт автоматической установки операционной системы: | ||
- | <source lang="lisp">; установка языка операционной системы | + | <source lang="lisp">; установка языка операционной системы (ru_RU) |
- | + | ("/sysconfig-base/language" action "write" lang ("ru_RU")) | |
- | ; установка переключателя клавиатуры | + | ; установка переключателя расладки клавиатуры на Ctrl+Shift |
- | + | ("/sysconfig-base/kbd" action "write" layout "ctrl_shift_toggle") | |
- | ; установка | + | ; установка часового пояса в Europe/Moscow, время в BIOS будет храниться в UTC |
- | + | ("/datetime-installer" action "write" commit #t name "RU" zone "Europe/Moscow" utc #t) | |
; автоматическая разбивка жёсткого диска | ; автоматическая разбивка жёсткого диска | ||
- | + | ("/evms/control" action "write" control open installer #t) | |
- | + | ("/evms/control" action "write" control update) | |
- | + | ("/evms/profiles/server" action apply commit #f clearall #t exclude ()) | |
- | + | ("/evms/control" action "write" control commit) | |
- | + | ("/evms/control" action "write" control close) | |
- | + | ||
; установка пакетов операционной системы | ; установка пакетов операционной системы | ||
- | + | ("pkg-init" action "write") | |
- | (("pkg-install" | + | ; установка только базовой системы (дополнительные группы пакетов из pkg-groups.tar указываются по именам через пробел) |
- | + | ("/pkg-install" action "write" lists "" auto #t) | |
- | + | ("/preinstall" action "write") | |
- | ; установка загрузчика | + | ; установка загрузчика GRUB в MBR на первый жёсткий диск |
- | + | ("/grub" action "write" language ("ru_RU") device "/dev/sda") | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
; настройка сетевого интерфейса на получение адреса по DHCP | ; настройка сетевого интерфейса на получение адреса по DHCP | ||
- | + | ("/net-eth" action "write" reset #t) | |
- | + | ("/net-eth" action "write" name "eth0" configuration "dhcp" default "" search "" dns "" computer_name "c245") | |
- | + | ("/net-eth" action "write" commit #t) | |
- | + | ; установка пароля суперпользователя root '123' | |
- | ; установка пароля | + | ("/root/change_password" language ("ru_RU") passwd_2 "123" passwd_1 "123") |
- | ("/root/change_password" | + | ; задание первого пользователя 'test' с паролем '123' |
+ | ("/users/create_account" new_name "test" gecos "" allow_su #t auto #f passwd_1 "123" passwd_2 "123") | ||
+ | </source> | ||
== Формат файла vm-profile.scm == | == Формат файла vm-profile.scm == | ||
Строка 75: | Строка 71: | ||
Файл vm-profile.svm содержит сценарий на языке scheme, описывающий формат автоматической разбивки жёсткого диска. Рассмотрим его на примере: | Файл vm-profile.svm содержит сценарий на языке scheme, описывающий формат автоматической разбивки жёсткого диска. Рассмотрим его на примере: | ||
- | <source lang="lisp"> | + | <source lang="lisp">((server |
- | ((server | + | (title . "Setup for server") |
- | + | (action . trivial) | |
- | (title . | + | ; данные для действия. В данном случае создаётся раздел swap с размером 8 ГБ (размер указывается в блоках длиной 512 байт) |
- | + | (actiondata ("swap" (size . 16174080) (fsim . "SWAPFS") (methods raid plain)) | |
- | (action . trivial) | + | ; данные для создания корневого раздела, объёмом 7,3 ГБ с файловой системой ext4 |
- | ; данные для действия. В данном случае создаётся раздел swap с размером | + | ("/" (size . 15000000 ) (fsim . "Ext2/3") (methods raid plain)) |
- | (actiondata ("swap" (size . | + | ; данные для создания раздела /var, объёмом от 2 ГБ с заполнением всего доступного места с файловой системой ext4 |
- | ; данные для создания корневого раздела, объёмом | + | ("/var" (size 4194304 . #t) (fsim . "Ext2/3") (methods raid plain)))) |
- | ("/" (size | + | (workstation |
- | ; данные для создания раздела / | + | (title . "Setup for workstation") |
- | ("/ | + | (action . trivial) |
- | + | (actiondata ("swap" (size . 8087040) (fsim . "SWAPFS") (methods plain)) | |
- | ("/ | + | ("/" (size 22000000 . 22000000 ) (fsim . "Ext2/3") (methods plain)) |
- | )))</source> | + | ("/home" (size 4194304 . #t) (fsim . "Ext2/3") (methods plain)))) |
+ | )</source> | ||
+ | |||
+ | Вы можете не указывать этот профиль вообще, возложив автоматическую разметку на профиль в составе дистрибутива | ||
== Формат файла pkg-groups.tar == | == Формат файла pkg-groups.tar == |
Версия 14:17, 18 января 2012
Дистрибутив ALT Linux можно установить в автоматическом режиме. Для этого нужно иметь установочный диск и доступный по сети каталог с несколькими файлами.
Данное руководство проверено на установке Альт Линукс 6.0 Кентавр.
Содержание |
Запуск установки
Для включения режима автоматической установки ядру инсталятора операционной системы необходимо передать параметр загрузки ai (без значения). Сделать это можно в меню загрузки диска или в приглашении boot: при загрузке по сети. Автоустановка поддерживается в следующих режимах установки: http, ftp, cdrom, disk, nfs.
Для автоустановки требуется диск с дистрибутивом (в приводе или с сетевого ресурса) и набор из четырёх файлов, описывающих процесс установки. Все четыре файла нужно поместить в каталог, доступный по сети по протоколам HTTP или FTP, и указать путь к нему в параметрах загрузки curl.
Формат адреса в curl должен быть представлен в виде URL. Пример параметров загрузки:
ai curl=http://192.168.5.1/installer/metadata/
При невозможности получения из указанного источника по сети, программа установки будет смотреть в следующих местах:
- на диске в каталоге /Metadata/
- в образе установщика в каталоге /usr/share/install2/metadata/
Внимание! Автоустановка работает со штаными дистрибутивами пока только при сетевой установке. При запуске с диска сеть недоступна. Подробности: altbug #26813.
Содержимое каталога metadata
В каталоге metadata могут быть следующие файлы:
- autoinstall.scm — сценарий установки на языке scheme
- vm-profile.scm — схема разбивки жёсткого диска на языке scheme
- pkg-groups.tar — архив, содержащий дополнительные к базовой системе группы пакетов (можно просто взять с диска из подкаталога Metadata/
Делаем «собственный» дистрибутив
При автоустановке по сети (например, через alterator-netinst) есть возможность править состав и скрипты автоустановки «вживую».
- Добавьте требуемые файлы автоустановки в каталог, например, /var/Metadata/
- Прикрепите этот каталог в /srv/public/Metadata
mount --bind /var/Metadata /srv/public/Metadata
- Можете добавить свои пакеты в состав пакетов в подкаталоге ALTLinux/RPMS.main. После этого запустите
genbasedir --topdir=/srv/public ALTLinux main
Формат файла autoinstall.scm
Файл autoinstall.scm представляет из себя командный скрипт для программы установки, написанный с использованием языка программирования scheme. Каждая строка крипта — команда для модуля программы установки. Рассмотрим в качестве примера стандартный скрипт автоматической установки операционной системы:
; установка языка операционной системы (ru_RU) ("/sysconfig-base/language" action "write" lang ("ru_RU")) ; установка переключателя расладки клавиатуры на Ctrl+Shift ("/sysconfig-base/kbd" action "write" layout "ctrl_shift_toggle") ; установка часового пояса в Europe/Moscow, время в BIOS будет храниться в UTC ("/datetime-installer" action "write" commit #t name "RU" zone "Europe/Moscow" utc #t) ; автоматическая разбивка жёсткого диска ("/evms/control" action "write" control open installer #t) ("/evms/control" action "write" control update) ("/evms/profiles/server" action apply commit #f clearall #t exclude ()) ("/evms/control" action "write" control commit) ("/evms/control" action "write" control close) ; установка пакетов операционной системы ("pkg-init" action "write") ; установка только базовой системы (дополнительные группы пакетов из pkg-groups.tar указываются по именам через пробел) ("/pkg-install" action "write" lists "" auto #t) ("/preinstall" action "write") ; установка загрузчика GRUB в MBR на первый жёсткий диск ("/grub" action "write" language ("ru_RU") device "/dev/sda") ; настройка сетевого интерфейса на получение адреса по DHCP ("/net-eth" action "write" reset #t) ("/net-eth" action "write" name "eth0" configuration "dhcp" default "" search "" dns "" computer_name "c245") ("/net-eth" action "write" commit #t) ; установка пароля суперпользователя root '123' ("/root/change_password" language ("ru_RU") passwd_2 "123" passwd_1 "123") ; задание первого пользователя 'test' с паролем '123' ("/users/create_account" new_name "test" gecos "" allow_su #t auto #f passwd_1 "123" passwd_2 "123")
Формат файла vm-profile.scm
Файл vm-profile.svm содержит сценарий на языке scheme, описывающий формат автоматической разбивки жёсткого диска. Рассмотрим его на примере:
((server (title . "Setup for server") (action . trivial) ; данные для действия. В данном случае создаётся раздел swap с размером 8 ГБ (размер указывается в блоках длиной 512 байт) (actiondata ("swap" (size . 16174080) (fsim . "SWAPFS") (methods raid plain)) ; данные для создания корневого раздела, объёмом 7,3 ГБ с файловой системой ext4 ("/" (size . 15000000 ) (fsim . "Ext2/3") (methods raid plain)) ; данные для создания раздела /var, объёмом от 2 ГБ с заполнением всего доступного места с файловой системой ext4 ("/var" (size 4194304 . #t) (fsim . "Ext2/3") (methods raid plain)))) (workstation (title . "Setup for workstation") (action . trivial) (actiondata ("swap" (size . 8087040) (fsim . "SWAPFS") (methods plain)) ("/" (size 22000000 . 22000000 ) (fsim . "Ext2/3") (methods plain)) ("/home" (size 4194304 . #t) (fsim . "Ext2/3") (methods plain)))) )
Вы можете не указывать этот профиль вообще, возложив автоматическую разметку на профиль в составе дистрибутива
Формат файла pkg-groups.tar
Файл pkg-groups.tar представляет собой tar-архив с двумя подкаталогами: groups (содержащий описание групп программного обеспечения в файлах .desktop) и lists (содержащий файлы со списками пакетов для каждой группы). В подкаталоге lists находится скрытый файл .base, содержащий список пакетов «базовой системы» (то есть те пакеты, которые устанавливаются в любом случае). Описание форматов указания групп описано в Alterator-pkg.
Файл pkg-groups.tar проще всего взять с диска из каталога /Metadata/ и доработать, если необходимо.
Для изменения списка пакетов распакуйте архив командой
tar xf pkg-groups.tar
После этого перейдите в подкаталог lists и добавьте или измените файл группы. Имена пакетов указываются по одному в каждой строке. Имя файла используемой группы затем указывается через пробел в autoinstall.scm:
(("pkg-install") action "write" lists "group-1 group-2" auto #t)
где group-1 и group-2 — имена файлов со списками пакетов из подкаталога lists.
После исправлений упакуйте снова в архив командой:
tar cf pkg-groups.tar groups lists
Внимание! Учтите, что в качестве источника пакетов при установке выступает сам диск, поэтому указание не лежащих на нём пакетов приведёт к сбою установки. Если хотите добавить новые пакеты, пересоберите диск дистрибутива или исопльзуйте скрипты, выполняющиеся после установки.