Удалённая установка операционной системы FreeBSD без удалённой консоли | FreeBSD Documentation Portal
Description: Описывает удалённую установку операционной системы FreeBSD, когда консоль удалённой системы недоступна
Keywords: Remote,Installation,FreeBSD

# Удалённая установка операционной системы FreeBSD без удалённой консоли

Этот перевод может быть устаревшим. Для того, чтобы помочь с переводом, пожалуйста, обратитесь к Сервер переводов FreeBSD.

Copyright © 2008-2021 The FreeBSD Documentation Project
товарные знаки

FreeBSD является зарегистрированным товарным знаком Фонда FreeBSD.

Многие из обозначений, используемые производителями и продавцами для обозначения своих продуктов, заявляются в качестве товарных знаков. Когда такие обозначения появляются в этом документе, и Проекту FreeBSD известно о товарном знаке, к обозначению добавляется знак “™” или “®”.

Аннотация

В этой статье описывается удалённая установка операционной системы FreeBSD, когда консоль удалённой системы недоступна. Основная идея этой статьи является результатом сотрудничества с `Martin Matuska <mm@FreeBSD.org>` при ценных вкладах от `Paweł Jakub Dawidek <pjd@FreeBSD.org>`.

## 1. Пояснения

В мире существует множество хостинг-провайдеров, но лишь немногие из них официально поддерживают FreeBSD. Обычно они предоставляют поддержку для дистрибутивов Linux®, которые можно установить на предлагаемые серверы.

В некоторых случаях эти компании могут установить предпочитаемый вами дистрибутив Linux® по вашему запросу. Используя эту опцию, мы попытаемся установить FreeBSD. В других случаях они могут предложить систему восстановления, которая используется в чрезвычайных ситуациях. Её также можно использовать для наших целей.

В этой статье описаны основные шаги установки и настройки, необходимые для удалённой установки FreeBSD с поддержкой RAID-1 и ZFS.

## 2. Введение

В этом разделе будет коротко расскажем о цели данной статьи и будет дано более подробное объяснение того, что в ней рассматривается. Инструкции, приведённые в статье, будут полезны тем, кто использует услуги колокационных центров, не поддерживающих FreeBSD.

1. Как мы упоминали в разделе Предыстория, многие авторитетные компании, предоставляющие хостинг серверов, предлагают своего рода систему восстановления, которая загружается из их локальной сети и доступна через SSH. Обычно они предоставляют эту возможность, чтобы помочь клиентам восстановить повреждённые операционные системы. Как будет объяснено в этой статье, с помощью таких систем восстановления можно установить FreeBSD.

2. Следующий раздел этой статьи описывает, как настроить и собрать минималистичную FreeBSD на локальной машине. Эта версия в конечном итоге будет запущена на удаленной машине с ramdisk, что позволит нам установить полную операционную систему FreeBSD с FTP-зеркала с помощью утилиты sysinstall.

3. Оставшаяся часть статьи описывает процедуру установки, а также настройку файловой системы ZFS.

### 2.1. Требования

Для успешного продолжения необходимо:

- Иметь операционную систему с доступом по сети и доступом по SSH

- Понимать процесса установки FreeBSD

- Быть знакомым с утилитой sysinstall(8)

- Иметь под рукой установочный образ SO или CD с FreeBSD

## 3. Подготовка - mfsBSD

Прежде чем FreeBSD может быть установлена на целевую систему, необходимо собрать минимальный образ операционной системы FreeBSD, который будет загружаться с жёсткого диска. Таким образом, новая система будет доступна из сети, а остальная часть установки может быть выполнена без удалённого доступа к консоли системы.

Набор инструментов mfsBSD можно использовать для создания компактного образа FreeBSD. Как следует из названия mfsBSD («mfs» означает «файловая система в памяти»), итоговый образ полностью запускается с RAM-диска. Благодаря этой особенности не будет ограничений на работу с жёсткими дисками, что позволит установить полноценную операционную систему FreeBSD. На домашней странице mfsBSD есть ссылки на последнюю версию набора инструментов.

Обратите внимание, что внутреннее устройство mfsBSD и принципы его работы выходят за рамки данной статьи. Заинтересованным читателям следует обратиться к оригинальной документации mfsBSD для получения более подробной информации.

Скачайте и распакуйте последний выпуск mfsBSD и перейдите в рабочий каталог, где будут находиться скрипты mfsBSD:

    # fetch http://mfsbsd.vx.sk/release/mfsbsd-2.1.tar.gz
    # tar xvzf mfsbsd-2.1.tar.gz
    # cd mfsbsd-2.1/

### 3.1. Конфигурация mfsBSD

Прежде чем загрузить mfsBSD, необходимо установить несколько важных параметров конфигурации. Самое важное, что нужно правильно настроить, — это, естественно, сеть. Наиболее подходящий метод настройки параметров сети зависит от того, знаем ли мы заранее тип используемого сетевого интерфейса и драйвер сетевого интерфейса, который нужно загрузить для нашего оборудования. Мы рассмотрим, как можно настроить mfsBSD в обоих случаях.

Еще одна важная настройка — установка пароля `root`. Это можно сделать, отредактировав файл conf/loader.conf. Пожалуйста, ознакомьтесь с приложенными комментариями.

#### 3.1.1. Метод conf/interfaces.conf

Если установленная сетевая карта неизвестна, можно использовать функцию автоматического определения в mfsBSD. Скрипты запуска mfsBSD могут определить правильный драйвер для использования на основе MAC-адреса интерфейса, если установить следующие параметры в conf/interfaces.conf:

    mac_interfaces="ext1"
    ifconfig_ext1_mac="00:00:00:00:00:00"
    ifconfig_ext1="inet 192.168.0.2/24"

Не забудьте добавить информацию о `defaultrouter` в conf/rc.conf:

    defaultrouter="192.168.0.1"

#### 3.1.2. Метод conf/rc.conf

Когда драйвер сетевого интерфейса известен, удобнее использовать conf/rc.conf для настройки сети. Синтаксис этого файла такой же, как в стандартном файле rc.conf(5) FreeBSD.

Например, если известно, что сетевой интерфейс re(4) будет доступен, можно задать следующие параметры в conf/rc.conf:

    defaultrouter="192.168.0.1"
    ifconfig_re0="inet 192.168.0.2/24"

### 3.2. Создание образа mfsBSD

Процесс создания образа mfsBSD довольно прост.

Первым шагом необходимо подключить установочный CD FreeBSD или образ ISO установки к /cdrom. В качестве примера в этой статье мы будем предполагать, что вы загрузили образ ISO FreeBSD 10.1-RELEASE. Подключение этого образа ISO к каталогу /cdrom легко выполняется с помощью утилиты mdconfig(8):

    # mdconfig -a -t vnode -u 10 -f FreeBSD-10.1-RELEASE-amd64-disc1.iso
    # mount_cd9660 /dev/md10 /cdrom

Поскольку последние выпуски FreeBSD не содержат обычных наборов дистрибутивов, необходимо извлечь файлы дистрибутива FreeBSD из архивов дистрибутива, расположенных на образе ISO:

    # mkdir DIST
    # tar -xvf /cdrom/usr/freebsd-dist/base.txz -C DIST
    # tar -xvf /cdrom/usr/freebsd-dist/kernel.txz -C DIST

Далее соберите загружаемый образ mfsBSD:

    # make BASE=DIST

| Указанную команду `make` необходимо выполнять из корневого уровня дерева каталогов mfsBSD, например, ~/mfsbsd-2.1/.

### 3.3. Загрузка mfsBSD

Теперь, когда образ mfsBSD готов, его необходимо загрузить на удалённую систему, работающую под управлением live-системы восстановления или предустановленного дистрибутива Linux®. Наиболее подходящий инструмент для этой задачи — scp:

    # scp disk.img root@192.168.0.2:.

Для правильной загрузки образа mfsBSD он должен быть размещен на первом (загрузочном) устройстве данной машины. Это может быть выполнено с помощью следующего примера, при условии что sda является первым загрузочным дисковым устройством:

    # dd if=/root/disk.img of=/dev/sda bs=1m

Если всё прошло успешно, образ теперь должен находиться в MBR первого устройства, и машину можно перезагрузить. Следите за корректной загрузкой системы с помощью инструмента ping(8). Как только машина снова окажется в сети, к ней можно будет подключиться через ssh(1) под пользователем `root` с настроенным паролем.

## 4. Установка операционной системы FreeBSD

Система mfsBSD успешно загружена, и теперь можно войти через ssh(1). В этом разделе будет описано, как создавать и размечать разделы, настраивать `gmirror` для RAID-1, а также как использовать `sysinstall` для установки минимальной дистрибуции операционной системы FreeBSD.

### 4.1. Подготовка жёстких дисков

Первая задача — выделить дисковое пространство для FreeBSD, т.е.: создать слайсы и разделы. Очевидно, что текущая работающая система полностью загружена в оперативную память, поэтому не будет проблем с манипуляциями жёсткими дисками. Для выполнения этой задачи можно использовать либо `sysinstall`, либо fdisk(8) в сочетании с bsdlabel(8).

В начале пометьте все системные диски как пустые. Повторите следующую команду для каждого жёсткого диска:

    # dd if=/dev/zero of=/dev/ad0 count=2

Далее создайте разделы и пометьте их с помощью предпочитаемого инструмента. Хотя использование `sysinstall` считается более простым, но мощным и, вероятно, менее подверженным ошибкам методом будет использование стандартных текстовых инструментов UNIX®, таких как fdisk(8) и bsdlabel(8), которые также будут рассмотрены в этом разделе. Первый вариант хорошо документирован в главе Установка FreeBSD Руководства FreeBSD. Как упоминалось во введении, в этой статье будет показано, как настроить систему с возможностями RAID-1 и ZFS. Наша конфигурация будет состоять из небольшого зеркального раздела gmirror(8) для / (корневого), /usr и /var, а остальное место на диске будет выделено для зеркальной файловой системы ZFS zpool(8). Обратите внимание, что файловая система ZFS будет настроена после успешной установки и загрузки операционной системы FreeBSD.

Следующий пример описывает, как создать слайсы и метки, инициализировать gmirror(8) на каждом разделе и как создать файловую систему UFS2 в каждом зеркальном разделе:

    # fdisk -BI /dev/ad0 (1)
    # fdisk -BI /dev/ad1
    # bsdlabel -wB /dev/ad0s1 (2)
    # bsdlabel -wB /dev/ad1s1
    # bsdlabel -e /dev/ad0s1 (3)
    # bsdlabel /dev/ad0s1 > /tmp/bsdlabel.txt && bsdlabel -R /dev/ad1s1 /tmp/bsdlabel.txt (4)
    # gmirror label root /dev/ad[01]s1a (5)
    # gmirror label var /dev/ad[01]s1d
    # gmirror label usr /dev/ad[01]s1e
    # gmirror label -F swap /dev/ad[01]s1b (6)
    # newfs /dev/mirror/root (7)
    # newfs /dev/mirror/var
    # newfs /dev/mirror/usr

1 | Создайте раздел, охватывающий весь диск, и инициализируйте загрузочный код, содержащийся в секторе 0 данного диска. Повторите эту команду для всех жёстких дисков в системе.
2 | Запишите стандартную метку для каждого диска, включая загрузочный код.
3 | Теперь вручную отредактируйте метку указанного диска. Обратитесь к странице руководства bsdlabel(8), чтобы узнать, как создавать разделы. Создайте раздел `a` для / — корневой файловой системы, `b` для раздела подкачки, `d` для /var, `e` для /usr и, наконец, `f`, который позже будет использоваться для ZFS.
4 | Импортируйте только что созданную метку для второго жёсткого диска, чтобы оба жёстких диска были размечены одинаковым образом.
5 | Инициализируйте gmirror(8) на каждом разделе.
6 | Обратите внимание, что `-F` используется для раздела подкачки. Это указывает gmirror(8) предполагать, что устройство находится в согласованном состоянии после сбоя питания/системы.
7 | Создайте файловую систему UFS2 на каждом зеркальном разделе.

### 4.2. Установка системы

Это самая важная часть. В этом разделе будет описано, как фактически установить минимальный дистрибутив FreeBSD на жёсткие диски, которые мы подготовили в предыдущем разделе. Для достижения этой цели необходимо смонтировать все файловые системы, чтобы `sysinstall` мог записать содержимое FreeBSD на жёсткие диски:

    # mount /dev/mirror/root /mnt
    # mkdir /mnt/var /mnt/usr
    # mount /dev/mirror/var /mnt/var
    # mount /dev/mirror/usr /mnt/usr

Когда вы закончите, запустите sysinstall(8). Выберите установку Custom в главном меню. Выберите Options и нажмите `Enter`. С помощью клавиш со стрелками переместите курсор на пункт `Install Root`, нажмите `Space` и измените его на /mnt. Нажмите `Enter`, чтобы подтвердить изменения, и выйдите из меню Options, нажав `q`.

| Обратите внимание, что этот шаг очень важен, и если его пропустить, `sysinstall` не сможет установить FreeBSD.

Перейдите в меню Distributions, с помощью клавиш со стрелками переместите курсор к пункту `Minimal` и отметьте его, нажав `Space`. В этой статье используется дистрибутив Minimal для экономии сетевого трафика, так как сама система будет устанавливаться через ftp. Выйдите из этого меню, выбрав `Exit`.

| Partition и Label будут пропущены, так как сейчас они бесполезны.

В меню Media выберите `FTP`. Выберите ближайший зеркальный сервер и позвольте `sysinstall` предположить, что сеть уже настроена. Вы вернётесь обратно в меню Custom.

Наконец, выполните установку системы, выбрав последний пункт Commit. Выйдите из `sysinstall` после завершения установки.

### 4.3. Шаги после установки

Операционная система FreeBSD теперь должна быть установлена; однако процесс ещё не завершен. Необходимо выполнить несколько шагов после установки, чтобы FreeBSD могла загружаться в будущем и чтобы можно было войти в систему.

Вы должны теперь выполнить chroot(8) в только что установленную систему, чтобы завершить установку. Используйте следующую команду:

    # chroot /mnt

Для достижения нашей цели выполните следующие шаги:

- Скопируйте ядро `GENERIC` в каталог /boot/kernel:

      # cp -Rp /boot/GENERIC/* /boot/kernel

- Создайте файлы /etc/rc.conf, /etc/resolv.conf и /etc/fstab. Не забудьте правильно настроить сетевые параметры и включить sshd в /etc/rc.conf. Содержимое /etc/fstab будет выглядеть примерно следующим образом:

      # 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

- Создайте файл /boot/loader.conf со следующим содержимым:

      geom_mirror_load="YES"
      zfs_load="YES"

- Выполните следующую команду, чтобы сделать ZFS доступным при следующей загрузке:

      # sysrc zfs_enable="YES"

- Добавьте дополнительных пользователей в систему с помощью инструмента adduser(8). Не забудьте добавить пользователя в группу `wheel`, чтобы получить доступ к root после перезагрузки.

- Перепроверьте все ваши настройки.

Система теперь должна быть готова к следующей загрузке. Используйте команду reboot(8) для перезагрузки системы.

## 5. ZFS

Если ваша система пережила перезагрузку, теперь должно быть возможно войти в систему. Добро пожаловать в новую установку FreeBSD, выполненную удалённо без использования удалённой консоли!

Остался только последний шаг — настроить zpool(8) и создать несколько файловых систем zfs(8). Создание и администрирование ZFS очень просто. Сначала создайте зеркальный пул:

    # zpool create tank mirror /dev/ad[01]s1f

Далее создайте несколько файловых систем:

    # 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, обратитесь к разделу ZFS на вики FreeBSD.

Изменено: 15 марта 2026 г. by Vladlen Popolitov