Создаем файловую систему jail.

# zfs create -o mountpoint=/usr/local/jails zroot/jails

Далее cоздаем файловую систему basejail.

# zfs create zroot/jails/basejail

Скачиваем и распаковываем исходники.

# cd /tmp # wget https://download.freebsd.org/ftp/releases/amd64/12.0-RELEASE/base.txz # wget https://download.freebsd.org/ftp/releases/amd64/12.0-RELEASE/lib32.txz # tar xvf base.txz -C /usr/local/jails/basejail # tar xvf lib32.txz -C /usr/local/jails/basejail

Обновляем basejail.

# freebsd-update -b /usr/local/jails/basejail/ fetch install

Настраиваем basejail.

# cd /usr/local/jails/basejail # echo 'nameserver 8.8.8.8' > etc/resolv.conf # echo 'ssshd_enable="YES"' > etc/rc.conf # echo 'PermitRootLogin yes' >> etc/ssh/sshd_config

Создаем снэпшот, из которого будем клонировать новые клетки.

# zfs snapshot zroot/jails/Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.

Выводим список снэпшотов.

# zfs list -t snapshot

Создаем из снэпшота новую клетку.

# zfs clone zroot/jails/Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра. zroot/jails/jail01

Включаем jail в системе.

# sysrc jail_enable="YES"

Настраиваем jail.

# vi /etc/jail.conf

exec.start = "/bin/sh /etc/rc"; exec.stop = "/bin/sh /etc/rc.shutdown"; exec.clean; mount.devfs; path = "/usr/local/jails/$name"; allow.raw_sockets = 1; allow.sysvipc = 1; jail01 { host.hostname = "jail01.lan"; interface = "em0"; ip4.addr = 192.168.100.190; }

Стартуем jail.

# service jail start

Выводим список клеток.

# jls

Попасть внутрь клетки.

# jexec jail01