Главная
Главная Руководства FreeBSD › Установка FreeBSD 11.1



Автор:

Статья опубликована: 2018-02-19 19:05:20
Последние правки: 2023-07-14 23:36:20

Загружаемся с флешки и устанавливаем FreeBSD 11.1 из интернета. Обновляем систему и порты до актуального состояния. Собираем свое ядро.

Домашний сервер верой и правдой служил более 10 лет, пережил смерть HDD и материнской платы, и, несмотря на это, до сих пор в строю. Но, со временем 4-х гигабайт ОЗУ перестало хватать, а больше материнская плата не поддерживает. Поэтому, пришло время апгрейда и FreeBSD 11.


  • Готовим флешку

    Ищем нужный образ на сайте FreeBSD. Архитектура - amd64 (так как 16GB ОЗУ), образ для флешки FreeBSD-11.1-RELEASE-amd64-memstick.img. Качаем образ и заливаем на флешку. Более подробно об этом можно прочитать в официальном руководстве.

    Под FreeBSD и Ubuntu залить образ на флешку можно программой dd. Не забываем, что флешку предварительно монтировать не надо.
    FreeBSD, флешка - /dev/da0
    # dd bs=1M if=FreeBSD-11.1-RELEASE-amd64-memstick.img of=/dev/da0 conv=sync
    11175+0 records in
    11175+0 records out
    732364800 bytes transferred in 203.900636 secs (3591773 bytes/sec)
    
    А под Ubuntu это делается так (/dev/sdb):
    # dd bs=1M if=FreeBSD-11.1-RELEASE-amd64-memstick.img of=/dev/sdb conv=sync status=progress
    751+1 записей получено
    751+1 записей отправлено
    788149248 байт (788 MB, 752 MiB) скопирован, 339,621 s, 2,3 MB/s
    


  • Установка

    Загружаемся с флешки и устанавливаем. Замечания по установке:
    • Keymap Selection - оставляем default. Из русских в списке есть только CP866, ISO-8859-5, koi8-r, но это прошлый век, после установки руками настроим UTF.
    • Distribution Select - я выбрал lib32 (32-х разрядные библиотеки), ports (порты, обязательно) и src (исходники ОС, не обязательно, но они все равно потом понадобятся)
    • Partitioning - тут решать вам. Есть древний гид по разбивке, где советуют разбивать отдельно на /usr /usr/local /var /home и приводятся рекомендуемые размеры, в качестве основного аргумента говорится, что если вдруг будет полностью забит один из разделов, то это никоим образом не повлияет на остальные и система не повиснет. Также, последний писк файловых систем - это zfs, но прирост по скорости присутствует только если у вас два диска в райде. У меня есть два диска, но делать из них райд нет смысла (все таки домашний сервер), поэтому я выбрал Auto (UFS), на загрузочном (300GB) автоматически был сделал swap-раздел (по размеру ОЗУ), загрузочный раздел и корневой раздел где будет жить операционка. Второй диск (1TB) не трогал, на нем все осталось от старого сервера, примонтирую его позже в качестве /home. На нем будут жить все сервисы (домики пользователей, файлопомойка и т.д.). При таком варианте приходящие файлы не смогут положить систему, если они и забьют диск, то только второй.
    • Select local or UTC ... clock - я выбрал [No], потому что мой сервер использует локальное время. После этого появятся окна для выбора часового пояса, выбирайте какой вам нужно.
    • System Configuration - оставил только sshd
    • Add User Accounts - пользовательские аккаунты добавлять не стал, так как ещё не примонтирован второй диск. Добавлю позже.
    Reboot


  • Обновление
    Обновляем коллекцию портов
    Обновляем исходный код
    Компилируем своё ядро, устанавливаем ядро и мир. Для чего нужно компилировать своё ядро? Во-первых, ядро по умолчанию содержит кучу ненужных драйверов для устройств. Мы их выкинем, что уменьшит размер файла ядра и сэкономит память. Во-вторых, в ядре по умолчанию нет нужных нам опций для брандмауера, nat-а, UTF и прочих радостей как, например, возможности получать температуру процессора.


  • Настройка
    • Добавляем обычного пользователя для того, чтобы заходить по ssh. Делается это командой
      # adduser
      
      В процессе создания пользователя не забудьте добавить его в дополнительную группу wheel.

    • Делаем UTF8 основной кодировкой ОС.
      После установки FreeBSD 11.1 в /etc/login.conf уже была записана нужная информация для russian, поэтому менять ничего не пришлось. Но лучше все проверить по инструкции ниже.
      Редактируем /etc/login.conf
      # ee /etc/login.conf
      
      russian|Russian Users Accounts:\
             :charset=UTF-8:\
             :lang=ru_RU.UTF-8:\
             :tc=default:
      
      Затем:
      # cap_mkdb /etc/login.conf
      
      И выполняем для каждого пользователя кроме root:
      # pw usermod -n $username -L russian
      
      Редактируем /etc/csh.cshrc
      setenv LANG ru_RU.UTF-8
      setenv LC_CTYPE ru_RU.UTF-8
      setenv LC_COLLATE POSIX
      setenv LC_ALL ru_RU.UTF-8
      
      Редактируем /root/.cshrc
      setenv LANG C
      setenv LC_CTYPE C
      setenv LC_COLLATE POSIX
      setenv LC_ALL C
      
    • Задаем нестандартный порт для sshd:
      # ee /etc/ssh/sshd_config
      
      Ищем в файле строку
      #Port 22
      
      раскомментируем её и зададим для подключения вместо стандартного 22-го порта свой, например, 1822
      Port 1822
      
      Перезагружаем sshd
      # /etc/rc.d/sshd restart
      
    • Включаем запись всех логов
      Редактируем файл /etc/syslog.conf. Ищем там строку
      #*.*                              /var/log/all.log
      
      и действуем согласно инструкции, которая записана в /etc/syslog.conf строчкой выше, после чего перезапускаем syslogd
      # /etc/rc.d/syslogd restart