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