D.3. Встановлення Debian GNU/Linux із системи Unix/Linux

У цьому розділі описано, як встановити Debian GNU/Linux з наявної системи Unix або Linux, не використовуючи програму встановлення за допомогою меню, як описано у решті частини посібника. Це «посібник з перехресного встановлення» було запитано користувачами, які переходять на Debian GNU/Linux з Red Hat, Mandriva та SUSE. У цьому розділі передбачається, що ви маєте певні навички введення команд *nix та навігації по файловій системі. У цьому розділі, $ символізує команду, яку потрібно ввести у поточній системі користувача, а # - команду, яку потрібно ввести у Debian chroot.

Після того, як ви налаштували нову систему відповідно до ваших уподобань, ви можете перенести до неї наявні дані користувачів (якщо такі є) і продовжити роботу. Отже, це «нульовий час простою» Debian GNU/Linux встановлення. Це також розумний спосіб роботи з обладнанням, яке інакше не дружить з різними завантажувальними або інсталяційними носіями.

[Примітка] Примітка

Оскільки це переважно ручна процедура, вам слід пам'ятати, що вам доведеться самостійно виконати багато базових налаштувань системи, що також вимагатиме більше знань про Debian і про Linux загалом, ніж при виконанні звичайного встановлення. Не варто очікувати, що в результаті цієї процедури ви отримаєте систему, яка буде ідентичною системі, встановленій за допомогою звичайної інсталяції. Ви також повинні пам'ятати, що ця процедура описує лише основні кроки з налаштування системи. Можуть знадобитися додаткові кроки з інсталяції та/або налаштування.

D.3.1. Початок роботи

За допомогою ваших поточних інструментів для роботи з розділами *nix, перерозподіліть жорсткий диск за потреби, створивши принаймні одну файлову систему плюс область підкачки. Вам потрібно близько 1012МБ вільного місця для встановлення лише консолі, або близько 2539МБ, якщо ви плануєте встановити X (більше, якщо ви маєте намір встановити середовища робочого столу, такі як GNOME або KDE Plasma).

Далі створіть файлові системи на розділах. Наприклад, створити файлову систему ext3 на розділі /dev/sda6 (це наш приклад кореневого розділу):

# mke2fs -j /dev/sda6

Щоб створити файлову систему ext2, пропустіть -j.

Ініціалізуйте та активуйте підкачку (підставте номер розділу для передбачуваного розділу Debian підкачки):

# mkswap /dev/sda5
# sync
# swapon /dev/sda5

Змонтуйте один розділ як /mnt/debinst (точка встановлення, яка буде кореневою (/) файловою системою у вашій новій системі). Ім'я точки монтування суто довільне, посилання на нього буде вказано нижче.

# mkdir /mnt/debinst
# mount /dev/sda6 /mnt/debinst

[Примітка] Примітка

Якщо ви хочете змонтувати частину файлової системи (наприклад, /usr) на окремих розділах, вам потрібно буде створити і змонтувати ці каталоги вручну, перш ніж переходити до наступного етапу.

D.3.2. Встановити debootstrap

Утиліта, яка використовується програмою встановлення 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

D.3.3. Запуск debootstrap

debootstrap може завантажувати потрібні файли безпосередньо з архіву під час його запуску. Ви можете замінити будь-яке дзеркало архіву Debian на http.us.debian.org/debian у наведеному нижче прикладі команди, бажано, щоб воно було близьким до вас у мережі. Дзеркала перераховані за посиланням http://www.debian.org/mirror/list.

Якщо у вас є інсталяційний образ trixie Debian GNU/Linux, змонтований за адресою /cdrom, ви можете підставити URL-адресу файлу замість 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.

D.3.4. Конфігурація базової системи

Тепер у вас на диску є справжня система 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

Після вкорінення вам може знадобитися встановити визначення терміналу, наприклад, щоб воно було сумісним з базовою системою Debian, наприклад:

# export TERM=xterm-color

Залежно від значення TERM, можливо, вам доведеться встановити пакунок ncurses-term, щоб отримати його підтримку.

Якщо цільова архітектура відрізняється від хоста, вам потрібно завершити багатоетапне завантаження:

/debootstrap/debootstrap --second-stage

D.3.4.1. Створити файли пристрою

Наразі /dev/ містить лише найпростіші файли пристрою. Для наступних кроків інсталяції можуть знадобитися додаткові файли пристрою. Існує декілька способів зробити це, і те, який з них ви оберете, залежить від хост-системи, яку ви використовуєте для встановлення, від того, чи збираєтеся ви використовувати модульне ядро, і від того, чи збираєтеся ви використовувати динамічні (наприклад, за допомогою udev) або статичні файли пристроїв у новій системі.

Ось кілька доступних варіантів:

  • встановіть пакунок makedev і створіть набір статичних файлів пристроїв за замовчуванням за допомогою (після chrooting)

    # apt install makedev
    # mount none /proc -t proc
    # cd /dev
    # MAKEDEV generic
    

  • вручну створити лише певні файли пристрою за допомогою MAKEDEV

  • прив'язати монтування /dev з хост-системи до каталогу /dev у цільовій системі; зауважте, що скрипти постінсталяції деяких пакунків можуть спробувати створити файли пристроїв, тому цей параметр слід використовувати з обережністю

D.3.4.2. Монтувати розділи

Вам потрібно створити /etc/fstab.

# editor /etc/fstab

Ось зразок, який ви можете модифікувати під себе:

# /etc/fstab: статична інформація про файлову систему.
#
# 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

Використовуйте mount -a для монтування усіх файлових систем, які ви вказали у /etc/fstab, або, щоб змонтувати кожну файлову систему окремо, використовуйте

# mount /path   # e.g.: 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 ззовні кореня:

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

D.3.4.3. Налаштування часового поясу

Встановлення у третьому рядку файлу /etc/adjtime значення «UTC» або «LOCAL» визначає, чи буде система інтерпретувати апаратний годинник як такий, що встановлений у відповідному місцевому часі UTC. Наступна команда дозволяє вам це налаштувати.

# editor /etc/adjtime

Ось зразок:

0.0 0 0.0
0
UTC

Наступна команда дозволяє вибрати часовий пояс.

# dpkg-reconfigure tzdata

D.3.4.4. Налаштування мережевих підключень

Щоб налаштувати мережу, відредагуйте /etc/network/interfaces, /etc/resolv.conf, /etc/hostname та /etc/hosts.

# editor /etc/network/interfaces

Ось кілька простих прикладів з /usr/share/doc/ifupdown/examples:

######################################################################
# /etc/network/interfaces -- конфігураційний файл для ifup(8), ifdown(8)
# Дивіться сторінку інтерфейсів(5) для отримання інформації про те, які опції
# доступні.
######################################################################

# Інтерфейс зворотного зв'язку більше не потрібен, але його можна використати,
# якщо потрібно.
#
# auto lo
# iface lo inet loopback

# Для використання dhcp:
#
# auto eth0
# iface eth0 inet dhcp

# Приклад статичного налаштування IP-адреси: (мережа, трансляція та шлюз необов'язкові)
#
# auto eth0
# iface eth0 inet static
#     адреса 192.168.0.42
#     мережа 192.168.0.0
#     мережева маска 255.255.255.0
#     трансляція 192.168.0.255
#     шлюз 192.168.0.1

Введіть ваш(і) сервер(и) імен та директиви пошуку в /etc/resolv.conf:

# editor /etc/resolv.conf

Простий приклад /etc/resolv.conf:

search example.com
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

# Для хостів з підтримкою IPv6 бажано вказати наступні рядки
::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.5. Конфігурація Apt

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 після внесення змін до списку джерел.

D.3.4.6. Налаштування локалей і клавіатури

Щоб налаштувати параметри локалі для використання мови, відмінної від англійської, встановіть пакет підтримки locales і налаштуйте його. Наразі рекомендується використовувати локалі UTF-8.

# apt install locales
# dpkg-reconfigure locales

Налаштувати клавіатуру (якщо потрібно):

# apt install console-setup
# dpkg-reconfigure keyboard-configuration 

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

D.3.5. Встановлення ядра

Якщо ви маєте намір завантажувати цю систему, вам, ймовірно, знадобиться ядро Linux та завантажувач. Визначте доступні попередньо запаковані ядра за допомогою:

# apt search linux-image

Потім встановіть обраний вами пакунок ядра, скориставшись назвою пакунка.

# apt install linux-image-arch-etc

D.3.6. Налаштування завантажувача

Щоб зробити вашу Debian GNU/Linux систему завантажуваною, налаштуйте ваш завантажувач так, щоб він завантажував встановлене ядро з вашого нового кореневого розділу. Зауважте, що debootstrap не встановлює завантажувач, але ви можете використати apt у вашому Debian chroot для цього.

Перевірте info grub для отримання інструкцій щодо налаштування завантажувача. Якщо ви зберігаєте систему, яку використовували для встановлення Debian, просто додайте запис для встановлення Debian до існуючого grub2 grub.cfg.

Встановлення та налаштування grub2 дуже просте:

# apt install grub-pc
# grub-install /dev/sda
# update-grub

Друга команда встановить grub2 (у цьому випадку у MBR диска sda). Остання команда створить нормальний і робочий /boot/grub/grub.cfg.

Зауважте, що це передбачає, що файл пристрою /dev/sda було створено. Існують альтернативні методи встановлення grub2, але вони виходять за рамки цього додатка.

D.3.7. Віддалений доступ: Встановлення SSH та налаштування доступу

Якщо ви можете увійти в систему через консоль, ви можете пропустити цей розділ. Якщо згодом система буде доступна через мережу, вам потрібно встановити SSH і налаштувати доступ.

# apt install ssh

За замовчуванням root-логін з паролем вимкнено, тому налаштувати доступ можна, встановивши пароль і повторно увімкнувши root-логін з паролем:

# passwd
# editor /etc/ssh/sshd_config

Цю опцію слід увімкнути:

PermitRootLogin yes

Доступ також можна налаштувати, додавши ключ ssh до облікового запису root:

# mkdir /root/.ssh
# cat << EOF > /root/.ssh/authorized_keys
ssh-rsa ....
EOF

Нарешті, доступ можна налаштувати, додавши не root-користувача і встановивши пароль:

# adduser joe
# passwd joe

D.3.8. Останні штрихи

Як згадувалося раніше, встановлена система буде дуже простою. Якщо ви хочете зробити систему більш зрілою, існує простий спосіб встановити усі пакунки з пріоритетом «стандартний»:

# tasksel install standard

Звісно, ви також можете скористатися командою apt для встановлення пакунків окремо.

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

# apt clean



[22] До них належать основні утиліти GNU і такі команди як sed, grep, tar та gzip.