D.3. Установка 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). Также это мудрый способ работы с аппаратурой, которая не может нормально работать с разными загрузочными или установочными носителями.

D.3.1. Начинаем

С помощью имеющейся утилиты *nix для работы с разделами диска, переразметьте диск как нужно, создав как минимум одну файловую систему плюс раздел подкачки (swap). Вам потребуется около 350 МБ для консольной версии установки или около 1 ГБ, если вы планируете установить X (или ещё больше, если вы будете устанавливать окружение рабочего стола типа GNOME или KDE).

Затем создайте файловые системы на разделах. Например, чтобы создать файловую систему 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) с отдельных разделов, то нужно создать и смонтировать эти каталоги вручную, перед тем как перейти к следующему этапу.

D.3.2. Установка debootstrap

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

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

# mkdir work # cd work

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

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

D.3.3. Запуск debootstrap

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

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

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

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

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

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

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

После chrooting, вам может потребоваться выполнить настройку терминала для совместимости с базовой системой Debian, например:

# export TERM=xterm-color

D.3.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 /media/floppy auto noauto,rw,sync,user,exec 0 0 /dev/cdrom /media/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

В системах Debian точки монтирования для съёмных носителей расположены в /media, но для обратной совместимости сделаны в / символические ссылки. Создайте их, если нужно. Пример:

# cd /media # mkdir cdrom0 # ln -s cdrom0 cdrom # cd / # ln -s media/cdrom

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

# mount -t proc proc /proc

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

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

D.3.4.2. Настройка часового пояса

В файле /etc/default/rcS есть параметр, который задаёт, как система должна интерпретировать аппаратные часы установлены ли они по UTC или показывают местное время. Следующая команда позволяет указать это и выбрать часовой пояс.

# editor /etc/default/rcS # tzconfig

D.3.4.3. Настройка сети

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

# 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

Укажите DNS-сервер(ы) и директивы 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/hosts с поддержкой IPv6:

127.0.0.1 localhost DebianHostName # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts

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

D.3.4.4. Настройка Apt

Debootstrap создаст очень общий /etc/apt/sources.list, который позволит установить дополнительные пакеты. Однако, вы можете захотеть добавить дополнительные источники, например для пакетов с исходным кодом и обновлений безопасности:

deb-src http://ftp.us.debian.org/debian etch main deb http://security.debian.org/ etch/updates main deb-src http://security.debian.org/ etch/updates main

Обязательно запустите aptitude update после изменения списка источников.

D.3.4.5. Настройка раскладки клавиатуры и локалей

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

# aptitude install locales # dpkg-reconfigure locales

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

# aptitude install console-data # dpkg-reconfigure console-data

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

D.3.5. Установка ядра

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

# apt-cache search linux-image

Если вы будете использовать ядро из дистрибутива, то перед этим лучше создать файл конфигурации /etc/kernel-img.conf. Пример файла:

# Kernel image management overrides # See kernel-img.conf(5) for details do_symlinks = yes relative_links = yes do_bootloader = yes do_bootfloppy = no do_initrd = yes link_in_boot = no

Подробней об этом файле и параметрах можно найти на странице руководства, которая становится доступной после установки пакета kernel-package. Мы рекомендуем проверить, что значения соответствуют вашей системе.

Затем установите пакет с ядром, которое вы выбрали.

# aptitude install linux-image-2.6.18-arch-etc

Если вы не создали /etc/kernel-img.conf перед установкой ядра из пакета, то вам могут быть заданы несколько вопросов во время установки для настройки этого файла.

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

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

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

Установить и настроить grub легко:

# aptitude install grub # grub-install /dev/hda # update-grub

Вторая команда устанавливает grub (в данном случае в MBR диска hda). Последняя команда создаёт приемлемый и рабочий файл /boot/grub/menu.lst.

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

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

В зависимости от выбранного вами системного загрузчика, теперь вы можете сделать некоторые дополнительные изменения в файле /etc/kernel-img.conf.

Для системного загрузчика grub, установите параметр do_bootloader в no. Для автоматического обновления /boot/grub/menu.lst при установке или удалении ядер Debian, добавьте следующие строки:

postinst_hook = update-grub postrm_hook = update-grub

Для загрузчика lilo значение do_bootloader нужно оставить равным yes.

D.3.7. Заключительные шаги

Как упоминалось ранее, установленная система мало что умеет. Если вы хотите сделать систему более пригодной для работы, можно установить все пакеты с приоритетом стандарт:

# tasksel install standard

Конечно, также вы можете использовать aptitude для установки отдельных пакетов.

После установки все скаченные пакеты будут сохранены в каталог /var/cache/apt/archives/. Вы можете освободить немного места запустив:

# aptitude clean



[24] Сюда входят базовые утилиты GNU и команды типа sed, grep, tar и gzip.