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

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

товарные знаки

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.


Изменено: 1 октября 2025 г. by Vladlen Popolitov