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
