Пошаговая установка freebsd 11 для чайников

10 октября 2016 года на официальном сайте был анонсирован релиз очередной (11-й) версии популярной unix системы. Я решил написать подробную инструкцию с видео по двум вариантам установки Freebsd 11 - на одиночный диск и raid1 в виде mirror пула zfs. Давно внимательно не смотрел на эту систему, решил подробно все описать и посмотреть, что в ней изменилось за последнее время.

Онлайн-курс по устройству компьютерных сетей

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Введение

Я рассмотрю 2 варианта установки:

  1. Обычный, на одиночный жесткий диск. Такая конфигурация подойдет для виртуальной машины, где резервирование обеспечивается на уровне бэкапа всей виртуальной машины, без необходимости резервирования на уровне жесткого диска.
  2. Второй вариант - установка на программный raid1, который реализован в виде зеркального пула на zfs. Freebsd уже давно дружит с zfs. Я ставил на нее систему, если не ошибаюсь, 8-й версии. В то время приходилось все делать вручную, сейчас же я увидел, что есть возможность установить freebsd на zfs с помощью стандартного установщика в автоматическом режиме. Такая установка подойдет для разворачивания системе на реальном железе.

Принципиальных изменений в установке, по сравнению с предыдущей 10-й версией я не увидел, поэтому не буду подробно разбирать все этапы, как я это делал в статье про установку freebsd 10. Постараюсь более кратко написать, акцентируя внимание только в ключевых местах. Тем не менее, это руководство по установке с нуля подойдет для новичков, или, как говорится, чайников. Все рассказано простым и доступным языком.

Скачать нужный образ freebsd

Перед установкой надо определиться, какой образ скачать. Я составил кратенькую таблицу с описанием всех типов образов Freebsd 11 для платформы x64, которые можно скачать. Ссылки привел на Yandex.Mirror, предпочитаю с него все качать, так как быстро и удобно.

Скачать Freebsd 11
Имя образа Описание Скачать образ
bootonly Минимальный образ по размеру. Чтобы установить с него систему, необходимо подключение к интернету во время установки. bootonly.iso 285M
disc1 Основная система и базовый набор программ есть на диске. Можно установить без подключения к сети. Я пользуюсь обычно этим образом. disc1.iso 656M
dvd1 Максимальный образ. В него входят помимо системы, пакеты программ. Что за пакеты и какой их список я не знаю, никогда не пользовался этим образом. Все, что необходимо, после установки ставлю через интернет. dvd1.iso 3G
memstick Стандартный образ для установки с флешки, аналог disc1. memstick.img 700M

В дальнейшем повествовании я буду использовать образ disc1 как наиболее удобный и универсальный.

Стандартная установка

Начнем с нуля установку Freebsd 11 на одиночный жесткий диск. Вставляем iso образ в автозагрузку и загружаемся с диска. Нас встречает традиционное окно приветствия с тремя вариантами продолжения:

  1. Install - начать установку системы.
  2. Shell - перейти в консоль.
  3. Live CD - загрузиться в режиме Live CD.

Начало установки Freebsd 11

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

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

Имя сервера

Теперь выбираем компоненты, которые будут установлены. Я обычно ничего не ставлю, кроме lib32. Все, что нужно, можно потом установить последней версии из интернета.

Выбор компонентов

На следующем этапе выбираем разбивку жесткого диска. Можно вручную указать все необходимые разделы, выбрать размер и т.д. Я обычно этого не делаю и все устанавливаю на одном корневом разделе. Давно уже так поступаю на всех системах и не вижу в этом никаких проблем. Наиболее частая рекомендация - вынести в отдельный раздел все логи, чтобы случайно заполнив все свободное место они не повесили сервер. На практике у меня такого ни разу не было, поэтому считаю лишним каждый раз возиться с разделами ради очень условного удобства. Правда есть нюанс - у меня на всех серверах всегда настроен мониторинг свободного места на жестком диске. Так что я успеваю оперативно среагировать на проблемы со свободным местом. Ну и слежу за ротацией логов само собой, не оставляю их расти до больших размеров.

Так что выбираем первый пункт - Auto (UFS). Установку freebsd 11 на zfs мы рассмотрим позже.

Выбор разбивки диска

Дальше у вас спросят, хотите ли вы занять все свободное место жесткого диска под систему. Если это так, а обычно это так, то соглашайтесь. На следующем этапе указываем таблицу разделов. Я выбираю GPT:

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

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

Создание разделов

Длится она буквально несколько минут. Чистая система ставится очень быстро. По ходу дела будет предложено указать пароль для root. Сделайте это. Далее нужно будет выбрать сетевой интерфейс для настройки.

Выбор сетевого интерфейса

Если у вас их несколько, то выберите тот, который вы хотите настроить для доступа к сети. После выбора интерфейса нужно будет согласиться с настройкой ip адреса на нем. Дальше я выбираю получить настройки по DHCP. Так проще всего. Если вам нужно вручную указать ip адрес, то откажитесь от dhcp и введите сетевые параметры вручную.

После этого нужно будет указать адрес dns сервера, предварительно отказавшись от ipv6. Если вы получили настройки по dhcp, то адрес уже будет заполнен, нужно будет только подтвердить его. Если настройки вручную указывали, введи сами dns сервер.

Настройка dns

Теперь выбираем часовой пояс, дату и время. Ничего сложного нет, скриншоты приводить не буду. Если дата и время указаны верно, то просто выбирайте Skip, если есть расхождения, вручную укажите правильные. Это, кстати, нововведение в 11-й версии. Раньше такого календаря и часов не было.

Установка движется к завершению. Нужно указать, какие службы вы хотите запускать автоматически при загрузке системы. Обязательно укажите sshd, чтобы подключаться к серверу удаленно, еще ntpd не помешает. Остальное на ваше усмотрение, я больше ничего не указываю. dumped стоит по-умолчанию, пусть останется.

Выбор служб автозагрузки

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

Настройки безопасности

На заключительном этапе вам будет предложено добавить пользователей в систему. Если вы этого не сделаете, то не сможете подключиться по ssh к серверу. По-умолчанию в freebsd пользователю root запрещено подключаться по ssh. Это можно исправить только зайдя локально рутом и отредактировав настройки ssh. Так что создайте хотя бы одного пользователя и добавьте его в группу wheel, чтобы можно было подключиться по ssh и сделать su для получения root доступа.

Добавление пользователя в систему

Дальше выбирайте Exit, перезагружайте систему и вынимайте загрузочный диск.

Завершение установки freebsd

Вы должны загрузиться в свежеустановленной системе Freebsd 11. На этом базовая установка закончена.

Установка на raid1

Выполним ту же самую установку, только на программный raid1. У вас должен быть сервер с минимум 2-мя жесткими дисками. Доходим до пункта, где нужно выбрать разбивку диска и выбираем Auto (ZFS).

Установка на zfs

В строке Pool Type/Disks выбираем mirror.

Выбор типа пула

И указывайте оба ваших диска:

Выбор дисков для raid1

Дальше выбираете первый пункт Install и продолжаете стандартную установку. Система встала на zfs pool в виде зеркала.

Проверка отказоустойчивости zpool

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

# zpool status -v
  pool: zroot
 state: ONLINE
  scan: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        zroot       ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            da0p3   ONLINE       0     0     0
            da1p3   ONLINE       0     0     0

errors: No known data errors

Оба диска на месте. Теперь выключим сервер и вынем один из дисков. Посмотрим, как поведет себя сервер.

# zpool status -v
  pool: zroot
 state: DEGRADED
status: One or more devices could not be opened.  Sufficient replicas exist for
        the pool to continue functioning in a degraded state.
action: Attach the missing device and online it using 'zpool online'.
   see: http://illumos.org/msg/ZFS-8000-2Q
  scan: none requested
config:

        NAME                     STATE     READ WRITE CKSUM
        zroot                    DEGRADED     0     0     0
          mirror-0               DEGRADED     0     0     0
            2081140553640658652  UNAVAIL      0     0     0  was /dev/da0p3
            da0p3                ONLINE       0     0     0

errors: No known data errors

Как видно, диска нет, но система благополучно загрузилась и нормально работает. Если мы вернем этот же диск на место и перезагрузимся, то все станет в порядке, никаких лишних движений делать не надо. Но представим, что у нас диск вышел из строя и нам надо установить новый. Вставляем новый чистый диск в сервер и загружаемся. Новый диск получил то же название, что и вышедший из строя - /dev/da0. Разделов на нем нет.

Первым делом отправляем сбойный диск в offline:

# zpool offline zroot da0p3

Пул теперь в таком состоянии:

# zpool status -v
  pool: zroot
 state: DEGRADED
status: One or more devices has been taken offline by the administrator.
        Sufficient replicas exist for the pool to continue functioning in a
        degraded state.
action: Online the device using 'zpool online' or replace the device with
        'zpool replace'.
  scan: none requested
config:

        NAME                     STATE     READ WRITE CKSUM
        zroot                    DEGRADED     0     0     0
          mirror-0               DEGRADED     0     0     0
            2081140553640658652  OFFLINE      0     0     0  was /dev/da0p3
            da1p3                ONLINE       0     0     0

errors: No known data errors

Скопируем таблицу разделов с живого диска на новый. Посмотрим для начала на нее:

# gpart show
=>      40  20971440  da1  GPT  (10G)
        40      1024    1  freebsd-boot  (512K)
      1064       984       - free -  (492K)
      2048   4194304    2  freebsd-swap  (2.0G)
   4196352  16773120    3  freebsd-zfs  (8.0G)
  20969472      2008       - free -  (1.0M)

Создаем такую же таблицу на новом диске, скопировав ее со старого:

# gpart backup da1 > /root/da1.backup
# gpart restore da0 < /root/da1.backup

Смотрим, что получилось:

# gpart show
=>      40  20971440  da1  GPT  (10G)
        40      1024    1  freebsd-boot  (512K)
      1064       984       - free -  (492K)
      2048   4194304    2  freebsd-swap  (2.0G)
   4196352  16773120    3  freebsd-zfs  (8.0G)
  20969472      2008       - free -  (1.0M)

=>      40  20971440  da0  GPT  (10G)
        40      1024    1  freebsd-boot  (512K)
      1064       984       - free -  (492K)
      2048   4194304    2  freebsd-swap  (2.0G)
   4196352  16773120    3  freebsd-zfs  (8.0G)
  20969472      2008       - free -  (1.0M)

То, что надо. Запишем на новый диск загрузчик:

# gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 da0
partcode written to da0p1
bootcode written to da0

Говорим пулу, что мы меняем жесткий диск:

# zpool replace zroot /dev/da0p3
Make sure to wait until resilver is done before rebooting.

If you boot from pool 'zroot', you may need to update
boot code on newly attached disk '/dev/da0p3'.

Assuming you use GPT partitioning and 'da0' is your new boot disk
you may use the following command:

        gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 da0

Умный zpool сам нам напомнил, чтобы мы не забыли про загрузчик. После замены диска быстро прошел resilver (синхронизация) и пул перешел в состояние ONLINE

# zpool status -v
  pool: zroot
 state: ONLINE
  scan: resilvered 532M in 0h0m with 0 errors on Sat Oct 15 01:29:49 2016
config:

        NAME        STATE     READ WRITE CKSUM
        zroot       ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            da0p3   ONLINE       0     0     0
            da1p3   ONLINE       0     0     0

errors: No known data errors

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

Заключение

Закончили установку. Можно сделать базовую настройку freebsd. Вся информация в статье актуальна для 11-й версии.

Получилось не только про установку, но и про zfs немного, о том, как заменить сбойный диск в случае выхода из строя. Я всегда обращаю внимание на такие вещи, как отказоустойчивость на уровне дисков. Без этого систему не ставлю. Обязательно должен быть рейд либо программный, либо аппаратный. Я в своей работе постоянно сталкиваюсь с поломками жестких дисков, так что для меня это будни :) Даже бэкапа не достаточно в таком случае. Даже если есть бэкап, то работы по замене системы занимают слишком много времени, а если ты в основном работаешь удаленно, тебе еще и ехать придется, чтобы что-то заменить. Это не мой вариант.

Freebsd 11 понравилась простой и быстрой установкой на raid1. Думаю, эта возможность появилась раньше, я просто не проверял. Решил посмотреть на 11-й версии. В целом, все понравилась. В отличие от Debian, голая система ставится на глаз раз в 5-7 быстрее и раза в 3 быстрее CentOS. Надеюсь, что система и дальше будет развиваться и радовать нас новыми версиями и возможностями.

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Дополнительные материалы по Freebsd

Онлайн-курс по устройству компьютерных сетей.

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Рекомендую полезные материалы по Freebsd:
  • Установка
  • Настройка
  • Обновление
  • Шлюз
  • Прокси сервер
  • Веб сервер NGINX
  • Веб сервер Apache
Описание установки Freebsd 11 на одиночный диск, либо на софтовый raid1, сделанный средствами zfs, которые поддерживает стандартный установщик.
Базовая настройка Freebsd, которую можно выполнить после установки сервера общего назначения. Представлены некоторые рекомендации по повышению удобства пользования и безопасности.
Описание и нюансы обновления системы Freebsd с помощью утилиты freebsd-update. Показано пошагово на конкретном примере обновления.
Настройка Freebsd шлюза для обеспечения выхода в интернет. Используется ipfw и ядерный нат, dnsmasq в качестве dhcp и dns сервера. Мониторинг сетевой активности с помощью iftop.
Подробная настройка на Freebsd прокси сервера squid + sams2 - панели управления для удобного администрирования.
Настройка максимально быстрого web сервера на базе Freebsd и nginx + php-fpm. Существенный прирост производительности по сравнению с классическим apache.
Настройка web сервера на Freebsd в связке с apache, nginx, php и mysql. Пошаговая установка и настройка каждого компонента.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

27 комментариев

  1. День добрый, нужен совет, если у меня система стоит на железном рэйде, а на zfs собрана файловая шара, это еще 4 диска в 2 зеркалах, то каким образом менять один из дисков, я уже на его место поставил новый точно такой же, как я понимаю разметку можно копировать с любого диска, любого зеркала, и потом делать реплейс и нужен ли загрузчик на диске если на нем нет системы. Или можно проще, добавить новый диск в пул, дать ему метку gpt и назвать так же как старый, а старому сделать детачь или так не заработает?

    • Диск где нужно заменить? На железном рейде или на zfs?

        • Тут рассказано, что надо делать при замене диска в zfs - https://docs.oracle.com/cd/E19253-01/820-0836/gazgd/index.html
          Ничего сверх того, что там написано делать не надо (давать метку gtp, ставить загрузчик и т.д.)

          • Спасибо, я это тоже читал, сделал следующим образом, воткнул новый диск, накатил на него разметку с живого диска и выполнил zpool replace Zpool /dev/gpt/mirror0_disk0 diskid/DISK-PACCR9SY7KVZ диск появился в пуле с пометкой resilvering. Пишет что через 118 часов закончит, надеюсь это тот результат который нужен.

  2. Ставил оську под этот мануал- работает) есть вопрос, хочу переустановить оську, стоят 2 зеркальные ссд настроены через zfs. Я так понял просто так не форматнуть, говорят, мол нужно через livecd удалить zfs pool. Покопался в гугле, нашел команду "# zpool destroy tank"
    оно поможет? :DD

    • С livecd с помощью dd очисть оба диска для верности да и все. Я бы так сделал. Главное в dd указать полностью весь диск с первого по последний сектор. В инете легко найдешь подсказки.

  3. Сергей

    Статья хорошая, но вот бы статью про установку virtualbox на Freebsd_11 не помешала бы.

  4. Статья хорошая, коротко и по делу.
    Только я бы добавил что лучше при установке FreeBSD, в разделе "ZFS configuration" поменять опцию "Partition scheme" с "GPT (BIOS)" на "GPT (BIOS+UEFI)": так ваша система в случае чего заведётся и на очень старом железе (без поддержки UEFI-загрузчика) и на самом новом (без поддержки BIOS-загрузчика) правда плата за это - дополнительный раздел (тот самый efi-раздел (200M)) но оно того определённо стоит.

  5. Сергей

    У меня уже стояла фряха , но сдох хард и пришлось начинать всё с начала . Так , что я знаю и без манов , то надо делать . Только у меня была установлена 10 фряха и ни каких проблем не было .

  6. Сергей

    Не получается установить ни webnin , ни samba и т.д. Сама система установилась действительно быстро , а вот всё остальное не хочет . Что можно сделать ????

    • Читайте маны (или хотя бы статьи). Всё отлично ставится на фрю и работает без проблем.
      Могу порекомендовать книгу "FreeBSD. Подробное руководство, 2е издание" (Майкл Лукас).

  7. Здравствуйте) А можно, еще статью по установке, например, DE xfce на FreeBSD?

    • AnonymusOver9000

      Уже есть на просторах инета. Зачем нужно на сайте "Системное Администрирование" писать такую статью?

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

  8. Да нет вы правильно написали "с живого диска на новый". Там смотрю сверху пожелания пишут, может следующую статью по ezjail ячейкам напишете, очень интересная штука.

  9. Спасибо за статью, вас читаю постоянно, но вот с zfs столкнулся недавно, при переходе на новую работу, есть у меня 3 сервера с zfs пулами. Так вот возник у меня вопрос после прочтения статьи, мы выключаем из пула старый диск и с него копируем разметку, но что делать если диск наглухо ушел от нас и разметку мы вряд ли с него сможем скопировать. Или придется вставлять новый диск и накатывать снапшот и ляжет ли снапшот на новый диск?

    • Извиняюсь затупил, не сразу допер, мы же копируем с живого, они же зеркальные.

      • Да, все верно. Это я неправильно выразился в статье. Разметку нужно скопировать с оставшегося живого диска, он же точно такой, как и вышедший из строя.

  10. Спасибо за статью! Подскажите, пожалуйста, если для частного сервера есть два ssd диска - их тоже стоит устанавливать в зеркало или для ssd есть другие решения?

    • Тут не знаю как лучше, надо думать. Зеркало тупо израсходует ресурс обоих дисков одинаково и они могут умереть примерно в одно и то же время. Так что такой подход не самый лучший вариант. Я думаю лучше ставить систему на один диск и периодически копировать ее на второй. Частоту подобрать вручную, основываясь на частоте изменения самой системы. Но это не должно быть часто. Я думаю, так лучше всего.

      Я системы не ставлю на ssd. Для серверов ssd пока слишком дороги, использую по старинке обычные hdd. SSD ставлю только под конкретные задачи конкретной службы (в основном БД) и делаю соответствующий бэкап на обычный диск. Если ssd выходит из строя, быстро восстанавливаю работу на обычный hdd, потом меняю ssd и снова переношу данные на ssd с бэкапом на обычный диск.

      Как то так получается. Для системы не вижу смысла использовать ssd. Только под конкретные службы.

  11. интересно... сделал по инструкции.. всё работало... выдернул один из двух дисков... на другой машине всё убил.. очистил...
    вставил... загрузился.. послал диск в офлайн.. перенёс разметку.. загрузчик..

    NAME STATE READ WRITE CKSUM
    zroot DEGRADED 0 0 0
    mirror-0 DEGRADED 0 0 0
    12045155428261532212 OFFLINE 0 0 0 was /dev/ada0
    gpt/zfs1 ONLINE 0 0 0

    выдаёт ошибку

    zpool replace zroot /dev/ada0

    invalid vdev specification
    use '-f' to override the following errors:
    /dev/ada0 is part of active pool 'zroot'

  12. Спасибо за статью!

    А принимаются ли пожелания на тему желаемых новых статей? :)
    Очень интересно практическое руковдство на тему:
    ""man tuning" gives some tips how to tune performance of your FreeBSD system."

  13. Алексей

    Спасибо, все содержательно и по делу. Пригодилось ).
    Единственный вопрос - обязательно ли при замене диска на новый копировать структуру старого? Чистый диск автоматом подхватить не может?

    • Чистый диск не подхватит. Там же несколько разделов, boot, swap. Их надо разметить и в пул отправить только последний с данными.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar