FreeBSD

No soy responsable del uso que usted haga de la información contenida o vinculada desde estas páginas web.

sysctl

Memoria en bytes

El valor de la memoria real es antes de que el kernel y módulos se carguen.

sysctl hw.realmem
sysctl hw.physmem

Muestra lo que resta después de cargar el kernel y módulos.

Número de CPU activos

sysctl hw.ncpu`
``

## Instalacion de software

Las tareas en esta sección de software deben ser ejecutadas con
privilegios de root.

### Actualizacion del sistema

```sh
freebsd-update fetch install

Actualizacion de paquetes instalados

pkg upgrade

Actualización del arbol de ports

portsnap descarga y actualiza un snapshot del arbol de ports de FreeBSD. La opción auto también extre y descomprime el contenido.

portmaster ayuda a manejar las dependencis del arbol de ports.

Instala portmaster.

cd /usr/ports/ports-mgmt/portmaster
make deinstall
make distclean
make install clean

Actualiza el arbol de ports y arregla las dependencias.

portsnap auto
portmaster -ay

⚠️ En casos extremos las opciones -afD pueden ayudar con dependencias rotas o cíclicas, pero después de esto estas por tu cuenta y no pidas ayuda.

cd /usr/ports
portmaster -afD

Compilar ports de código fuente

Busca el paquete que quieres.

make search name=package

Revisa las opciones, configura e instala.

make showconfig
make config
make install clean

Gráficos

AMD

Tarjetas AMD están soportadas con el paquete o port graphics/drm-kmod. Para AMD hay 2 módulos disponibles basados en la generación del hardware:

  • amdgpu
  • radeonkms

⚠️ Actualmente los drivers de AMD están en conflicto con el framebuffer de EFI. Es necesario deshabilitar el framebuffer cuand se inicial vía UEFI.

/boot/loader.conf

kern.vty=vt
hw.syscons.disable=1
AMDGPU
sudo pkg install drm-kmod
sudo -i
cd /usr/ports/graphics/drm-kmod
make install clean
pw usermod -g video <user>

Ruby con rvm

gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys \
  409B6B1796C275462A1703113804BB82D39DC0E3 \
  7D2BAF1CF37B13E2069D6956105BD0E739499BDB

curl -sSL https://get.rvm.io | bash -s stable

source ~/.rvm/scripts/rvm

rvm reinstall 2.7.0 --disable-binary

curl -sSL https://get.rvm.io | bash -s stable --rails

⚠️ La instlacion de las llaves GPG falla si IPv6 esta deshabilitado. Para evitar que gpg dirmngr utilice IPv6 agrega la siguiente linea en ~/.gnupg/dirmngr.conf

disable-ipv6

Asegurate de matar cualquier proceso dirmngr que este corriendo y reintenta gpgp --recv-keys.

Redes

Rutas

netstat -rn

Configuración IP estática

IPv4

hostname="server.example.com"
ifconfig_re0="inet 10.10.10.100 netmask 255.255.255.0'
defaultrouter="10.10.10.1"

Configuración DHCP

IPv6

Configuración dinámica con SCAAL

ifconfig_re0_ipv6="inet6 accept_rtadv"
rtsold_enable="YES"

Servicios de Red

/etc/rc.d/ifnet restart
/etc/rc.d/routing restart
/etc/rc.d/rtsold re0 restart

Sistemas de Archivos

ZFS

Crear un dataset de reserva en el pool.

zfs create -o refreservation=20G zroot/reserved

Sistemas de Archivos Linux

El kernel soporta ext2 desde FreeBSD 2.2, el módulo ext2fs permite leer y escribir en sistemas de archivos ext2, ext3 y ext4 a partir de FreeBSD 12.0-RELEASE. ACLs y atributos extendidos están soportados, pero journaling y cifrado no están soportados.

Para acceder un sistema de archivos ext, carga el módulo del kernel.

kldload ext2fs

Monta el volumen ext.

mount -t ext2fs /dev/da0p1 /mnt

FreeBSD 11 y anteriores pueden acceder ext4 en modo lectura y escritúra usando sysutils/fusefs-ext2

Usuarios

Modificar usuarios

pw user mod <username> -G wheel

NFS

TODO

/usr/home --alldirs 192.168.1.x

service mountd reload

Solución de Problemas

Error: gunzip: (stdin): unexpected end of file

rm -rf /var/db/freebsd-update/files
freebsd-update fetch
freebsd-update upgrade

Jails

ezjail

Crear una jaula nueva

Asiga una IP para lo1 en el rango 127.0.0.1/8

ezjail-admin create <myjail> 'lo1|127.0.<sequencial>.1|192.168.1.5'

Inicia la jaula

ezjail-admin start <myjail>

Conectate a la consola de una jaula

ezjail-admin console <myjail>

⚠️ Configuraciones peligrosas pero necesarias en ocasiones

Algunos servicios como ping requiren raw sockets.

export jail_jailname_parameters="allow.raw_sockets=1"

PostgreSQL 12 requiere esto.

export jail_jailname_parameters="allow.sysvipc=1"

Virtualización con bhyve

Asegurate de tener soporte de virtualización en el CPU. PAra Intel busca EPT y UG en la línea VT-x o POPCNT in la línea Features2 de AMD en dmesg.

Carga el módulo bhyve.

kldload vmm

Crea una interface tap para el dispositivo de red de la máquina virtual.

TODO

ifconfig tap0 create
sysctl net.link.tap.up_on_open=1
ifcopnfig bridge0 create
ifconfig bridge0 addm igb0 addm tap0
ifconfig bridge0 up

vm-bhyve

vm-bhyve es una colección de scripts de shell para administrar máquinas virtuales de bhyve en FreeBSD.

Inicio rápido vm-bhyve

Solo los comandos necesarios para instalar y crear una máquina virtual con FreeBSD, sugiero leer la documentación en el sitio para instalar otros sistemas operativos y opciones avanzadas como UEFI.

pkg install vm-bhyve
zfs create pool/vm
sysrc vm_enable="YES"
sysrc vm_dir="zfs:pool/vm"
vm init
cp /usr/local/share/examples/vm-bhyve/*
/mountpoint/for/pool/vm/.templates/
vm switch create public
vm switch add public em0
vm iso https://download.freebsd.org/ftp/releases/ISO-IMAGES/11.2/FreeBSD-11.2-RELEASE-amd64-bootonly.iso
vm create -s 8G myguest
vm install [-f] myguest FreeBSD-11.2-RELEASE-amd64-bootonly.iso
vm console myguest

Para ubuntu => 18.04 es encesario ajustar la configuración de grub-bhyve para que inicie desde la partición adecuada. Agrega grub_run_partition="2"

vm configure myubuntu

Referencias

FreeBSD

No soy responsable del uso que usted haga de la información contenida o vinculada desde estas páginas web.

sysctl

Memoria en bytes

El valor de la memoria real es antes de que el kernel y módulos se carguen.

sysctl hw.realmem
sysctl hw.physmem

Muestra lo que resta después de cargar el kernel y módulos.

Número de CPU activos

sysctl hw.ncpu`
``

## Instalacion de software

Las tareas en esta sección de software deben ser ejecutadas con
privilegios de root.

### Actualizacion del sistema

```sh
freebsd-update fetch install

Actualizacion de paquetes instalados

pkg upgrade

Actualización del arbol de ports

portsnap descarga y actualiza un snapshot del arbol de ports de FreeBSD. La opción auto también extre y descomprime el contenido.

portmaster ayuda a manejar las dependencis del arbol de ports.

Instala portmaster.

cd /usr/ports/ports-mgmt/portmaster
make deinstall
make distclean
make install clean

Actualiza el arbol de ports y arregla las dependencias.

portsnap auto
portmaster -ay

⚠️ En casos extremos las opciones -afD pueden ayudar con dependencias rotas o cíclicas, pero después de esto estas por tu cuenta y no pidas ayuda.

cd /usr/ports
portmaster -afD

Compilar ports de código fuente

Busca el paquete que quieres.

make search name=package

Revisa las opciones, configura e instala.

make showconfig
make config
make install clean

Gráficos

AMD

Tarjetas AMD están soportadas con el paquete o port graphics/drm-kmod. Para AMD hay 2 módulos disponibles basados en la generación del hardware:

  • amdgpu
  • radeonkms

⚠️ Actualmente los drivers de AMD están en conflicto con el framebuffer de EFI. Es necesario deshabilitar el framebuffer cuand se inicial vía UEFI.

/boot/loader.conf

kern.vty=vt
hw.syscons.disable=1
AMDGPU
sudo pkg install drm-kmod
sudo -i
cd /usr/ports/graphics/drm-kmod
make install clean
pw usermod -g video <user>

Ruby con rvm

gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys \
  409B6B1796C275462A1703113804BB82D39DC0E3 \
  7D2BAF1CF37B13E2069D6956105BD0E739499BDB

curl -sSL https://get.rvm.io | bash -s stable

source ~/.rvm/scripts/rvm

rvm reinstall 2.7.0 --disable-binary

curl -sSL https://get.rvm.io | bash -s stable --rails

⚠️ La instlacion de las llaves GPG falla si IPv6 esta deshabilitado. Para evitar que gpg dirmngr utilice IPv6 agrega la siguiente linea en ~/.gnupg/dirmngr.conf

disable-ipv6

Asegurate de matar cualquier proceso dirmngr que este corriendo y reintenta gpgp --recv-keys.

Redes

Rutas

netstat -rn

Configuración IP estática

IPv4

hostname="server.example.com"
ifconfig_re0="inet 10.10.10.100 netmask 255.255.255.0'
defaultrouter="10.10.10.1"

Configuración DHCP

IPv6

Configuración dinámica con SCAAL

ifconfig_re0_ipv6="inet6 accept_rtadv"
rtsold_enable="YES"

Servicios de Red

/etc/rc.d/ifnet restart
/etc/rc.d/routing restart
/etc/rc.d/rtsold re0 restart

Sistemas de Archivos

ZFS

Crear un dataset de reserva en el pool.

zfs create -o refreservation=20G zroot/reserved

Sistemas de Archivos Linux

El kernel soporta ext2 desde FreeBSD 2.2, el módulo ext2fs permite leer y escribir en sistemas de archivos ext2, ext3 y ext4 a partir de FreeBSD 12.0-RELEASE. ACLs y atributos extendidos están soportados, pero journaling y cifrado no están soportados.

Para acceder un sistema de archivos ext, carga el módulo del kernel.

kldload ext2fs

Monta el volumen ext.

mount -t ext2fs /dev/da0p1 /mnt

FreeBSD 11 y anteriores pueden acceder ext4 en modo lectura y escritúra usando sysutils/fusefs-ext2

Usuarios

Modificar usuarios

pw user mod <username> -G wheel

NFS

TODO

/usr/home --alldirs 192.168.1.x

service mountd reload

Solución de Problemas

Error: gunzip: (stdin): unexpected end of file

rm -rf /var/db/freebsd-update/files
freebsd-update fetch
freebsd-update upgrade

Jails

ezjail

Crear una jaula nueva

Asiga una IP para lo1 en el rango 127.0.0.1/8

ezjail-admin create <myjail> 'lo1|127.0.<sequencial>.1|192.168.1.5'

Inicia la jaula

ezjail-admin start <myjail>

Conectate a la consola de una jaula

ezjail-admin console <myjail>

⚠️ Configuraciones peligrosas pero necesarias en ocasiones

Algunos servicios como ping requiren raw sockets.

export jail_jailname_parameters="allow.raw_sockets=1"

PostgreSQL 12 requiere esto.

export jail_jailname_parameters="allow.sysvipc=1"

Virtualización con bhyve

Asegurate de tener soporte de virtualización en el CPU. PAra Intel busca EPT y UG en la línea VT-x o POPCNT in la línea Features2 de AMD en dmesg.

Carga el módulo bhyve.

kldload vmm

Crea una interface tap para el dispositivo de red de la máquina virtual.

TODO

ifconfig tap0 create
sysctl net.link.tap.up_on_open=1
ifcopnfig bridge0 create
ifconfig bridge0 addm igb0 addm tap0
ifconfig bridge0 up

vm-bhyve

vm-bhyve es una colección de scripts de shell para administrar máquinas virtuales de bhyve en FreeBSD.

Inicio rápido vm-bhyve

Solo los comandos necesarios para instalar y crear una máquina virtual con FreeBSD, sugiero leer la documentación en el sitio para instalar otros sistemas operativos y opciones avanzadas como UEFI.

pkg install vm-bhyve
zfs create pool/vm
sysrc vm_enable="YES"
sysrc vm_dir="zfs:pool/vm"
vm init
cp /usr/local/share/examples/vm-bhyve/*
/mountpoint/for/pool/vm/.templates/
vm switch create public
vm switch add public em0
vm iso https://download.freebsd.org/ftp/releases/ISO-IMAGES/11.2/FreeBSD-11.2-RELEASE-amd64-bootonly.iso
vm create -s 8G myguest
vm install [-f] myguest FreeBSD-11.2-RELEASE-amd64-bootonly.iso
vm console myguest

Para ubuntu => 18.04 es encesario ajustar la configuración de grub-bhyve para que inicie desde la partición adecuada. Agrega grub_run_partition="2"

vm configure myubuntu

Referencias