C.4. Установка Debian GNU/Linux из системы Unix/Linux

В этом разделе объясняется, как установить Debian GNU/Linux из существующей системы Unix или Linux без использования управляемой из меню программы установки, основанной на библиотеке ncurses, как это описывается в остальном руководстве. Это «междистрибутивное» HOWTO попросили пользователи, переходящие на Debian GNU/Linux из Redhat, Mandrake и SUSE. В этом разделе подразумевается наличие некоторого опыта работы с командами *nix и навигации по файловой системе. Здесь символ $ означает команду, вводимую в текущей пользовательской системе, а # относится к команде, вводимой в Debian chroot.

Как только вы получите новую систему Debian, настроенную по вашим предпочтениям, вы можете перенести ваши данные (если они есть) в неё и продолжать работу. Поэтому такая установка Debian GNU/Linux считается «с нулевым временем простоя» (zero downtime). Также это мудрый способ работы с аппаратурой, которая не может нормально работать с разными загрузочными или установочными носителями.

C.4.1. Начинаем

С помощью имеющейся утилиты работы с разделами диска, переразметьте диск как нужно, создав как минимум одну файловую систему плюс раздел подкачки (swap). Вам потребуется минимум 150 МБ для консольной версии установки или минимум 300 МБ, если вы планируете установить X.

Создайте файловые системы на разделах. Например, чтобы создать файловую систему ext3 на разделе /dev/hda6 (это корневой раздел в нашем примере):

# mke2fs -j /dev/hda6

Чтобы создать файловую систему ext2, не указывайте параметр -j.

Проинициализируйте и активируйте раздел подкачки (замените номер раздела на свой):

# mkswap /dev/hda5
# sync; sync; sync
# swapon /dev/hda5

Смонтируйте один раздел как /mnt/debinst (точка установки, она будет корневой (/) файловой системой в вашей новой системе). Имя точки монтирования абсолютно произвольное.

# mkdir /mnt/debinst
# mount /dev/hda6 /mnt/debinst

Замечание

Если вы хотите монтировать некоторые файловые системы (например /usr) с отдельных разделов, то нужно создать и смонтировать эти каталоги вручную, перед тем как перейти к следующему этапу.

C.4.2. Установка debootstrap

Инструмент, которым пользуется программа установки Debian и который признан официальным способом установки базовой системы Debian — debootstrap. Он использует wget и ar, но зависит только от /bin/sh. Установите wget и ar, если их ещё нет в системе, а затем загрузите и установите debootstrap.

Если у вас система, основанная на rpm, вы можете использовать alien для конвертации .deb в .rpm или загрузить rpm версию с http://people.debian.org/~blade/install/debootstrap

Или вы можете использовать следующую процедуру установки вручную. Создайте каталог work для распаковки в него .deb:

# mkdir work
# cd work

Бинарный файл debootstrap расположен в архиве Debian (убедитесь, что вы выбрали правильный файл, соответствующий вашей архитектуре). Загрузите debootstrap .deb из пула, скопируйте пакет в каталог work и извлеките из него бинарные файлы. Вам потребуются привилегии суперпользователя (root) для установки бинарных файлов.

# ar -x debootstrap_0.X.X_arch.deb
# cd /
# zcat /full-path-to-work/work/data.tar.gz | tar xv

Заметим, что для запуска debootstrap может потребоваться урезанная версия библиотеки glibc (на данный момент GLIBC_2.3). Сам debootstrap — это просто сценарий оболочки, но из него запускаются различные утилиты, которым требуется glibc.

C.4.3. Запуск debootstrap

При запуске debootstrap загружает необходимые файлы прямо из архива. В примере ниже вы можете заменить http.us.debian.org/debian на любой сервер-зеркало архивов Debian, лучше всего использовать из наиболее близкой к вам сети. Список серверов http://www.debian.org/misc/README.mirrors.

Если у вас есть компакт-диск с sarge Debian GNU/Linux, смонтированный в /cdrom, вы можете подставить URL типа file вместо http URL: file:/cdrom/debian/

Замените ARCH на один из следующих вариантов в команде запуска debootstrap: alpha, arm, hppa, i386, ia64, m68k, mips, mipsel, powerpc, s390 или sparc.

# /usr/sbin/debootstrap --arch ARCH sarge \
     /mnt/debinst http://http.us.debian.org/debian

C.4.4. Настройка базовой системы

Теперь у вас на диске есть настоящая, пусть и слабенькая, система Debian. Выполните Chroot в неё:

# LANG= chroot /mnt/debinst /bin/bash

C.4.4.1. Монтирование разделов

Вам нужно создать файл /etc/fstab.

# editor /etc/fstab

Вот пример, который можно изменить в соответствии с вашими условиями:

# /etc/fstab: информация о статических файловых системах.
#
# файл. система  точка монтир. тип     параметры                дамп проход
/dev/XXX         /             ext3    defaults                 0    1
/dev/XXX         /boot         ext3    ro,nosuid,nodev          0    2

/dev/XXX         none          swap    sw                       0    0
proc             /proc         proc    defaults                 0    0

/dev/fd0         /mnt/floppy   auto    noauto,rw,sync,user,exec 0    0
/dev/cdrom       /mnt/cdrom    iso9660 noauto,ro,user,exec      0    0

/dev/XXX         /tmp          ext3    rw,nosuid,nodev          0    2
/dev/XXX         /var          ext3    rw,nosuid,nodev          0    2
/dev/XXX         /usr          ext3    rw,nodev                 0    2
/dev/XXX         /home         ext3    rw,nosuid,nodev          0    2

Выполните mount -a для монтирования всех файловых систем, указанных в файле /etc/fstab, а для монтирования определённой файловой системы выполните:

# mount /path   # пример: mount /usr

Вы можете монтировать файловую систему proc несколько раз и в произвольные места, хотя принято в /proc. Если вы не использовали mount -a, то перед тем как продолжить, убедитесь, что proc смонтирована:

# mount -t proc proc /proc

Команда ls /proc теперь должна показывать, что каталог не пустой. Если это не так, можно смонтировать proc за пределами chroot:

# mount -t proc proc /mnt/debinst/proc

C.4.4.2. Настройка клавиатуры

Для настройки клавиатуры введите:

# dpkg-reconfigure console-data

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

C.4.4.3. Настройка сети

Для настройки сети, отредактируйте /etc/network/interfaces, /etc/resolv.conf и /etc/hostname.

# editor /etc/network/interfaces 

Здесь приведены некоторые простые примеры из /usr/share/doc/ifupdown/examples:

######################################################################
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
# See the interfaces(5) manpage for information on what options are
# available.
######################################################################

# We always want the loopback interface.
#
auto lo
iface lo inet loopback

# To use dhcp:
#
# auto eth0
# iface eth0 inet dhcp

# An example static IP setup: (broadcast and gateway are optional)
#
# auto eth0
# iface eth0 inet static
#     address 192.168.0.42
#     network 192.168.0.0
#     netmask 255.255.255.0
#     broadcast 192.168.0.255
#     gateway 192.168.0.1

Укажите серверы имён и директивы search в /etc/resolv.conf:

# editor /etc/resolv.conf

Простой /etc/resolv.conf:

search hqdom.local\000
nameserver 10.1.1.36
nameserver 192.168.9.100

Укажите имя системы (от 2 до 63 символов):

# echo DebianHostName > /etc/hostname

Если у вас несколько сетевых карт, то вам нужно разместить имена драйверов в файле /etc/modules в желаемом порядке. Позже при загрузке каждая карта будет связана с именем интерфейса (eth0, eth1, и тд.) как вы и хотели.

C.4.4.4. Настройка часового пояса, пользователей и APT

Выберите часовой пояс, добавьте обычного пользователя и укажите источники apt, запустив

# /usr/sbin/base-config new

C.4.4.5. Настройка локалей

Чтобы использовать язык, отличный от английского, нужно настроить локаль. Для этого установите пакет поддержки локалей и настройте его:

# apt-get install locales
# dpkg-reconfigure locales

ЗАМЕЧАНИЕ: Apt должен быть уже настроен, например, во время фазы base-config. Перед использованием локалей с набором символов, отличным от ASCII или latin1, пожалуйста проконсультируйтесь с нужным HOWTO по локализации.

C.4.5. Установка ядра

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

# apt-cache search kernel-image

Затем установите нужное указав его имя пакета.

# apt-get install kernel-image-2.X.X-arch-etc

C.4.6. Установка системного загрузчика

Чтобы сделать систему Debian GNU/Linux загружаемой, настройте ваш системный загрузчик на загрузку установленного ядра с новым корневым разделом. Заметим, что debootstrap не устанавливает системный загрузчик, хотя вы можете использовать apt-get внутри вашего Debian chroot, чтобы сделать это.

Просмотрите в info grub или man lilo.conf об установке системного загрузчика. Если вы оставляете систему, которую использовали для установки Debian, просто добавьте запись для установленной системы Debian в существующий файл grub menu.lstили lilo.conf. Также, вы можете скопировать его в новую систему и отредактировать его там. После того как закончите редактирование, вызовите lilo (помните, что он будет использовать lilo.conf, относящийся к системе, из которой его вызвали).

Вот простой /etc/lilo.conf в качестве примера:

boot=/dev/hda6
root=/dev/hda6
install=menu
delay=20
lba32
image=/vmlinuz
label=Debian