Дистрибутив Debian

4.1. Официальный набор компакт-дисков Debian GNU/Linux

Самым лёгким путём установки Debian GNU/Linux является установка с официального набора компакт-дисков Debian (смотрите страницу продавцов компакт-дисков Debian). Также, вы можете загрузить образы компакт-дисков с сервера-зеркала Debian и сделать из них набор самостоятельно, если у вас есть высокоскоростное подключение к сети и устройство записи компакт-дисков (подробные инструкции смотрите на странице Debian GNU/Linux на компакт-дисках). Если у вас есть официальный набор компакт-дисков Debian и машина способна загружаться с привода CDROM, то вы можете сразу перейти к Глава;5, Загрузка системы установки; много усилий было потрачено, чтобы добиться того, чтобы файлы на этих дисках стали полезными большому числу людей. Хотя полный набор готовых пакетов умещается на нескольких дисках, вряд ли вам понадобятся пакеты, расположенные на третьем и последующих дисках. Также вы можете подумать над использованием DVD версии, так как это сохранит место на вашей полке и вы избежите частой смены компакт-дисков в приводе.
Если машина не поддерживает загрузку с компакт-диска, а вы имеете набор CD, то для загрузки программы установки можно воспользоваться другим методом, например, загрузить ядро с дискеты, с жёсткого диска, с карт памяти usb, по сети, или вручную с CD. Для этого на компакт-диске есть все файлы; структура архива Debian в сети и каталогов CD идентичны. Поэтому, когда ниже встречаются пути к файлам в архиве, которые требуются для определённого вида загрузки, поищите эти файлы в тех же каталогах и подкаталогах на ваших CD.
После загрузки программы установки, можно будет загрузить все остальные файлы с компакт-дисков.
Если у вас нет набора CD, то вам потребуется загрузить системные файлы программы установки и сохранить их на дискету или жёсткий диск, или карте памяти usb, или подключённый к сети компьютер и использовать их для загрузки программы установки.

4.2. Загрузка файлов с серверов-зеркал Debian

Ближайший (и поэтому, вероятно, самый быстрый) к вам сервер-зеркало можно найти в списке серверов-зеркал Debian.
При загрузке файлов с сервера-зеркала Debian проверьте, что загружаете файлы в двоичном, а не текстовом или автоматическом режиме.

4.2.1. Где искать установочные образы

Установочные образы на сервере-зеркале Debian находятся в каталоге debian/dists/etch/main/installer-i386/current/images/ — в файле MANIFEST описано для чего предназначен каждый образ.

4.3. Создание дискет из образов дисков

Загрузочные дискеты обычно используются в последнюю очередь, если больше никак нельзя загрузить программу установки на машине, которая не умеет загружаться с CD или каким-то другим способом.
Образы дисков — это файлы, в которых содержится полная информация с дискеты в необработанном (raw) виде. Образы дисков, такие как boot.img, нельзя скопировать на дискету обычным образом. Для этого нужно использовать специальную программу, которая пишет образы файлов на дискету в нестандартном режиме. Это обязательное условие, так как образы представляют собой необработанные данные дискеты; для записи требуется выполнение посекторного копирования данных из файла на дискету.
Есть несколько техник (зависящих от платформы) по созданию дискет из образов дисков. В этом разделе описано, как создавать дискеты из образов дисков на различных платформах.
Перед тем как сделать установочные дискеты, вам нужно скачать их с одного серверов-зеркал Debian (смотрите Раздел;4.2, «Загрузка файлов с серверов-зеркал Debian»). Если у вас уже есть установочный CD-ROM или DVD, то образы дискет могут быть уже на этих CD/DVD.
Неважно каким методом вы создадите дискеты, вы только должны помнить о переключении защиты от записи на дискетах после их создания, чтобы непреднамеренно не повредить их.

4.3.1. Запись образов дисков из систем Linux или Unix

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

$ dd if=файл of=/dev/fd0 bs=1024 conv=sync ; sync

где файл — это один из файловых образов дискет. /dev/fd0 — это имя устройства дисковода, оно может отличаться от используемого на вашей машине. Команда может завершиться раньше, чем Unix завершит запись на дискету, поэтому следите за лампой дисковода и перед вытаскиванием дискеты убедитесь, что лампа погасла и диск перестал вращаться. На некоторых системах нужно выдать команду вытаскивания дискеты из дисковода .
Некоторые системы пытаются автоматически смонтировать дискету после появления её в дисководе. Вам может потребоваться выключить это свойство, иначе рабочая станция не позволит вам запись на дискету в нестандартном (raw) режиме. К сожалению, как этого достичь зависит от операционной системы.

4.3.2. Запись образов дисков из DOS, Windows или OS/2

Если у вас есть доступ к машине i386 или amd64, то для копирования образов на дискеты вы можете воспользоваться одной из программ, упомянутых ниже.
В MS-DOS можно использовать программы rawrite1и rawrite2. Сначала убедитесь, что вы загрузились в DOS. Попытка использовать эти программы в DOS-окне под Windows или с помощью двойного щелчка мышью из Проводника Windows, скорее всего не сработает.
Программа rwwrtwinработает под Windows 95, NT, 98, 2000, ME, XP и, вероятно, с более поздними версиями. Для её использования вам надо распаковать diskio.dll в тот же самый каталог.
Эти утилиты можно найти на официальных компакт-дисках Debian CD-ROM в каталоге /tools.

4.4. Подготовка файлов для загрузки с карты памяти USB

Для подготовки карты памяти USB вам нужна работающая система GNU/Linux с поддержкой USB. Убедитесь, что загружен модуль ядра usb-storage (modprobe usb-storage) и попытайтесь выяснить на какое устройство SCSI отображена карта памяти USB (в примере используется /dev/sda). Также выключите защиту от записи на карту.
Заметим, что карта памяти USB должна быть как минимум 256 МБ (установка на меньший размер возможна после прочтения Раздел;4.4.2, «Копирование файлов — гибкий путь»).

4.4.1. Копирование файлов — лёгкий путь

Существует файл "всё-в-одном" — hd-media/boot.img.gz, который содержит все файлы установки (включая ядро), а также SYSLINUXи его файл конфигурации. Вам нужно просто распаковать его прямо на карту памяти USB:

# zcat boot.img.gz > /dev/sda

Внимание

Естественно, это уничтожит все данные на устройстве, поэтому не ошибитесь в названии устройства карты памяти USB.
После этого, смонтируйте карту памяти USB (mount /dev/sda /mnt), которая теперь имеет файловую систему FAT и скопируйте на неё ISO-образ Debian netinst или businesscard (смотрите Раздел;4.4.3, «Добавление ISO образа»). Размонтируйте устройство (umount /mnt) и всё готово.

4.4.2. Копирование файлов — гибкий путь

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

4.4.2.1. Разметка карты памяти USB на архитектуре Intel x86

Мы покажем как использовать на карте памяти только первый раздел, а не всё устройство.

Замечание

Большинство карт памяти USB продаются с единственным разделом FAT16 но вам, вероятно, не хочется переразмечать или форматировать устройство. Если вам всё равно это нужно сделать, воспользуйтесь cfdiskили любой другой утилитой разметки для создания раздела FAT16, а затем создайте файловую систему:

# mkdosfs /dev/sda1

Обязательно вводите правильное имя устройства карты памяти USB. Команда mkdosfsсодержится в пакете Debian dosfstools.
Для запуска ядра после загрузки карты памяти USB, мы поместим на неё системный загрузчик. Хотя должен работать любой системный загрузчик (например, LILO), удобнее использовать SYSLINUX, так как он использует раздел FAT16 и настраивается простым редактированием текстового файла. Для изменения конфигурации системного загрузчика можно использовать любую операционную систему, которая поддерживает файловую систему FAT.
Чтобы поместить SYSLINUXна раздел FAT16 карты памяти USB, установите в систему пакеты syslinux и mtools и введите

# syslinux /dev/sda1

Ещё раз отметим: не ошибитесь в имени устройства. Раздел не должен быть смонтирован при запуске SYSLINUX. Эта процедура переписывает загрузочный сектор раздела и создаёт файл ldlinux.sys, который содержит код системного загрузчика.
Смонтировав раздел (mount /dev/sda1 /mnt), скопируйте следующие файлы из архива Debian:

Если вы хотите переименовать файлы, учтите, что SYSLINUXработает только с файловыми именами DOS (8.3).
Файл конфигурации syslinux.cfg должен содержать следующие две строки:

default vmlinuz
append initrd=initrd.gz

4.4.3. Добавление ISO образа

Программа установки использует образ Debian ISO с карты памяти, если требуются дополнительные данные для установки. Теперь вы должны положить на карту памяти какой-нибудь ISO образ Debian (businesscard, netinst или даже образ первого CD) (если он влезет). Имя файла образа обязательно должно заканчиваться на .iso.
Если вы хотите выполнять установку через сеть, без использования ISO образа, вам естественно нужно пропустить предыдущий шаг. Кроме того, вам нужно использовать ramdisk из каталога netboot, а не из hd-media, так как в hd-media/initrd.gz нет поддержки сети.
После завершения копирования, размонтируйте карту памяти USB (umount /mnt) и включите защиту от записи.

4.4.4. Загрузка с карты памяти USB

Внимание

Если машина не хочет загружаться с карты памяти USB, то одной из причин может быть неправильная главная загрузочная запись (MBR). Чтобы исправить её, используйте команду install-mbrиз пакета mbr:

# install-mbr /dev/sda

4.5. Подготовка файлов для загрузки с жёсткого диска

Программа установки может быть загружена из файлов, размещённых на существующем разделе жёсткого диска, или запущена из другой операционной системы или вызовом системного загрузчика прямо из BIOS.
«Полностью сетевой» установки можно достичь с помощью этой техники. Она позволяет избежать всех неприятностей со сменными носителями, например, поиск и прожиг CD образов или борьбы с кучей нечитаемых дискет.
Программа установки не может загрузиться из файлов, расположенных в файловой системе NTFS.

4.5.1. Загрузка программы установки с жёсткого диска с помощью LILOили GRUB

Этот раздел описывает как добавить или даже заменить существующую установку linux с помощью LILOили GRUB.
Во время загрузки оба системных загрузчика способны загружать в память не только ядро, но и образ диска. Этот RAMdisk может использоваться ядром в качестве корневой файловой системы.
Скопируйте следующие файлы из архива Debian в удобное место на жёстком диске, например, в /boot/newinstall/.

Настройте системный загрузчик следуя указаниям Раздел;5.1.2, «Загрузка из Linux с помощью LILOили GRUB».

4.6. Подготовка файлов для загрузки по TFTP

Если ваша машина подключена к локальной сети, то вы можете загрузить её по сети с другой машины через TFTP. Для этого на удалённую машину в определённое место вам нужно поместить загрузочные файлы и настроить поддержку загрузки вашей машины.
Вам нужно настроить TFTP сервер, а если машин много, то DHCP сервер .
BOOTP — это IP протокол, который информирует компьютер о его IP-адресе и где в сети получить загрузочный образ. DHCP (Dynamic Host Configuration Protocol) более гибок и обратно совместим с BOOTP. Некоторые системы могут быть настроены только через DHCP.
Trivial File Transfer Protocol (TFTP) используется для загрузки загрузочного образа на клиентскую машину. Теоретически, можно использовать любой сервер на любой платформе, которая реализует эти протоколы. В примерах этого раздела мы используем команды из SunOS 4.x, SunOS 5.x (так называемый Solaris) и GNU/Linux.

Замечание

Для использования загрузки по TFTP в методе Pre-boot Execution Environment (PXE) , вам нужен TFTP сервер с поддержкой tsize. На сервере Debian GNU/Linux этому условию удовлетворяют пакеты atftpd и tftpd-hpa; мы рекомендуем tftpd-hpa.

4.6.1. Настройка BOOTP сервера

Для GNU/Linux есть два BOOTP сервера. Первый — CMU bootpd. Второй, на самом деле являющийся сервером DHCP — ISC dhcpd. В Debian GNU/Linux они находятся в пакетах bootp и dhcp3-server соответственно.
Чтобы использовать CMU bootpd, во-первых, вы должны раскомментировать (или добавить) соответствующую строку в /etc/inetd.conf. Для этого в Debian GNU/Linux вы можете запустить update-inetd --enable bootps, затем /etc/init.d/inetd reload. Если BOOTP сервер работает не под Debian, то строка выглядит так:

bootps  dgram  udp  wait  root  /usr/sbin/bootpd  bootpd -i -t 120

Теперь вы должны создать файл /etc/bootptab. Внутри он напоминает хорошо знакомый и загадочный формат старых добрых BSD файлов printcap, termcap и disktab. Подробности смотрите на странице руководства bootptab. Для CMU bootpdвам нужно знать аппаратный адрес (MAC) клиента. Вот пример /etc/bootptab:

client:\
  hd=/tftpboot:\
  bf=tftpboot.img:\
  ip=192.168.1.90:\
  sm=255.255.255.0:\
  sa=192.168.1.1:\
  ha=0123456789AB:

Нужно изменить по крайней мере параметр «ha», который содержит аппаратный адрес клиента. Параметр «bf» содержит файл, который клиент должен получить по TFTP; подробности смотрите в Раздел;4.6.4, «Копирование TFTP образов в каталог TFTP сервера».
Напротив, настройка BOOTP в ISC dhcpdочень проста, так как здесь BOOTP считается одним из вариантов клиента DHCP. Некоторые архитектуры требуют сложной конфигурации для загрузки клиентов по BOOTP. Если у вас один из таких случаев, прочитайте раздел Раздел;4.6.2, «Настройка DHCP сервера». Если нет, то достаточно просто добавить директиву allow bootpв конфигурационный блок подсети, содержащей клиента и перезапустить dhcpdкомандой /etc/init.d/dhcpd3-server restart.

4.6.2. Настройка DHCP сервера

Одним из свободных DHCP серверов является ISC dhcpd. В Debian GNU/Linux он доступен из пакета dhcp3-server. Вот пример его конфигурационного файла (обычно /etc/dhcp3/dhcpd.conf):

option domain-name "example.com";
option domain-name-servers ns1.example.com;
option subnet-mask 255.255.255.0;
default-lease-time 600;
max-lease-time 7200;
server-name "servername";
;
subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.200 192.168.1.253;
  option routers 192.168.1.1;
}
;
host clientname {
  filename "/tftpboot/tftpboot.img";
  server-name "servername";
  next-server servername;
  hardware ethernet 01:23:45:67:89:AB;
  fixed-address 192.168.1.90;
}

В этом примере определён единственный сервер servername, который работает в качестве DHCP, TFTP серверов и шлюза сети. Вам почти наверняка нужно изменить опцию domain-name, а также имя сервера и аппаратный адрес клиента. Опция filename должна содержать имя файла, который нужно получить по TFTP.
После редактирования конфигурационного файла для dhcpd, перезагрузите сервер командой /etc/init.d/dhcpd3-server restart.

4.6.2.1. Включение загрузки PXE в конфигурацию DHCP

Вот другой пример dhcp.conf, который можно использовать, если включён метод предстартового выполнения среды (PXE) по TFTP.

option domain-name "example.com";
;
default-lease-time 600;
max-lease-time 7200;
;
allow booting;
allow bootp;
;
# нужно изменить согласно вашим настройкам
subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.200 192.168.1.253;
  option broadcast-address 192.168.1.255;
# адрес шлюза, который может быть другим
# (для доступа в интернет, например)
  option routers 192.168.1.1;
# используемый dns
  option domain-name-servers 192.168.1.3;
}
;
group {
 next-server 192.168.1.3;
 host tftpclient {
# аппаратный адрес клиента tftp
  hardware ethernet  00:10:DC:27:6C:15;
  filename "pxelinux.0";
 }
}

Заметим, что для PXE загрузки в filename клиента pxelinux.0 записан системный загрузчик, а не образ ядра (смотрите ниже Раздел;4.6.4, «Копирование TFTP образов в каталог TFTP сервера»).

4.6.3. Включение TFTP сервера

Для запуска TFTP сервера вы должны убедиться, что tftpdвключён. Обычно, это делается добавлением в /etc/inetd.conf строки вида:

tftp dgram udp wait nobody /usr/sbin/tcpd in.tftpd /tftpboot

Пакеты Debian сами создают такую строку при установке.

Замечание

Исторически, TFTP-серверы используют каталог /tftpboot для хранения образов. Однако, пакеты Debian GNU/Linux могут использовать другие каталоги, чтобы соответствовать Filesystem Hierarchy Standard. Например, tftpd-hpa по умолчанию использует /var/lib/tftpboot. Вам может потребоваться изменить примеры конфигурации для соответствия.
Загляните в файл /etc/inetd.confи запомните каталог, который используется в качестве аргумента in.tftpd[5 ] — он вам понадобиться далее. Если вы изменили /etc/inetd.conf, вам нужно об этом сказать запущенному процессу inetd. На машине Debian выполните /etc/init.d/inetd reload; на других машинах определите ID процесса inetdи запустите kill -HUP inetd-pid.

4.6.4. Копирование TFTP образов в каталог TFTP сервера

Далее, поместите нужный загрузочный образ TFTP из Раздел;4.2.1, «Где искать установочные образы» в каталог загрузочных образов tftpd. Вы можете сделать ссылку на этот файл для файла, который tftpdбудет передавать для загрузки определённому клиенту. К сожалению, имя файла зависит от клиента TFTP и никак не стандартизовано.
Для загрузки через PXE, всё что нужно лежит в файле netboot/netboot.tar.gz. Просто распакуйте этот файл в каталог загрузочных образов tftpd. Убедитесь, что dhcp сервер передаёт pxelinux.0 команде tftpdв качестве имени загружаемого файла.

[5 ] Аргумент -lв некоторых версиях in.tftpdвключает запись протокола всех обращений в системные журналы.

4.7. Автоматическая установка

Для установки на несколько компьютеров можно воспользоваться автоматической установкой. Необходимые пакеты Debian: fai (используется сервером установки), replicator, systemimager, autoinstall и сама программа установки Debian.

4.7.1. Автоматическая установка с помощью программы установки Debian

Программа установки Debian поддерживает автоматическую установку через файлы автоматической установки. Файл автоматической установки может быть загружен по сети или со сменного носителя, и используется для ответов на вопросы, задаваемые во время процесса установки.
Полную документацию по автоматической установке и рабочий пример, который вы можете отредактировать, находится в Приложение;B, Автоматическая установка c помощью списка ответов.