Freebsd 12 установка и настройка uefi

Обновлено: 04.07.2024

Данная статья представляет собой пошаговую инструкцию по установке и настройке FreeBSD 11.0 x64. В статье подробно описан процесс создания загрузочной USB флешки с FreeBSD 11.0 x64, а также установки Xorg и графической среды GNOME 3.

Процесс создания загрузочной USB флешки и установки показан на примере FreeBSD 11.0 x64, однако данное руководство полностью подходит для установки других версий FreeBSD.

ВАЖНО! Прежде чем устанавливать FreeBSD, скопируйте всю ценную для Вас информацию на сторонние носители.

Для установки FreeBSD понадобятся:

1. USB флешка объемом 1Гб или больше. Имейте ввиду, что в процессе создания загрузочной USB флешки с FreeBSD вся информация находящаяся на ней будет удалена.

2. Утилита Win32 Disk Imager для создания загрузочной USB флешки из IMG-образа FreeBSD.

3. Дистрибутив FreeBSD-11.0-RELEASE-amd64-memstick в формате IMG-образа.

Ссылка на скачивание с официального сайта:

Ссылка на скачивание FreeBSD-11.0-RELEASE-amd64-memstick:

I. Создание загрузочной флешки с FreeBSD

1. Вставьте USB флешку в USB разъем.

2. Установите скачанную утилиту Win32 Disk Imager. (прим. I accept the agreement > Next > Next > Install > Finish).

3. В Win32 Disk Imager выберите букву USB флешки и нажмите на синюю иконку. В появившемся окне выберите скачанный Вами ранее IMG-образ с FreeBSD, а затем нажмите Открыть (Рис.1).


4. Нажмите Write, затем, в появившемся окне, нажмите Yes. После чего начнётся создание загрузочной USB флешки (Рис.2).


5. После завершения создания загрузочной USB флешки нажмите OK и закройте программу (Рис.3).


II. Установка FreeBSD

1. Вставьте загрузочную USB флешку с FreeBSD в разъём USB.

2. Сразу после запуска компьютера необходимо вызвать Boot menu. Т.к. на разных материнских платах и ноутбуках клавиши вызова Boot menu отличаются, ниже приведена таблица (Рис.4) в соответствии с которой Вам необходимо нажать соответствующую клавишу (прим. если у Вас стационарный компьютер, и Вы не знаете какая материнская на нём стоит, обесточьте компьютер, откройте боковую крышку системного блока и посмотрите модель материнской платы).


3. Boot menu незначительно отличается на разных моделях и приблизительно выглядит следующим образом (Рис.5, Рис.6).



4. Выберите загрузку с USB флешки (Рис.5, Рис.6) и нажмите Enter.

5. В меню выберите первый пункт и нажмите Enter (Рис.7).


6. В появившемся окне выберите Install и нажмите Enter (Рис.8).




9. Выберите hostname (прим. можно выбрать любое, в дальнейшем его можно будет изменить), затем нажмите Enter (Рис.11).


10. В качестве компонентов для установки выберите lib32, ports, src (прим. чтобы отметить компонент как выбранный нужно его выделить и нажать пробел), затем нажмите Enter (Рис.12).


11. Выберите автоматическую разметку Auto (UFS), затем нажмите Enter (Рис.13).


12. Выберите Entire Disc, затем нажмите Enter (Рис.14).


13. Выберите пункт GPT, затем нажмите Enter (Рис.15).


14. Удостоверьтесь, что автоматическая разметка произведена верно, затем выберите Finish и нажмите Enter (Рис.16).


15. Выберите Commit и нажмите Enter (Рис.17).


16. Начнётся процесс установки (Рис.18).


17. После окончания установки необходимо придумать, ввести и повторить пароль для суперпользователя (root) (прим. при вводе пароля, символы не отображаются) (Рис.19).



19. Для настройки IPv4 выберите Yes и нажмите Enter (Рис.21).


20. Для получения настроек по DHCP выберите Yes и нажмите Enter (Рис.22).


21. В появившемся окне настроек IPv6 выберите No и нажмите Enter (Рис.23).


22. В появившемся окне нажмите Enter т.к. Вы получили настройки по DHCP и адрес уже заполнен (Рис.24).


23. Выберите необходимый регион (прим. для России это Europe), затем нажмите Enter (Рис.25).


24. Выберите страну и нажмите Enter (Рис.26).


25. Выберите необходимый часовой пояс, затем нажмите Enter (Рис.27).


26. Подтвердите выбор часового пояса выбрав Yes, затем нажмите Enter (Рис.28).


27. Выберите дату (прим. если дата указана верно, то просто выберите Skip, в противном случае укажите дату вручную) (Рис.29).


28. Выберите время (прим. если время указано верно, то просто выберите Skip, в противном случае укажите время вручную) (Рис.30).


29. Выберите компоненты, которые будут запускаться автоматически при загрузке системы (прим. чтобы отметить компонент как выбранный нужно его выделить и нажать пробел), после выбора компонентов нажмите Enter (Рис.31).


30. Выберите третий пункт: Disable reading kernel message buffer for unprivileged users и нажмите Enter (Рис.32).


31. Для того, чтобы добавить пользователя выберите Yes и нажмите Enter (Рис.33).


32. В строках Username и Full name введите имя пользователя и полное имя (прим. можно указывать любые). В строке Login group введите wheel. Для строк Enter password и Enter password again необходимо придумать, ввести и повторить пароль для пользователя (прим. при вводе пароля символы не отображаются). В остальных строках нажимайте Enter (Рис.34).


33. Для подтверждения регистрации пользователя, напротив строки OK? (yes/no) введите yes. Напротив строки Add another user? введите no (Рис.35).


34. Выберите Exit и нажмите Enter (Рис.36).


35. В появившемся окне выберите No и нажмите Enter (Рис.37).


36. Для перезагрузки системы выберите Reboot и нажмите Enter (Рис.38).


37. После перезагрузки введите в строке login root, а в строке Password пароль, который вы указывали ранее (прим. см. пункт 17) (Рис.39).


III. Установка Xorg и GNOME 3 в FreeBSD

1. Прежде чем устанавливать Xorg и GNOME 3, необходимо проверить соединение с Интернет (прим. особенно это актуально, если доступ осуществляется через роутер). Для этого зайдите через root и введите следующие команды:

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

Несколько предварительных замечаний: Я рекомендую установить FreeBSD на виртуальную машину, если вы хотите просто поинтересоваться, процесс инсталляции от этого не изменится. Разница будет, только в этапе настройки виртуальной машины или вашего реального компьютера на тот тип устройств, что у вас будет. Если установка FreeBSD будет идти на реальный компьютер, то рекомендую использовать отдельный жёсткий диск, а диски с уже установленной, например Windows попросту отключить. Так, как если у вас уже установлена какая-либо ОС, то есть вероятность её случайного удаления или повреждения, при ошибке выбора дисков во время конфигурирования дисковой системы. Поэтому примем, что у вас либо виртуальная машина либо реальная, но предназначенная только для FreeBSD.

Подготовка инсталляционного носителя

Для создания носителя можно записать DVD-диск, что в наше время уже затруднительно - многие компьютеры уже приобретаются без соответствующих дисководов, но если он у вас есть, то записываете на DVD-диск, скачанный iso-образ, воспользовавшись соответствующей программой. В Windows, есть встроенная программа записи - можно воспользоваться ей или любой другой, которой вы пользуетесь. Для записи флэш-носителя, например можно использовать встроенное средство самой Windows или выбрать, какое либо, описываемых на этой странице. Если у вас Linux, то есть программа k3b, которая так же запишет диск или воспользовавшись командной строкой можно записать образ на флэш-носитель. Перейдите в каталог, куда вы скачали образ FreeBSD. .img и выдайте команду:

где /dev/sdb - это устройство под которым у вас система распознала флэшноситель.

Для vmware или VirtualBox вы просто в соответствующем месте настроек указываете, что на ваш виртуальный CD-ROM подключен образ FreeBSD-12.1-RELEASE-amd64-disk1.iso и указываете, что загрузка будет с него.Так будем считать, что инсталляционный дистрибутив у вас есть. Характеристики системы для установки можно использовать примерно такие (в равной степени это относится к виртуальной машине и к реальной):

минимальное(рекомендуемое) ОЗУ - 2(4) Gb HDD - 16(120)Gb Замечу так же, что zfs (если вы выберите её) для производительной работы требует минимум 4Gb ОЗУ, но она будет работать и при меньшем объёме памяти.

Загружаемся с DVD или флэш-носителя. Первое, что вы увидите будет загрузчик FreeBSD, он одинаковый и для самой системы и для инсталлятора:

В этой инструкции я хочу пролить свет на то, насколько просто и элегантно возможно устанавливать FreeBSD в серверном окружении — на арендованном железе или в собственном датацентре, вручную или средствами оркестрации вроде Ansible. Шифрование дисков, удобное управление пространством, гипервизор для контейнеров и полных VM, удобный и понятный firewall — это всё и не только это доступно из коробки и занимает мало времени в настройке при правильном подходе.

Установка

Начнём с самого простого сценария. У нас стоит железяка или она где-то там стоит, но мы можем на CD-диске или средствами IPMI скормить .iso (или .img). Или даже еще проще — хостер предлагает образ mfsbsd прямо из интерфейса. В любом случае загружаемся с mfsbsd.

Linux rescue CD

Бывает, что хостер не дает FreeBSD ни в каком виде, но дает Linux Rescue. Загружаемся в линукс, скачиваем mfsbsd образ диска и накатываем на харды:

Настройка сетевого адаптера

Всё хорошо, когда у нас есть непосредственный доступ к монитору или получение сигнала по сети через IPMI/VNC/web. Но что делать если такой возможности нет и возможно только подключение по сети? Для этого нам нужен образ mfsbsd с уже выставленными настройками сети. Давайте соберем наш индивидуальный образ с настройками сетевого адаптера и демона SSH. Для этого нам нужен какой-то FreeBSD хост для сборки образа.

Скачиваем оригинальный .iso

Меняем конфигурационные файлы. Для конфигурации IP достаточно изменить создать conf/rc.conf из conf/rc.conf.sample . Так же следует создать conf/authorized_keys и добавить свой ключ.

Почему mfsbsd?

Это компактная сборка ОС FreeBSD которая загружается прямо в память, а значит мы можем свободно делать что хотим со всеми доступными носителями. Что-то вроде Linux rescue CD. Вся прелесть этой сборки в том, что она позволяет установить FreeBSD буквально в одну команду.

После Linux rescue CD или загрузки с .iso/.img мы попадаем в шелл mfsbsd.

затем устанавливаем нашу систему.

т.к. на хостах до 3 дисков я предпочитаю ставить систему в зеркале на все диски на небольшой раздел. Благодаря ZFS оставшеесе пространство можно конфигурировать как душе угодно, но об этом позже. Вот она одна единственная команда, которой устанавливается вся система.

для установки системы на трёх дисках в зеркале

После установки, файловая система установленной ОС доступна в /mnt/ , поэтому мы производим некоторую конфигурацию перед уходом в ребут:

Копируем уже добавленный в образ mfsbsd ключ в систему

Редактируем конфиг SSH (например меняем порт и разрешаем логин рутом )

редактируем файл "загрузчика" системы

Обратите внимание на производителя вашего сетевого адептера, т.к. от этого зависит имя интерфейса. В некоторых случаях можно сделать так:

ifconfig_DEFAULT="DHCP" в /etc/rc.conf

Ну и можно вообще можно сделать так

и добавлять пользователя и вообще делать все из окружения уже свеже-установленной ОС.

ну а мы поехали дальше

Больше красноглазия

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

Стандартный установщик FreeBSD:


Выбираем Live CD

Диск в памяти на необходим для работы с файлами mfsbsd, более того, mfsbsd использует /tmp/ в процессе инсталяции, поэтому там должно быть достаточно свободного места.

ну а дальше уже тоже самое — ./destroygeom и ./zfsinstall

Установка из предустановленного образа Linux:

Если провайдер сервера дает уже установленный линукс, то мы так же можем "заинсталиться" по-своему, изменив конфигурацию загрузчика GRUB. Для этого на действующей системе нужно добавить grub.cfg следующие строки:

Ну и положить соответственно .iso в /boot/boot-isos/

Сам так никогда не делал, поэтому если найдете ошибку или недочет в конфиге — дайте знать.

Пожалуй как еще можно извернуться что бы установить FreeBSD я не знаю.

Конфигурация системы

Ну вот мы всё установили, загружаемся… Для начала работы нам нужно установить и настроить сеть — в нашем случае главную роль будет выполнять pf, мне нравится это решение за простоту и понятность. Нам нужно настроить файловую систему сервера — мы используем ZFS, потому что это невероятно гибкая и эффективная файловая система. Когда настроена сеть и ФС, мы установим гипервизор. Если нам необходим повышенный уровень безопасности, можно настроить дополнительные утилиты, я опущу их описание в этом туториале. В качестве демонстрации гибкости ZFS я опишу конфигурацию двух серверов, одного с 2-мя дисками и одного с 3-мя дисками. Так же не забываем провести апгрейд системы после установки, порой выходит так, что доступно для установки только что-то древнее.

freebsd-update -r 12.1-RELEASE upgrade

На момент написания этого руководства 12.1 является последней версией

Сервер с двумя дисками

Мы его создали в следующей конфигурации:

Что всё это значит? У нас железка с двумя дисками, эти два диска оба объемом 3ТБ. Мы на сервере собираемся запустить несколько приложений, часть из них условно критичны, часть "для поиграться", поэтому не жалко утратить данные. Для найболее эффективной конфигурации дискового пространства. Что мы получаем в результате недолгих манипуляций?

Пул appdata (зеркало из разделов /dev/ada0p4.eli и /dev/ada1p4.eli) для данных приложения критической важности, пул miscdata ("страйп", т.е. просто последовательно расположены данные на /dev/ada0p5.eli и /dev/ada1p5.eli) для всякой ерунды. Так же есть системный пул и своп, это так же зеркала из разделов обоих дисков.

Итого мы имеем для наших приложений 1ТБ зеркалированного пространства и 3.2ТБ для экспериментов.

Как всё это настроить? Несложно. После начальной установки наш диск выглядит как-то так:

Добавляем разделы на диски, сначала тот что будем зеркалировать

а затем всё остальное

теперь у нас есть разделы /dev/ada0p4, /dev/ada0p5, /dev/ada1p4 и /dev/ada0p5. Т.к. мы не имеем физического доступа к серверу у хостера в ДЦ, целесообразно разделы с нашими данными зашифровать.

вводим пароль шифрования, затем расшифровываем разделы:

теперь у нас есть разделы /dev/ada0p4.eli, /dev/ada0p5.eli, /dev/ada1p4.eli и /dev/ada0p5.eli, можем построить пулы из этих разделов

Можно это заскриптить:

и для данных без зеркалирования

Ну вот и готов к бою наш сервер. Мы имеем пулы, которые в дальнейшем можем расширать посредством добавления доп. дисков. А еще есть снапшоты, как их применять опишу чуть ниже.

Сервер с тремя дисками

Тут немного другой конфиг. У нас есть железка с тремя SSD дисками по 450ГБ. Этот сервер будет использоваться в основном для полной виртуализации, поэтому нам нужно как можно больше пространства, но при это возможно продолжать работать после утраты одного из дисков. После начальной установки наши диски выглядят так:

Создаем разделы по 420 ГБ (до конца диска не создаем, т.к. при замене диска, его фактический размер может немного отличаться)

Что за Metadata backup?

Это файл, при помощи которого можно сбросить пароль шифрования на тот, что мы ввели. Ну это на случай если потом поменял и забыл. В любом случае стоит иметь ввиду этот нюанс.

Аттачим диски и создаем пул

и на выходе мы получаем пул с 820 ГБ дискового пространства

Собирать ZFS пулы и разных дисков разных конфигураций возможно как угодно. Это своего рода конструктор хранилища, которое можно вечно увеличивать. ZFS создаёт слой абстракции над устройствами, который позволяет достигать крайне удивительных конфигураций.

Установка и настройка гипервизора

FreeBSD предлагает из коробки два решения для "гостевых ОС" — jails и bhyve. Есть cbsd, это враппер для FreeBSD Jails, bhyve и XEN. В данном руководстве я последний затрагивать не буду, т.к. никогда им сам не пользовался.

Клетки это клоны системы FreeBSD. Очень удобный инструмент для изоляции процессов. Хост система может хостить клетки любой версии ниже своей. Клетки можно переносить между хостами, снапшотить и откатывать хоть на лету. Стоит использовать клектки когда это возможно, таким образом оптимально использовать ресурс системы, не тратя его на полную виртуализацию.

bhyve в свою очередь это полноценный гипервизор, которым можно поднимать всякие Ubuntu и докеры.

Стоит отметить, что на момент написания руководства cbsd тянет всего 11 зависимостей размеров 35 МБ.

создаем отдельный раздел на пуле для клеток

Запускаем cbsd демона. Запускаем onestart, т.к. мы не добавили cbsd в автозапуск при загрузке системы, т.к. у нас зашифрованы разделы с данными гостевых ОС.

При загрузке сервера нужно к нему подключится по SSH (именно поэтому системный раздел не зашифрован, что бы загрузка системы происходила успешно без всяких там VNC/IPMI вводов паролей) и расшфифровать наши дисковые разделы скриптом ./root/attach_disks.sh .

При инициализации cbsd мы указали что 192.168.0.0/24 будет подсетью для наших клеток. Ту же подсеть я планирую использовать и для полной виртуализации. Закрутим пару клеток на хосте, но перед этим настроим огненную стену, что бы NAT для клеток работал через хоста.

В этой статье рассматривается конфигурирование программного RAID массива с помощью мастера установки и настройки ОС FreeBSD на примере RAID 1 (зеркало).

Перед тем, как запустить инсталляцию FreeBSD, переходим в Shell


Посмотрим, какие диски нашла система:

В списке должны появиться диски ada0 и ada1.

Затем включаем отладочную опцию ядра командой:

Теперь загружаем модуль /boot/kernel/geom_mirror.ko

После этого создадим зеркало.

Сохраняем метаданные на диске ada0:


Подключим второй диск к зеркалу:

Надо будет некоторое время подождать, пока синхронизируются диски. Для проверки состояния подключения дисков в массив используется команда:


Теперь выходим из Шелла в инсталлятор:

и начинаем установку системы.


Переводим курсор на mirror/gm0 и жмём Create


Выбираем таблицу разделов GPT



Затем снова переводим курсор на mirror/gm0 и снова жмём Create


Создаём раздел для корня


Необходимо будет указать тип (Type), размер (Size) и точку монтирования (Mountpoint).

Система предложит создать загрузочный раздел. Соглашаемся


Разметка выглядит сейчас так:


Далее создаём swap-раздел:


он появится вместе с разметкой:


После этого необходимо будет подтвердить, чтобы изменения вступили в силу.


Система предлагает снова перейти в Shell для дальнейшей корректировке данных.

Читайте также: