FreeBSD:Способы установки

Материал из Энциклопедия для сетевых администраторов
Перейти к: навигация, поиск


Уровень сложности
Профессионал

Stub.png

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

Скрипт полной установки системы FreeBSD


Этап I. Загрузка

Ссылка на релиз 10.1

Образ CD/DVD

Качаем с официального сайта образ диска

Записываем образ на диск

USB диск

Качаем с официального сайта образ

Записываем образ на флешку

root # dd if=FreeBSD-10.1-RELEASE-amd64-memstick.img of=/dev/da0 bs=8k

PXE

Способ загрузки FreeBSD по сети с использованием технологии PXE.

Сервер

Каталог для загружаемой системы выбран /data/thinstation. Сюда помещаем систему, которая будет в последствии загружаться по сети. Это либо готовая сборка, либо скачанный с официального сайта и распакованный образ.

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

Ну и все это дело запускаем:

root # /etc/rc.d/nfsd start
root #/etc/rc.d/inetd start
root #/usr/local/etc/rc.d/isc-dhcpd start
root #/etc/rc.d/mountd onerestart

Клиент

Этап II. Разбивка диска

Пример разбивки:MBR Пример разбивки:GPT
UFS ZFS RAID UFS ZFS RAID
UFS ZFS UFS ZFS
MBR-UFS MBR-ZFS MBR-RAID MBR-RAID GPT-UFS GPT-ZFS MBR-RAID MBR-RAID

MBR

root # gpart create -s mbr da0

MBR-UFS

root # gpart add -t freebsd da0
root #gpart set -a active -i 1 da1
root #newfs -U -L FreeBSDonUSB /dev/da0s1a
root #mount /dev/da0s1a /mnt

MBR-ZFS

root # gpart create -s mbr da1
root #gpart add -t freebsd da1
root #gpart set -a active -i 1 da1
root #zpool create zroot /dev/da1s1
root # zpool set bootfs=zroot zroot
root #gpart bootcode -b /mnt2/boot/boot0 ad0

Install ZFS boot - Export zroot, before installing boot code

root # zpool export zroot

- Install the boot1 stage:

root # dd if=/mnt2/boot/zfsboot of=/dev/ad0s3 count=1

This may fail with an "operation not permitted" error message, since the kernel likes to protect critical parts of the disk. If this happens for you, run:

root # sysctl kern.geom.debugflags=0x10

- Install the boot2 zfs stage into the convienient hole in the ZFS filesystem on-disk format which is located just after the ZFS metadata (this is the seek=1024).

root # dd if=/mnt2/boot/zfsboot of=/dev/ad0s3 skip=1 seek=1024

- Import zroot to continue the install

root # zpool import zroot

GPT

root # gpart create -s gpt ada0

GPT-UFS

После установки не забываем записать загрузчик

root # gpart bootcode -b /mnt/boot/pmbr -p /mnt/boot/gptboot -i 1 /dev/ada0

GPT-ZFS

Создаем структуру папок с указанием параметров

Возможно указание сжатия некоторых директорий, таких как /usr/ports /usr/src

root # zfs create ${poolname}/var
root #zfs create ${poolname}/var/db
root #zfs create -o exec=off -o setuid=off ${poolname}/var/empty
root #zfs set readonly=on ${poolname}/var/empty
root # zfs create ${poolname}/var/tmp
root #zfs create ${poolname}/var/empty
root #zfs create -o compression=gzip ${poolname}/var/crash
root #zfs create ${poolname}/tmp
root #zfs create ${poolname}/usr
root #zfs create -o compression=gzip -o mountpoint=${mountpoint}/usr/src ${poolname}/src
root #zfs create -o compression=gzip -o mountpoint=${mountpoint}/usr/ports ${poolname}/ports
root #zfs create -o mountpoint=${mountpoint}/usr/ports/distfiles ${poolname}/distfiles
root #zfs create -o mountpoint=${mountpoint}/usr/home ${poolname}/home
root #zfs create -o mountpoint=${mountpoint}/usr/local ${poolname}/local
root #zfs create -o mountpoint=${mountpoint}/usr/obj ${poolname}/obj
root #zfs create ${poolname}/data
root #chmod 1777 ${mountpoint}/tmp ${mountpoint}/var/tmp

Устанавливаем необходимые параметры в файлы конфигурации

Включаем ZFS

root # echo '# ZFS' > ${mountpoint}/etc/rc.conf

Настраиваем полноценный запуск ZFS

root # echo 'zfs_load="YES"' > ${mountpoint}/boot/loader.conf
root #echo 'vfs.root.mountfrom="zfs:'${poolname}'"' >> ${mountpoint}/boot/loader.conf
root #echo 'vm.kmem_size="1024M"' >> ${mountpoint}/boot/loader.conf
root #echo 'vm.kmem_size_max="1024M"' >> ${mountpoint}/boot/loader.conf
root # echo 'vfs.zfs.arc="512M"' >> ${mountpoint}/boot/loader.conf
root #echo 'vfs.zfs.arc_max="512M"' >> ${mountpoint}/boot/loader.conf
root #echo 'vfs.zfs.vdev.cache.size="10M"' >> ${mountpoint}/boot/loader.conf
root #echo 'vfs.zfs.prefetch_disable=1' >> ${mountpoint}/boot/loader.conf

Обязательно добавляем чтоб компилировать систему с поддержкой загрузчика ZFS

root # echo 'LOADER_ZFS_SUPPORT=YES' >> ${mountpoint}/etc/src.conf

После установки не забываем записать загрузчик

root # gpart bootcode -b ${mountpoint}/boot/pmbr -p ${mountpoint}/boot/gptzfsboot -i 1 ${drive}

Этап III. Установка системы

Установка релиза с официального сайта

Через скрипт будет элегантнее

Сборка и установка собственной системы из исходников

Exclamation mark 3d.png
Внимание
Только для настоящих джедаев, собирающих световой меч из солнечных зайчиков

Предподготовка

root # mkdir /mnt/usr /mnt/usr/ports /mnt/usr/src /mnt/usr/obj
root #svn checkout svn://svn0.us-west.freebsd.org/base/stable/11/ /mnt/usr/src
root #svn checkout svn://svn0.us-west.freebsd.org/ports/head/ /mnt/usr/ports
root #svn checkout svn://svn0.us-west.freebsd.org/doc/head/ /mnt/usr/doc

Сборку и установку лучше производить скриптом, с использованием команды make • man/make • man/orig/make • Пример использования make:

-j4 Сборка осуществляется в 4 потока, актуально для 4 ядерных процессоров
buildworld Сборка мира
buildkernel Сборка ядра
KERNCONF Файл конфигурации ядра
DESTDIR Каталог-получатель собранной системы
TARGET_ARCH, TARGET Архитектура системы
__MAKE_CONF Полный путь до файла make.conf. По умолчанию используется /etc/make.conf
SRCCONF Полный путь до файла src.conf. По умолчанию используется /etc/src.conf
MAKEOBJDIRPREFIX Путь до сборочного каталога

Для сборки с ZFS следует внести изменения в соответствующий файл /etc/src.conf

root # echo 'LOADER_ZFS_SUPPORT=YES' >> /etc/src.conf

Не забываем про запись загрузчиков

root # gpart bootcode -b ${mountpoint}/boot/pmbr -p ${mountpoint}/boot/gptboot -i 1 ${drive}

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

Настраиваем конфигурационные файлы

Для USB flash накопителей, чтоб не вывести их преждевременно из строя:

FreeBSD:Настройка сетевых подключений

Firewall - руководство по боевому применению

SSH

Для запуска демона необходимо добавить в /etc/rc.conf запись

sshd_enable="YES"

DNS

NTP

Служба точного времени включается добавлением в /etc/rc.conf записи

# NTP
ntpd_enable="YES"

Добавление пользователей

root # echo 'PASSWORD' | pw useradd USERNAME -G wheel -s /bin/tcsh -m -d /home/username -h 0

Перезагрузка

root # shutdown -r now

Этап V. Установка необходимых программных пакетов

Установка утилиты portmaster. Её цель - актуальная сборка/пересборка пакетов.

# make -C /usr/ports/ports-mgmt/portmaster install clean

┌────────────────────────────────────────────────────────────────────┐
│ Options for portmaster 3.14_8                                      │
│ ┌────────────────────────────────────────────────────────────────┐ │
│ │   [ ] BASH        Install programmable completions for Bash    │ │
│ │   [ ] PKGNGPATCH  Enable PKGNG support                         │ │
│ │   [ ] ZSH         Install programmable completions for zsh     │ │
│ └────────────────────────────────────────────────────────────────┘ │
├────────────────────────────────────────────────────────────────────┤
│                   <  OK  >          <Cancel>                       │
└────────────────────────────────────────────────────────────────────┘

Пример файла list_ports

net/mpd5
databases/mysql55-server

Этап VI. Обновление и пересборка

Удаление ненужных файлов и библиотек

root # make BATCH_DELETE_OLD_FILES=true delete-old delete-old-libs

Использованные команды

Ссылки