Как мы упоминали в разделе Предыстория, многие авторитетные компании, предоставляющие хостинг серверов, предлагают своего рода систему восстановления, которая загружается из их локальной сети и доступна через SSH. Обычно они предоставляют эту возможность, чтобы помочь клиентам восстановить повреждённые операционные системы. Как будет объяснено в этой статье, с помощью таких систем восстановления можно установить FreeBSD.
Следующий раздел этой статьи описывает, как настроить и собрать минималистичную FreeBSD на локальной машине. Эта версия в конечном итоге будет запущена на удаленной машине с ramdisk, что позволит нам установить полную операционную систему FreeBSD с FTP-зеркала с помощью утилиты sysinstall.
Оставшаяся часть статьи описывает процедуру установки, а также настройку файловой системы ZFS.
Удалённая установка операционной системы 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.
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
Указанную команду |
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). Выберите установку в главном меню. Выберите и нажмите Enter. С помощью клавиш со стрелками переместите курсор на пункт Install Root
, нажмите Space и измените его на /mnt. Нажмите Enter, чтобы подтвердить изменения, и выйдите из меню , нажав q.
Обратите внимание, что этот шаг очень важен, и если его пропустить, |
Перейдите в меню Minimal
и отметьте его, нажав Space. В этой статье используется дистрибутив Minimal для экономии сетевого трафика, так как сама система будет устанавливаться через ftp. Выйдите из этого меню, выбрав Exit
.
и будут пропущены, так как сейчас они бесполезны. |
В меню FTP
. Выберите ближайший зеркальный сервер и позвольте sysinstall
предположить, что сеть уже настроена. Вы вернётесь обратно в меню .
Наконец, выполните установку системы, выбрав последний пункт 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