У цьому розділі описано, як встановити Debian GNU/Linux з наявної системи Unix або Linux, не використовуючи програму встановлення за допомогою меню, як описано у решті частини посібника. Це «посібник з перехресного встановлення» було запитано користувачами, які переходять на Debian GNU/Linux з Red Hat, Mandriva та SUSE. У цьому розділі передбачається, що ви маєте певні навички введення команд *nix та навігації по файловій системі. У цьому розділі, $
символізує команду, яку потрібно ввести у поточній системі користувача, а #
- команду, яку потрібно ввести у Debian chroot.
Після того, як ви налаштували нову систему відповідно до ваших уподобань, ви можете перенести до неї наявні дані користувачів (якщо такі є) і продовжити роботу. Отже, це «нульовий час простою» Debian GNU/Linux встановлення. Це також розумний спосіб роботи з обладнанням, яке інакше не дружить з різними завантажувальними або інсталяційними носіями.
Примітка | |
---|---|
Оскільки це переважно ручна процедура, вам слід пам'ятати, що вам доведеться самостійно виконати багато базових налаштувань системи, що також вимагатиме більше знань про Debian і про Linux загалом, ніж при виконанні звичайного встановлення. Не варто очікувати, що в результаті цієї процедури ви отримаєте систему, яка буде ідентичною системі, встановленій за допомогою звичайної інсталяції. Ви також повинні пам'ятати, що ця процедура описує лише основні кроки з налаштування системи. Можуть знадобитися додаткові кроки з інсталяції та/або налаштування. |
За допомогою ваших поточних інструментів для роботи з розділами *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) на окремих розділах, вам потрібно буде створити і змонтувати ці каталоги вручну, перш ніж переходити до наступного етапу. |
Утиліта, яка використовується програмою встановлення 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 може завантажувати потрібні файли безпосередньо з архіву під час його запуску. Ви можете замінити будь-яке дзеркало архіву 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
.
Тепер у вас на диску є справжня система 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
Наразі /dev/
містить лише найпростіші файли пристрою. Для наступних кроків інсталяції можуть знадобитися додаткові файли пристрою. Існує декілька способів зробити це, і те, який з них ви оберете, залежить від хост-системи, яку ви використовуєте для встановлення, від того, чи збираєтеся ви використовувати модульне ядро, і від того, чи збираєтеся ви використовувати динамічні (наприклад, за допомогою udev
) або статичні файли пристроїв у новій системі.
Ось кілька доступних варіантів:
встановіть пакунок makedev і створіть набір статичних файлів пристроїв за замовчуванням за допомогою (після chrooting)
# apt install makedev # mount none /proc -t proc # cd /dev # MAKEDEV generic
вручну створити лише певні файли пристрою за допомогою MAKEDEV
прив'язати монтування /dev з хост-системи до каталогу /dev у цільовій системі; зауважте, що скрипти постінсталяції деяких пакунків можуть спробувати створити файли пристроїв, тому цей параметр слід використовувати з обережністю
Вам потрібно створити /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
Встановлення у третьому рядку файлу /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 -- конфігураційний файл для 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 і т.д.), яке ви очікуєте.
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 для цього.
Перевірте 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, але вони виходять за рамки цього додатка.
Якщо ви можете увійти в систему через консоль, ви можете пропустити цей розділ. Якщо згодом система буде доступна через мережу, вам потрібно встановити 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
Як згадувалося раніше, встановлена система буде дуже простою. Якщо ви хочете зробити систему більш зрілою, існує простий спосіб встановити усі пакунки з пріоритетом «стандартний»:
# tasksel install standard
Звісно, ви також можете скористатися командою apt для встановлення пакунків окремо.
Після встановлення у папці /var/cache/apt/archives/
буде багато завантажених пакунків. Ви можете звільнити трохи місця на диску під час бігу:
# apt clean