aboutsummaryrefslogtreecommitdiff
path: root/documentation/content/ru/articles/remote-install/_index.adoc
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/content/ru/articles/remote-install/_index.adoc')
-rw-r--r--documentation/content/ru/articles/remote-install/_index.adoc347
1 files changed, 347 insertions, 0 deletions
diff --git a/documentation/content/ru/articles/remote-install/_index.adoc b/documentation/content/ru/articles/remote-install/_index.adoc
new file mode 100644
index 0000000000..729e2e3057
--- /dev/null
+++ b/documentation/content/ru/articles/remote-install/_index.adoc
@@ -0,0 +1,347 @@
+---
+authors:
+ -
+ author: 'Daniel Gerzo'
+ email: danger@FreeBSD.org
+copyright: '2008-2021 The FreeBSD Documentation Project'
+description: 'Описывает удалённую установку операционной системы FreeBSD, когда консоль удалённой системы недоступна'
+tags: ["Remote", "Installation", "FreeBSD"]
+title: 'Удалённая установка операционной системы FreeBSD без удалённой консоли'
+trademarks: ["freebsd", "general"]
+---
+
+= Удалённая установка операционной системы FreeBSD без удалённой консоли
+:doctype: article
+:toc: macro
+:toclevels: 1
+:icons: font
+:sectnums:
+:sectnumlevels: 6
+:source-highlighter: rouge
+:experimental:
+:images-path: articles/remote-install/
+
+ifdef::env-beastie[]
+ifdef::backend-html5[]
+include::shared/authors.adoc[]
+include::shared/mirrors.adoc[]
+include::shared/releases.adoc[]
+include::shared/attributes/attributes-{{% lang %}}.adoc[]
+include::shared/{{% lang %}}/teams.adoc[]
+include::shared/{{% lang %}}/mailing-lists.adoc[]
+include::shared/{{% lang %}}/urls.adoc[]
+:imagesdir: ../../../images/{images-path}
+endif::[]
+ifdef::backend-pdf,backend-epub3[]
+include::../../../../shared/asciidoctor.adoc[]
+endif::[]
+endif::[]
+
+ifndef::env-beastie[]
+include::../../../../../shared/asciidoctor.adoc[]
+endif::[]
+
+[.abstract-title]
+Аннотация
+
+В этой статье описывается удалённая установка операционной системы FreeBSD, когда консоль удалённой системы недоступна. Основная идея этой статьи является результатом сотрудничества с `{mm}` при ценных вкладах от `{pjd}`.
+
+'''
+
+toc::[]
+
+[[background]]
+== Пояснения
+
+В мире существует множество хостинг-провайдеров, но лишь немногие из них официально поддерживают FreeBSD. Обычно они предоставляют поддержку для дистрибутивов Linux(R), которые можно установить на предлагаемые серверы.
+
+В некоторых случаях эти компании могут установить предпочитаемый вами дистрибутив Linux(R) по вашему запросу. Используя эту опцию, мы попытаемся установить FreeBSD. В других случаях они могут предложить систему восстановления, которая используется в чрезвычайных ситуациях. Её также можно использовать для наших целей.
+
+В этой статье описаны основные шаги установки и настройки, необходимые для удалённой установки FreeBSD с поддержкой RAID-1 и ZFS.
+
+[[intro]]
+== Введение
+
+В этом разделе будет коротко расскажем о цели данной статьи и будет дано более подробное объяснение того, что в ней рассматривается. Инструкции, приведённые в статье, будут полезны тем, кто использует услуги колокационных центров, не поддерживающих FreeBSD.
+
+[.procedure]
+====
+. Как мы упоминали в разделе crossref:remote-install[background, Предыстория], многие авторитетные компании, предоставляющие хостинг серверов, предлагают своего рода систему восстановления, которая загружается из их локальной сети и доступна через SSH. Обычно они предоставляют эту возможность, чтобы помочь клиентам восстановить повреждённые операционные системы. Как будет объяснено в этой статье, с помощью таких систем восстановления можно установить FreeBSD.
++
+. Следующий раздел этой статьи описывает, как настроить и собрать минималистичную FreeBSD на локальной машине. Эта версия в конечном итоге будет запущена на удаленной машине с ramdisk, что позволит нам установить полную операционную систему FreeBSD с FTP-зеркала с помощью утилиты sysinstall.
+. Оставшаяся часть статьи описывает процедуру установки, а также настройку файловой системы ZFS.
+====
+
+[[requirements]]
+=== Требования
+
+Для успешного продолжения необходимо:
+
+* Иметь операционную систему с доступом по сети и доступом по SSH
+* Понимать процесса установки FreeBSD
+* Быть знакомым с утилитой man:sysinstall[8]
+* Иметь под рукой установочный образ SO или CD с FreeBSD
+
+[[preparation]]
+== Подготовка - mfsBSD
+
+Прежде чем FreeBSD может быть установлена на целевую систему, необходимо собрать минимальный образ операционной системы FreeBSD, который будет загружаться с жёсткого диска. Таким образом, новая система будет доступна из сети, а остальная часть установки может быть выполнена без удалённого доступа к консоли системы.
+
+Набор инструментов mfsBSD можно использовать для создания компактного образа FreeBSD. Как следует из названия mfsBSD («mfs» означает «файловая система в памяти»), итоговый образ полностью запускается с RAM-диска. Благодаря этой особенности не будет ограничений на работу с жёсткими дисками, что позволит установить полноценную операционную систему FreeBSD. На http://mfsbsd.vx.sk/[домашней странице] mfsBSD есть ссылки на последнюю версию набора инструментов.
+
+Обратите внимание, что внутреннее устройство mfsBSD и принципы его работы выходят за рамки данной статьи. Заинтересованным читателям следует обратиться к оригинальной документации mfsBSD для получения более подробной информации.
+
+Скачайте и распакуйте последний выпуск mfsBSD и перейдите в рабочий каталог, где будут находиться скрипты mfsBSD:
+
+[source, shell]
+....
+# fetch http://mfsbsd.vx.sk/release/mfsbsd-2.1.tar.gz
+# tar xvzf mfsbsd-2.1.tar.gz
+# cd mfsbsd-2.1/
+....
+
+[[mfsbsd-config]]
+=== Конфигурация mfsBSD
+
+Прежде чем загрузить mfsBSD, необходимо установить несколько важных параметров конфигурации. Самое важное, что нужно правильно настроить, — это, естественно, сеть. Наиболее подходящий метод настройки параметров сети зависит от того, знаем ли мы заранее тип используемого сетевого интерфейса и драйвер сетевого интерфейса, который нужно загрузить для нашего оборудования. Мы рассмотрим, как можно настроить mfsBSD в обоих случаях.
+
+Еще одна важная настройка — установка пароля `root`. Это можно сделать, отредактировав файл [.filename]#conf/loader.conf#. Пожалуйста, ознакомьтесь с приложенными комментариями.
+
+==== Метод [.filename]#conf/interfaces.conf#
+
+Если установленная сетевая карта неизвестна, можно использовать функцию автоматического определения в mfsBSD. Скрипты запуска mfsBSD могут определить правильный драйвер для использования на основе MAC-адреса интерфейса, если установить следующие параметры в [.filename]#conf/interfaces.conf#:
+
+[.programlisting]
+....
+mac_interfaces="ext1"
+ifconfig_ext1_mac="00:00:00:00:00:00"
+ifconfig_ext1="inet 192.168.0.2/24"
+....
+
+Не забудьте добавить информацию о `defaultrouter` в [.filename]#conf/rc.conf#:
+
+[.programlisting]
+....
+defaultrouter="192.168.0.1"
+....
+
+==== Метод [.filename]#conf/rc.conf#
+
+Когда драйвер сетевого интерфейса известен, удобнее использовать [.filename]#conf/rc.conf# для настройки сети. Синтаксис этого файла такой же, как в стандартном файле man:rc.conf[5] FreeBSD.
+
+Например, если известно, что сетевой интерфейс man:re[4] будет доступен, можно задать следующие параметры в [.filename]#conf/rc.conf#:
+
+[.programlisting]
+....
+defaultrouter="192.168.0.1"
+ifconfig_re0="inet 192.168.0.2/24"
+....
+
+[[mfsbsd-build]]
+=== Создание образа mfsBSD
+
+Процесс создания образа mfsBSD довольно прост.
+
+Первым шагом необходимо подключить установочный CD FreeBSD или образ ISO установки к [.filename]#/cdrom#. В качестве примера в этой статье мы будем предполагать, что вы загрузили образ ISO FreeBSD 10.1-RELEASE. Подключение этого образа ISO к директории [.filename]#/cdrom# легко выполняется с помощью утилиты man:mdconfig[8]:
+
+[source, shell]
+....
+# mdconfig -a -t vnode -u 10 -f FreeBSD-10.1-RELEASE-amd64-disc1.iso
+# mount_cd9660 /dev/md10 /cdrom
+....
+
+Поскольку последние выпуски FreeBSD не содержат обычных наборов дистрибутивов, необходимо извлечь файлы дистрибутива FreeBSD из архивов дистрибутива, расположенных на образе ISO:
+
+[source, shell]
+....
+# mkdir DIST
+# tar -xvf /cdrom/usr/freebsd-dist/base.txz -C DIST
+# tar -xvf /cdrom/usr/freebsd-dist/kernel.txz -C DIST
+....
+
+Далее соберите загружаемый образ mfsBSD:
+
+[source, shell]
+....
+# make BASE=DIST
+....
+
+[NOTE]
+====
+Указанную команду `make` необходимо выполнять из корневой директории дерева каталогов mfsBSD, например, [.filename]#~/mfsbsd-2.1/#.
+====
+
+=== Загрузка mfsBSD
+
+Теперь, когда образ mfsBSD готов, его необходимо загрузить на удалённую систему, работающую под управлением live-системы восстановления или предустановленного дистрибутива Linux(R). Наиболее подходящий инструмент для этой задачи — scp:
+
+[source, shell]
+....
+# scp disk.img root@192.168.0.2:.
+....
+
+Для правильной загрузки образа mfsBSD он должен быть размещен на первом (загрузочном) устройстве данной машины. Это может быть выполнено с помощью следующего примера, при условии что [.filename]#sda# является первым загрузочным дисковым устройством:
+
+[source, shell]
+....
+# dd if=/root/disk.img of=/dev/sda bs=1m
+....
+
+Если всё прошло успешно, образ теперь должен находиться в MBR первого устройства, и машину можно перезагрузить. Следите за корректной загрузкой системы с помощью инструмента man:ping[8]. Как только машина снова окажется в сети, к ней можно будет подключиться через man:ssh[1] под пользователем `root` с настроенным паролем.
+
+[[installation]]
+== Установка операционной системы FreeBSD
+
+Система mfsBSD успешно загружена, и теперь можно войти через man:ssh[1]. В этом разделе будет описано, как создавать и размечать разделы, настраивать `gmirror` для RAID-1, а также как использовать `sysinstall` для установки минимальной дистрибуции операционной системы FreeBSD.
+
+=== Подготовка жестких дисков
+
+Первая задача — выделить дисковое пространство для FreeBSD, т.е.: создать слайсы и разделы. Очевидно, что текущая работающая система полностью загружена в оперативную память, поэтому не будет проблем с манипуляциями жёсткими дисками. Для выполнения этой задачи можно использовать либо `sysinstall`, либо man:fdisk[8] в сочетании с man:bsdlabel[8].
+
+В начале пометьте все системные диски как пустые. Повторите следующую команду для каждого жёсткого диска:
+
+[source, shell]
+....
+# dd if=/dev/zero of=/dev/ad0 count=2
+....
+
+Далее создайте разделы и пометьте их с помощью предпочитаемого инструмента. Хотя использование `sysinstall` считается более простым, но мощным и, вероятно, менее подверженным ошибкам методом будет использование стандартных текстовых инструментов UNIX(R), таких как man:fdisk[8] и man:bsdlabel[8], которые также будут рассмотрены в этом разделе. Первый вариант хорошо документирован в главе extref:{handbook}[Установка FreeBSD, install-steps] Руководства FreeBSD. Как упоминалось во введении, в этой статье будет показано, как настроить систему с возможностями RAID-1 и ZFS. Наша конфигурация будет состоять из небольшого зеркального раздела man:gmirror[8] для [.filename]#/# (корневого), [.filename]#/usr# и [.filename]#/var#, а остальное место на диске будет выделено для зеркальной файловой системы ZFS man:zpool[8]. Обратите внимание, что файловая система ZFS будет настроена после успешной установки и загрузки операционной системы FreeBSD.
+
+Следующий пример описывает, как создать слайсы и метки, инициализировать man:gmirror[8] на каждом разделе и как создать файловую систему UFS2 в каждом зеркальном разделе:
+
+[source, shell]
+....
+# fdisk -BI /dev/ad0 <.>
+# fdisk -BI /dev/ad1
+# bsdlabel -wB /dev/ad0s1 <.>
+# bsdlabel -wB /dev/ad1s1
+# bsdlabel -e /dev/ad0s1 <.>
+# bsdlabel /dev/ad0s1 > /tmp/bsdlabel.txt && bsdlabel -R /dev/ad1s1 /tmp/bsdlabel.txt <.>
+# gmirror label root /dev/ad[01]s1a <.>
+# gmirror label var /dev/ad[01]s1d
+# gmirror label usr /dev/ad[01]s1e
+# gmirror label -F swap /dev/ad[01]s1b <.>
+# newfs /dev/mirror/root <.>
+# newfs /dev/mirror/var
+# newfs /dev/mirror/usr
+....
+
+<.> Создайте раздел, охватывающий весь диск, и инициализируйте загрузочный код, содержащийся в секторе 0 данного диска. Повторите эту команду для всех жестких дисков в системе.
+
+<.> Запишите стандартную метку для каждого диска, включая загрузочный код.
+
+<.> Теперь вручную отредактируйте метку указанного диска. Обратитесь к странице руководства man:bsdlabel[8], чтобы узнать, как создавать разделы. Создайте раздел `a` для [.filename]#/# — корневой файловой системы, `b` для раздела подкачки, `d` для [.filename]#/var#, `e` для [.filename]#/usr# и, наконец, `f`, который позже будет использоваться для ZFS.
+
+<.> Импортируйте только что созданную метку для второго жесткого диска, чтобы оба жестких диска были размечены одинаковым образом.
+
+<.> Инициализируйте man:gmirror[8] на каждом разделе.
+
+<.> Обратите внимание, что `-F` используется для раздела подкачки. Это указывает man:gmirror[8] предполагать, что устройство находится в согласованном состоянии после сбоя питания/системы.
+
+<.> Создайте файловую систему UFS2 на каждом зеркальном разделе.
+
+=== Установка системы
+
+Это самая важная часть. В этом разделе будет описано, как фактически установить минимальный дистрибутив FreeBSD на жёсткие диски, которые мы подготовили в предыдущем разделе. Для достижения этой цели необходимо смонтировать все файловые системы, чтобы `sysinstall` мог записать содержимое FreeBSD на жёсткие диски:
+
+[source, shell]
+....
+# mount /dev/mirror/root /mnt
+# mkdir /mnt/var /mnt/usr
+# mount /dev/mirror/var /mnt/var
+# mount /dev/mirror/usr /mnt/usr
+....
+
+Когда вы закончите, запустите man:sysinstall[8]. Выберите установку [.guimenuitem]#Custom# в главном меню. Выберите [.guimenuitem]#Options# и нажмите kbd:[Enter]. С помощью клавиш со стрелками переместите курсор на пункт `Install Root`, нажмите kbd:[Space] и измените его на [.filename]#/mnt#. Нажмите kbd:[Enter], чтобы подтвердить изменения, и выйдите из меню [.guimenuitem]#Options#, нажав kbd:[q].
+
+[WARNING]
+====
+Обратите внимание, что этот шаг очень важен, и если его пропустить, `sysinstall` не сможет установить FreeBSD.
+====
+
+Перейдите в меню [.guimenuitem]#Distributions#, с помощью клавиш со стрелками переместите курсор к пункту `Minimal` и отметьте его, нажав kbd:[Space]. В этой статье используется дистрибутив Minimal для экономии сетевого трафика, так как сама система будет устанавливаться через ftp. Выйдите из этого меню, выбрав `Exit`.
+
+[NOTE]
+====
+[.guimenuitem]#Partition# и [.guimenuitem]#Label# будут пропущены, так как сейчас они бесполезны.
+====
+
+В меню [.guimenuitem]#Media# выберите `FTP`. Выберите ближайший зеркальный сервер и позвольте `sysinstall` предположить, что сеть уже настроена. Вы вернётесь обратно в меню [.guimenuitem]#Custom#.
+
+Наконец, выполните установку системы, выбрав последний пункт [.guimenuitem]#Commit#. Выйдите из `sysinstall` после завершения установки.
+
+=== Шаги после установки
+
+Операционная система FreeBSD теперь должна быть установлена; однако процесс еще не завершен. Необходимо выполнить несколько шагов после установки, чтобы FreeBSD могла загружаться в будущем и чтобы можно было войти в систему.
+
+Вы должны теперь выполнить man:chroot[8] в только что установленную систему, чтобы завершить установку. Используйте следующую команду:
+
+[source, shell]
+....
+# chroot /mnt
+....
+
+Для достижения нашей цели выполните следующие шаги:
+
+* Скопируйте ядро `GENERIC` в директорию [.filename]#/boot/kernel#:
++
+[source, shell]
+....
+# cp -Rp /boot/GENERIC/* /boot/kernel
+....
+
+* Создайте файлы [.filename]#/etc/rc.conf#, [.filename]#/etc/resolv.conf# и [.filename]#/etc/fstab#. Не забудьте правильно настроить сетевые параметры и включить sshd в [.filename]#/etc/rc.conf#. Содержимое [.filename]#/etc/fstab# будет выглядеть примерно следующим образом:
++
+[.programlisting]
+....
+# Device Mountpoint FStype Options Dump Pass#
+/dev/mirror/swap none swap sw 0 0
+/dev/mirror/root / ufs rw 1 1
+/dev/mirror/usr /usr ufs rw 2 2
+/dev/mirror/var /var ufs rw 2 2
+/dev/cd0 /cdrom cd9660 ro,noauto 0 0
+....
+* Создайте файл [.filename]#/boot/loader.conf# со следующим содержимым:
++
+[.programlisting]
+....
+geom_mirror_load="YES"
+zfs_load="YES"
+....
+* Выполните следующую команду, чтобы сделать ZFS доступным при следующей загрузке:
++
+[source, shell]
+....
+# sysrc zfs_enable="YES"
+....
+
+* Добавьте дополнительных пользователей в систему с помощью инструмента man:adduser[8]. Не забудьте добавить пользователя в группу `wheel`, чтобы получить доступ к root после перезагрузки.
+* Перепроверьте все ваши настройки.
+
+Система теперь должна быть готова к следующей загрузке. Используйте команду man:reboot[8] для перезагрузки системы.
+
+[[zfs]]
+== ZFS
+
+Если ваша система пережила перезагрузку, теперь должно быть возможно войти в систему. Добро пожаловать в новую установку FreeBSD, выполненную удалённо без использования удалённой консоли!
+
+Остался только последний шаг — настроить man:zpool[8] и создать несколько файловых систем man:zfs[8]. Создание и администрирование ZFS очень просто. Сначала создайте зеркальный пул:
+
+[source, shell]
+....
+# zpool create tank mirror /dev/ad[01]s1f
+....
+
+Далее создайте несколько файловых систем:
+
+[source, shell]
+....
+# zfs create tank/ports
+# zfs create tank/src
+# zfs set compression=gzip tank/ports
+# zfs set compression=on tank/src
+# zfs set mountpoint=/usr/ports tank/ports
+# zfs set mountpoint=/usr/src tank/src
+....
+
+Вот и все. Если вас интересуют более подробные сведения о ZFS в FreeBSD, обратитесь к разделу https://wiki.freebsd.org/ZFS[ZFS] на вики FreeBSD.