В этом разделе объясняется, как установить Debian GNU/Linux из существующей системы Unix или Linux без использования управляемой из меню программы установки, основанной на библиотеке ncurses, как это описывается в остальном руководстве. Это «междистрибутивное» HOWTO попросили пользователи, переходящие на Debian GNU/Linux из Redhat, Mandriva и SUSE. В этом разделе подразумевается наличие некоторого опыта работы с командами *nix и навигации по файловой системе. Здесь символ $
означает команду, вводимую в текущей пользовательской системе, а #
относится к команде, вводимой в Debian chroot.
Как только вы получите новую систему Debian, настроенную по вашим предпочтениям, вы можете перенести свои данные (если они есть) в неё и продолжать работу. Поэтому такая установка Debian GNU/Linux считается «с нулевым временем простоя» (zero downtime). Также это мудрый способ работы с аппаратурой, которая не может нормально работать с разными загрузочными или установочными носителями.
Примечание | |
---|---|
Так как это, по большей части, ручная процедура, вы должны помнить, что вам придётся сделать множество начальных настроек системы самостоятельно, которые также требуют больше знаний о Debian и Linux в общем, чем при выполнение обычной установки. Вы не должны ожидать, что эта процедура настроит вам систему так, как это делается при обычной установке. Также вы должны помнить,что эта процедура выполняет только основные этапы настройки системы. Может потребоваться дополнительная установка и/или настройка. |
С помощью имеющихся утилит *nix для работы с разделами диска, переразметьте диск как нужно, создав не менее одной файловой системы и раздел подкачки (swap). Вам потребуется около 1012 МБ для консольной версии установки или около 2539 МБ, если вы планируете установить X (или ещё больше, если вы будете устанавливать окружение рабочего стола типа GNOME или KDE Plasma).
Затем создайте файловые системы на разделах. Например, чтобы создать файловую систему ext3 на разделе /dev/sda6
(это корневой раздел в нашем примере):
# mke2fs -j /dev/sda6
Чтобы создать файловую систему ext2, не указывайте параметр -j
.
Проинициализируйте и активируйте раздел подкачки (замените номер раздела на свой):
# mkswap /dev/sda5
# sync # swapon /dev/sda5
Смонтируйте один раздел как /mnt/debinst
(точка установки, она будет корневой (/
) файловой системой в вашей новой системе). Имя точки монтирования абсолютно произвольное.
# mkdir /mnt/debinst
# mount /dev/sda6
/mnt/debinst
Примечание | |
---|---|
Если вы хотите монтировать некоторые файловые системы (например, /usr) с отдельных разделов, то нужно создать и смонтировать эти каталоги вручную, перед тем как перейти к следующему этапу. |
Утилита, которой пользуется программа установки Debian и которая признана официальным способом установки базовой системы Debian является debootstrap. Она использует wget и ar, но зависит только от /bin/sh
и часто используемых инструментов Unix/Linux[22]. Установите wget и ar, если их ещё нет в системе, а затем загрузите и установите debootstrap.
Или вы можете использовать следующую процедуру установки вручную. Создайте рабочий каталог для распаковки в него .deb:
# mkdir work # cd work
Двоичный файл debootstrap расположен в архиве Debian (убедитесь, что вы выбрали правильный файл, соответствующий вашей архитектуре). Скачайте debootstrap .deb из пула, скопируйте пакет в рабочий каталог и извлеките из него файлы. Для установки файлов вам потребуются привилегии суперпользователя (root).
# ar -x debootstrap_0.X.X_all.deb # cd / # zcat /full-path-to-work/work/data.tar.gz | tar xv
Команда debootstrap может скачивать необходимые файлы прямо из архива. В примере ниже вы можете заменить http.us.debian.org/debian
на любой сервер-зеркало архива Debian, лучше всего использовать из наиболее близкой к вам сети. Список серверов http://www.debian.org/mirror/list.
If you have a trixie Debian GNU/Linux installation image mounted at /cdrom
, you could substitute a file URL instead of the http URL: file:/cdrom/debian/
Замените ARCH
в команде debootstrap на один из следующих вариантов: amd64
,
arm64
,
armel
,
armhf
,
i386
,
mips64el
,
mipsel
,
ppc64el
,
s390x
.
# /usr/sbin/debootstrap --arch ARCH trixie \ /mnt/debinst http://ftp.us.debian.org/debian
Если целевая архитектура отличается от архитектуры узла, то добавьте параметр --foreign
.
Теперь у вас есть настоящая система Debian на диске, хотя и небогатая возможностями. Выполните chroot в неё:
# LANG=C.UTF-8 chroot /mnt/debinst /bin/bash
Если целевая архитектура отличается от архитектуры узла, то сначала вам нужно скопировать на узел qemu-user-static:
# cp /usr/bin/qemu-ARCH-static /mnt/debinst/usr/bin # LANG=C.UTF-8 chroot /mnt/debinst qemu-ARCH-static /bin/bash
После выполнения chroot, вам может потребоваться выполнить настройку терминала для совместимости с базовой системой Debian, например:
# export TERM=xterm-color
В зависимости от значения TERM, вам может потребоваться установить пакет ncurses-term
для поддержки терминала.
Если целевая архитектура отличается от архитектуры узла, вам нужно завершить многоступенчатую начальную загрузку:
/debootstrap/debootstrap --second-stage
В данный момент /dev/
содержит только основные файлы устройств. Для следующих этапов установки могут потребоваться дополнительные файлы устройств. Есть несколько способов их создания; выбор более подходящего зависит от: a) системы, с которой производится установка; б) будет ли использоваться модульность ядро; в) используются в новой системе динамические (например, посредством udev
) или статические файлы устройств.
Некоторые доступные способы:
установка пакета makedev и создание используемого по умолчанию набора статических файлов устройств (после выполнения chroot)
# apt install makedev # mount none /proc -t proc # cd /dev # MAKEDEV generic
создание вручную только выбранных файлов устройств с помощью MAKEDEV
привязка смонтированного /dev имеющейся системы поверх /dev в устанавливаемой системе; заметим, что сценарии postinst некоторых пакетов могут пытаться создавать файлы устройств, поэтому данный параметр нужно использовать осторожно
You need to create /etc/fstab
.
# editor /etc/fstab
Here is a sample you can modify to suit:
# /etc/fstab: static file system information. # # file system mount point type options dump pass /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/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
Use mount -a
to mount all the file systems you have specified in your /etc/fstab
, or, to mount file systems individually, use:
# mount /path # e.g.: mount /usr
Current Debian systems have mountpoints for removable media under /media
, but keep compatibility symlinks in /
. Create these as as needed, for example:
# cd /media # mkdir cdrom0 # ln -s cdrom0 cdrom # cd / # ln -s media/cdrom
You can mount the proc file system multiple times and to arbitrary locations, though /proc
is customary. If you didn't use mount -a
, be sure to mount proc before continuing:
# mount -t proc proc /proc
Команда ls /proc
теперь должна показывать, что каталог не пустой. Если это не так, можно смонтировать proc за пределами chroot:
# mount -t proc proc /mnt/debinst/proc
Настройка в третьей строке файла /etc/adjtime
имеет значение «UTC» или «LOCAL» и определяет как система должна интерпретировать аппаратные часы — установлены ли они по UTC или показывают местное время. Следующая команда позволяет указать это.
# editor /etc/adjtime
Пример:
0.0 0 0.0 0 UTC
Следующая команда позволяет указать часовой пояс.
# dpkg-reconfigure tzdata
Для настройки сети, отредактируйте /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. ###################################################################### # The loopback interface isn't really required any longer, but can be used # if needed. # # auto lo # iface lo inet loopback # To use dhcp: # # auto eth0 # iface eth0 inet dhcp # An example static IP setup: (network, 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
Укажите ваши серверы имён и директивы поиска в /etc/resolv.conf
:
# editor /etc/resolv.conf
Пример простого /etc/resolv.conf
:
search hqdom.local nameserver 10.1.1.36 nameserver 192.168.9.100
Укажите системное имя узла (от 2 до 63 символов):
# echo DebianHostName > /etc/hostname
И базовый /etc/hosts
с поддержкой IPv6:
127.0.0.1 localhost 127.0.1.1 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 и т.д.) как вы и ожидали.
Debootstrap создаст очень общий /etc/apt/sources.list
, который позволит установить дополнительные пакеты. Однако, вы можете захотеть добавить дополнительные источники, например для пакетов с исходным кодом и обновлений безопасности:
deb-src http://ftp.us.debian.org/debian trixie main deb http://security.debian.org/ trixie-security main deb-src http://security.debian.org/ trixie-security main
Обязательно запустите apt update
после изменения списка источников.
Чтобы использовать язык, отличный от английского, нужно настроить локаль. Для этого установите пакет поддержки locales
и настройте его. Рекомендуется использовать UTF-8 локали.
# apt install locales # dpkg-reconfigure locales
Для настройки раскладки клавиатуры (если нужно):
# apt install console-setup # dpkg-reconfigure keyboard-configuration
Заметим, что клавиатура не может быть настроена, пока работа производится в chroot, но настройка будет произведена после следующей перезагрузки.
Если вы намерены загружать эту систему, то вам скорее всего понадобится ядро Linux и системный загрузчик. Определите доступные пакеты с ядрами с помощью:
# apt search linux-image
Затем установите пакет с ядром, указав подходящий вам вариант.
# apt install linux-image-arch-etc
Чтобы сделать систему Debian GNU/Linux загружаемой, настройте системный загрузчик на загрузку установленного ядра с нового корневого раздела. Заметим, что debootstrap не устанавливает системный загрузчик, хотя вы можете использовать apt внутри вашего Debian chroot, чтобы сделать это.
Check info grub
for instructions on setting up the bootloader. If you are keeping the system you used to install Debian, just add an entry for the Debian install to your existing grub2 grub.cfg
.
Установить и настроить grub2
легко:
# apt install grub-pc
# grub-install /dev/sda
# update-grub
Вторая команда устанавливает grub2 (в данном случае в MBR диска sda
). Последняя команда создаёт приемлемый и рабочий файл /boot/grub/grub.cfg
.
Заметим, что это предполагает, что файловое устройство /dev/sda
было создано ранее. Есть другие методы установки grub2, но они здесь не описаны.
Если вы можете войти в систему через консоль, то можете пропустить этот раздел. Если система должна быть доступна через сеть, то вам нужно установить SSH и настроить доступ.
# apt install ssh
По умолчанию вход суперпользователем с паролем запрещён, поэтому для настройки доступа нужно задать пароль и включить вход для root с паролем:
# passwd # editor /etc/ssh/sshd_config
Параметр для включения:
PermitRootLogin yes
Также, для учётной записи root возможен вход по ключу ssh:
# mkdir /root/.ssh # cat << EOF > /root/.ssh/authorized_keys ssh-rsa .... EOF
И, наконец, настройка доступа для обычного пользователя с паролем:
# adduser joe # passwd joe
Как упоминалось ранее, установленная система мало что умеет. Если вы хотите сделать систему более пригодной для работы, можно установить все пакеты с приоритетом «стандарт»:
# tasksel install standard
Конечно, также вы можете использовать apt для установки отдельных пакетов.
После установки все скаченные пакеты будут сохранены в каталог /var/cache/apt/archives/
. Вы можете освободить немного места запустив:
# apt clean