diff options
Diffstat (limited to 'documentation/content/ru/articles/remote-install/_index.adoc')
-rw-r--r-- | documentation/content/ru/articles/remote-install/_index.adoc | 347 |
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. |