Páginas

lunes, 19 de diciembre de 2022

Tamaño de la fuente en el framebuffer de arranque FreeBSD

En partátiles con pantalla de 13 y 14 pulgadas se hace difícil leer los mensajes en el framebuffer de arranque en FreeBSD por la configuración predeterminada del tamaño de la fuente en FreeBSD.

Pero es posible cambiar a una fuente más pequeña modificando el parámetro screen.font en archivo /boot/loader.conf. Es cuestión de probar diferentes configuraciones para saber cual resulta más comoda. En mi caso he optado por 8x16.

$ cat /boot/loader.conf | grep screen.font


FreeBSD es genial!.

domingo, 18 de diciembre de 2022

Replicar, Recuperar Pool Root FreeBSD ZFS

NFS Sistema de Archivos en Red FreeBSD
Montaje de Sistema de Archivos NFS Usando Autofs
Replicar, Recuperar Pool Root ZFS FreeBSD

Contruir o reconstruir un sistema a partir de instantáneas (snapshot)

Replicar instantáneas en otro sistema es una característica de OpenZFS que mejora la administración de datos, proporciona un mecanismo para manejar una falla de hardware con una pérdida de datos y un tiempo de inactividad mínimos. La replicación también es una forma conveniente de transferir una copia de un sistema existente a otro, por ejemplo, implementar un laboratorio completo de sistemas similares.

Vamos a enviar una copia de seguridad al servidor vía ssh utilizando zfs send receive


Servidor: tormenta FreeBSD 13.1 NUC 11 Essential DDR4-2933 CPU 4 \
          32GB RAM M.2 NVMe PCIe 3.0
Cliente: solaris FreeBSD 13.1 Dell Latitude 7390 DDR4-2400 CPU 8 \
          16GB RAM M.2 NVMe PCIe 3.0

% cat /etc/hosts | grep tormenta
...
192.168.88.160          tormenta
...

Configurar acceso SSH

OpenZFS utiliza SSH para cifrar la replicación durante la transferencia de red.

Puede generar un par de claves con ssh-keygen y luego enviar una copia de la clave pública al servidor. Presione enter en todas las indicaciones para aceptar los valores predeterminados y no solicitar una frase de contraseña.

Dado que root enviará la replica, cambie esta línea en el archivo de configuración del demonio SSH /etc/ssh/sshd_config


#PermitRootLogin no

a


PermitRootLogin yes

Recargar la configuración del demonio SSH


service sshd reload 

Envíe una copia de la clave pública al sistema recector (tormenta)


cat ~/.ssh/id_rsa.pub | ssh 192.168.88.160 'cat >>.ssh/authorized_keys' 
Password for root@192.168.88.160: 
exit

A continuación creamos un conjunto de datos para almacenar las instatáneas replicadas /usr/backup/poolrecovery.


tormenta # zfs create canmount=off zroot/usr/backup

tormenta # zfs get mounted zroot/usr/backup
NAME              PROPERTY  VALUE    SOURCE
zroot/usr/backup  mounted   no       -

tormenta # zfs create zroot/usr/backup/poolrecovery

# zfs get atime,compression,snapdir zroot/usr/backup
NAME              PROPERTY     VALUE           SOURCE
zroot/usr/backup  atime        off             inherited from zroot
zroot/usr/backup  compression  lz4             inherited from zroot
zroot/usr/backup  snapdir      visible         inherited from zroot

Creamos la instantánea recursiva del conjunto de datos del pool zroot que incluye los sistemas de archivos secundarios


solaris # zfs snapshot -r zroot@zroot.snap1_dell

Comprobar los recursos compartidos por el servidor tormenta


solaris % showmount -e tormenta
Exports list on tormenta:
...
/usr/backup/poolrecovery           192.168.88.0 
...

Montar el recurso compartido


# mount -o soft,intr,rw tormenta:/usr/backup/poolrecovery /mnt

Enviar la instantánea de forma recursiva, redirigimos (como archivo comprimido .gz) a la ubicación compartida para poder acceder a esta ubicación al construir el cliente


# zfs send -Rv zroot@snap1_dell | gzip > /mnt/zroot.snap1.gz

Proceso de recuperación

Asumimos que ha realizado una instalación limpia en el sistema a restaurar eligiendo el particionado auto ZFS del instalador de FreeBSD. Es recomendable que antes de instalar y desde la shell borrar todos los errores asociados a los dispositivos virtuales del grupo y borrar los recuentos de errores de datos asociados al grupo.


# zpool labelclear -f /dev/nvd0

Iniciar con una memoria usb que contenga una img de FreeBSD 13.1 (RELEASE actual)

En la pantalla de instalacion


Install Shell Live cd

Elegir (live cd)


login: root

Intro (no necesita contrasena)

Iniciar la red con el comando


dhclient em0

Ver información de la conexión


# ifconfig

Comprobar conectividad


# ping freebsd.org

Configurar ssh

configurar un sshd único para esta sesión.


# mkdir /tmp/etc
# mount_unionfs /tmp/etc /etc
# edit /etc/ssh/sshd_config

editar /etc/ssh/sshd_config y cambiar la configuración de PermitRootLogin de no a sí y eliminar el comentario, puede utilizar Ctrl-Y para buscar "root".

Establecer una contrasena para el usuario root (no teclee root directamente, utilice passwd root)


# passwd root

Importar el zpool


# zpool import -fR /tmp/montado zroot

Incluir la direccion IP en el archivo /etc/exports del servidor nfs tormenta

Agregar en el archivo /etc/rc.conf la línea


nfs_client_enable

# service nfsclient start
NFS access cache time=60

Montar recurso compartido NFS


# mount -o soft,intr,rw 192.168.88.51:/usr/backup/poolrecovery /mnt

ls /mnt/
zroot.snap1.gz 

Ya tenemos el archivo que utilizaremos

Lanzamos el comando, gzcat descomprime el archivo, lee el archivo y la operacion de lectura redirige al comando receive, para recibir el sistema de archivos en el pool zroot


# gzcat /mnt/zroot.snap1.gz | zfs receive -Fv zroot

Establecer el sistema de archivos de arranque

zpool set bootfs=zroot/ROOT/default zroot

# umount -f /tmp/montado

Reiniciar el sistema


# reboot

Sí, ha funcionado

En este punto tenemos todo tal y como estaba en el momento en que se crearon las instantáneas

Utilizar el usuario no privilegiado carlos para el envío y recepción de instantáneas

Permisos para el envío de instantáneas


 zfs allow -u carlos create,destroy,hold,mount,receive,send,snapshot zroot

Permisos para la recepción de instantáneas


 zfs allow -u carlos \
 create,destroy,mount,mountpoint,quota,receive,send,snapdir \
 zroot
FreeBSD es genial!.

Beadm ZFS Boot Environments FreeBSD

Desarrollador: vermaden

https://vermaden.wordpress.com/2022/03/14/zfs-boot-environments-revolutions/comment-page-1/

Instalar beadm


pkg install -y beadm

Listar entornos de arranque


beadm list
BE                     Active Mountpoint  Space Created
default                -      -            2.0M 2022-12-15 12:19
pkg_update_171222      -      -            7.0G 2022-12-17 21:49

# beadm create pkg_upgrade_1712222335

Activar el be


# beadm activate pkg_upgrade_1712222335
Activated successfully

Listar boot environments


BE                     Active Mountpoint  Space Created
default                N      -            2.0M 2022-12-15 12:19
pkg_update_171222      -      -            7.0G 2022-12-17 21:49
pkg_upgrade_1712222335 R     /           34.2G 2022-12-17 23:35

N = activo ahora
R = estara activo el proximo reinicio

Reiniciar


# reboot

beadm list
BE                     Active Mountpoint  Space Created
default                -      -            2.0M 2022-12-15 12:19
pkg_update_171222      -      -            7.0G 2022-12-17 21:49
pkg_upgrade_1712222335 NR     /           34.2G 2022-12-17 23:35

mount
zroot/ROOT/pkg_upgrade_1712222335 on / (zfs, local, noatime, nfsv4acls)

Ya puede instalar los ultimos parches de FreeBSD sin estropear su sistema predeterminado.


pkg update
pkg upgrade
freebsd-update fetch
freebsd-update install

reroot reroot Utiliza la función 'reroot' del comando reboot(8) -r.

reroot sólo está presente en beadm, le dira a freebsd que vuelva a rootear su nucleo en ejecucion en el be especificado. Ahorra mucho tiempo en un un servidor o máquina física.


beadm reroot pkg_upgrade_1712202335

Genial

beadm


sage:
beadm activate <
  beadm create 
  beadm create 
  beadm destroy 
  beadm export 
  beadm import
  beadm list 
  beadm rename 
  beadm mount 
  beadm 
  beadm chroot 
  beadm 
  beadm version
FreeBSD es genial!.

viernes, 16 de diciembre de 2022

Montaje de Sistema de Archivos NFS autofs FreeBSD

NFS Sistema de Archivos en Red FreeBSD
Montaje de Sistema de Archivos NFS Usando Autofs
Replicar, Recuperar Pool Root ZFS FreeBSD

Automount NFS FreeBSD ZFS

Si utilizamos con anterioridad el método de montaje NFS usando /etc/fstab, comentamos la línea siguiente el archivo /etc/fstab


...
# nfs export servidor tormenta
#tormenta:/usr/backup/poolrecovery  /mnt/poolrecovery    nfs  rw,soft,intr    0   0
...

La opción mas interesante en el montaje de recursos compartidos NFS, es el uso del servicio autofs. Autofs usa el demonio automount para administrar puntos de montaje y montarlos solo de forma dinámica al acceder a ellos.

Autofs consulta el archivo de configuración del mapa maestro /etc/auto_master para determinar los puntos de montaje definidos. Luego, inicia un proceso de montaje automático. Cada línea del mapa maestro define un punto de montaje y un archivo de mapa independiente que define los sistemas de archivos que se montarán bajo este punto de montaje. por ejemplo, el /etc/auto.misc define puntos de montaje en el directorio /misc; esta relación se definiría en el /etc/auto_master.


Cada entrada en auto_master tiene 
1 Punto de montaje. 
2 La ubicación del archivo de mapa

Para montar el directorio compartido /usr/backup/poolrecovery del servidor tormenta en el punto de montaje /misc/poolrecovery agregamos la siguiente línea al archivo /etc/auto_master


/misc   /etc/auto.misc

Luego, agregamos esta línea al archivo /etc/auto.misc


poolrecovery    -rw,soft,intr,tcp,rsize=8192,wsize=8192 \
tormenta:/usr/backup/poolrecovery

El primer campo en /etc/auto.misc es el nombre del subdirectorio /misc y se crea dinámicamente a traves de automount. El segundo campo es las opciones de montaje y el tercer campo es la ubicación de la exportación NFS que incluye el nombre de host y el directorio.

El directorio /misc debe existir en el sistema de archivos local y no debe contener subdirectorio en /misc

Reiniciamos el servicio


# service automountd restart
Stopping automountd.
Waiting for PIDS: 37558.
Starting automountd.

Tenemos que habilitar autofs agregando autofs_enable=YES al archivo /etc/rc.conf


sysrc autofs_enable=YES

Los usuarios sin privilegios pueden montar y desmontar sistemas de archivos agregamos esta linea al archivo /etc/sysctl.conf para que los cambios sean permanentes


echo vfs.usermount=1 >> /etc/sysctl.conf

sysctl vfs.usermount=1
vfs.usermount: 0 -> 1

La salida del comando mount


% mount | grep autofs
map -hosts on /net (autofs)
map /etc/auto.misc on /misc (autofs)
map /etc/auto.mits on /mits (autofs)
map /etc/auto.mius on /mius (autofs)
map /etc/auto.mivs on /mivs (autofs)
map /etc/auto.miys on /miys (autofs)

Ahora vamos a intentar entrar en el subdirectorio poolrecovery. Tecleando /misc y pulsando la tecla tabulador, se monta automáticamente el recurso compartido al que se quiere acceder.


$ cd /misc/
solaris:~ % cd /misc/poolrecovery/

solaris:/misc/poolrecovery % ls
zroot.snap2_dell.gz  zroot.snap3_dell.gz

En este punto la salida del comando mount tendra este aspecto


.....
zroot/usr/jails on /usr/jails (zfs, local, noatime, nfsv4acls)
map -hosts on /net (autofs)
map /etc/auto.misc on /misc (autofs)
map /etc/auto.mits on /mits (autofs)
map /etc/auto.mius on /mius (autofs)
map /etc/auto.mivs on /mivs (autofs)
map /etc/auto.miys on /miys (autofs)
tormenta:/usr/backup/poolrecovery on /misc/poolrecovery (nfs, automounted)
FreeBSD es genial!.

domingo, 4 de diciembre de 2022

NFS Sistema de Archivos en Red FreeBSD ZFS

NFS Sistema de Archivos en Red FreeBSD
Montaje de Sistema de Archivos NFS Usando Autofs
Replicar, Recuperar Pool Root ZFS FreeBSD

NFS FreeBSD ZFS utilizando /etc/fstab

NFS Network File System es un protocolo de nivel de aplicación, según el modelo OSI, que permite compartir, en una red local, directorios y particiones entre sistemas tipo Unix como si se tratara de locales. NFS está incluido por defecto en los sistemas operativos UNIX.

La utilidad nfsd se ejecuta en un equipo servidor para atender las peticiones NFS de los equipos de las máquinas cliente. Para que una máquina funcione como servidor, debe ejecutarse al menos un nfsd.

Configurar el servidor NFS

Acceder al servidor a través de SSH con clave pública


% ssh carlos@tormenta
% su
Password:
root@tormenta:/home/carlos #

Active el soporte del servidor NFS con las siguientes opciones de rc.conf. Aunque no todas opciones son estrictamente necesarias para todos los entornos, activarlas todas garantiza el mayor rango de compatibilidad con NFS y un rendimiento adecuado.


sysrc nfs_server_enable="YES"
sysrc rpcbind_enable="YES"
sysrc mountd_enable="YES"
sysrc rpc_lockd_enable="YES"
sysrc rpc_statd_enable="YES"

Archivo /etc/rc.conf


...
nfs_server_enable="YES"
rpcbind_enable="YES"
mountd_enable="YES"
rpc_statd_enable="YES"
rpc_lockd_enable="YES"
...

Reiniciar el sistema.

El demonio rpcbind mapea las llamadas a procedimientos remotos (RPC) en direcciones de red locales. Cada cliente NFS pregunta al demonio rpcbind del servidor dónde puede encontrar un demonio mountd al que conectarse.

El demonio mountd escucha los puertos de alta numeración para las peticiones de montaje de los clientes. Al activar el servidor NFS también se inicia nfsd, que se encarga de la solicitud de archivos. NFS asegura el bloqueo de archivos con rpc.lockd, y rpc.statd monitoriza los clientes NFS para que el servidor NFS pueda liberar recursos cuando el host desaparezca.

Una vez que el NFS esté funcionando, la salida de sockstat mostrará rpc.lockd, rpc.statd, nfsd, mountd, y rpcbind escuchando.

El servidor NFS debería auto negociar las conexiones de forma transparente. También puede ajustar su servidor NFS nfsd para que se adapte mejor a sus clientes y esto se hace con nfsd al inicio, con la opción (/etc/rc.conf) opción nfs_server_flags.

Comprobar que los servicios están activos


# service -e | grep rpcbind
/etc/rc.d/rpcbind
# service -e | grep mountd
/etc/rc.d/mountd
# service -e | grep lockd
/etc/rc.d/lockd
# service -e | grep statd
/etc/rc.d/statd

NFS puede funcionar sobre TCP o UDP que es el protocolo de transporte tradicional de NFS.

Cuando un servidor tiene varias direcciones IP es una buena práctica indicar al servidor NFS que utilice sólo una dirección con -h y la IP del servidor.

Que NFS utilice los protocolos de transporte UDP y TCP y se enlace a la dirección IP 192.168.88.160


nfs_server_flags="nfsd -u -t -h 192.168.88.160"

Configurar NFS Exports

Determinar que puede compartir o exportar el servidor.

FreeBSD le permite configurar las exportaciones a través de:

1. Fichero /etc/exports

2. Un servidor basado en ZFS, a través de la propiedad sharenfs de cada conjunto de datos. El servidor creará el archivo de exportaciones ZFS /etc/zfs/exports en base a estas propiedades. Ambos tienen el mismo formato pero no es buena práctica usar ambos métodos al mismo tiempo. Si utiliza el método ZFS nunca edite /etc/zfs/exports manualmente.

Independientemente del método elegido /etc/exports debe existir

Crear /etc/exports


# touch /etc/exports

NFS a través de /etc/exports

Configurar una exportación

Cada entrada del exports tiene hasta tres partes la primera obligatoria


1. Directorios o particiones a exportar
2. Opciones sobre esa exportación
3. Clientes que pueden conectarse

Dispositivo de disco y clientes sólo pueden tener una línea en el archivo de exportación. De modo que si, p.e., /var/log y /var/mail están en la misma partición, para exportar a un cliente en particular, ambos dos deben aparecer en la misma línea. No puede exportar /var/log y /var/mail a un cliente con permisos diferentes.

Tampoco tiene que exportar todo el dispositivo de disco; puede exportar un directorio dentro de una partición. Si las particiones /var y /var/mail están separadas, la exportación de /var no exporta automáticamnet /var/mail

Esta línea en /etc/exports exporta el directorio /home/mycloud a todos los hosts, no tiene opciones ni restricciones de host


/usr/home/mycloud

Una vez editado el archivo /etc/exports:


# service mountd reload

En NFSv2 y NFSv3 los usuarios son identificados por UID, por ejemplo, en mi portátil el usuario carlos tiene el UID 1001. En el servidor NFS carlos también tiene el UID 1001. Los mismos privilegios en el servidor y en el portátil.

En una red pequeña se puede sincronizar /etc/master.passwd en sus sistemas o asignar el mismo UID.

Si desea que todas las peticiones desde root en un cliente se ejecuten como el usuario nfsroot (uid=10000) en el servidor. Utilizando cuidadosamente los grupos, puede permitir que este usuario tenga un acceso limitado a los archivos.

La opción maproot se usa para asignar root a otro usuario. Por ejemplo, asignar el UID 0 (root) en el cliente, al UID 10000 en el servidor


/usr/home/mycloud   -maproot=10000

Exportando múltiples directorios

Todos los directorios en la misma línea de /etc/exports separados por espacio


/var/log /usr/src/ /usr/obj -maproot=carlos

Los clientes pueden montar cualquiera de estos directorios y las peticiones de root se asignan al usuario carlos

Restricción de clientes

Sólo los clientes listados prodrán acceder a la exportación NFS.


/var/log /usr/src/ /usr/obj -maproot=carlos 192.168.88.100 192.168.88.51

Permitir que cualquier cliente con una dirección IP que empiece en 192.168.88 acceda a los recursos compartidos del servidor NFS.


/var/log /usr/src/ /usr/obj -maproot=carlos -network 192.168.88 -mask 255.255.255.0

El cliente NFS de la dirección IP 192.168.88.101 puede montar la totalidad de /usr y puede hacerlo como root


/var/log /usr/src/ /usr/obj -maproot=carlos 192.168.88.100
/usr -maproot=0 192.168.88.101

NFS a través de ZFS

sharenfs es la propiedad utilizada para activar, desactivar y configurar exportaciones NFS. Se establece en on para compartir globalmente un conjunto de datos y todos sus decendientes.

Este conjunto de datos o cualquiera de sus hijos puede ser montado por cualquier persona, sin restricciones y sin opciones, a menos que tenga control de acceso, como un cortafuegos. Crear un conjunto de datos con la propiedad canmount=off; esta propiedad controla si un conjunto de datos puede ser montado o no. Es lo que querrás hacer si no quieres romper los entornos de arranque (Boot Environments).


# zfs create -o canmount=off zroot/usr/backup
# zfs get mounted zroot/usr/backup
NAME              PROPERTY  VALUE    SOURCE
zroot/usr/backup  mounted   no       -

Ahora puede crear un conjunto de datos separados.


# zfs create zroot/usr/backup/nfsshare
# chown carlos:carlos zroot/usr/backup/nfsshare

Crear el dataset poolrecovery que será utilizado, posteriormente, para duplicar 
un sistema completo FreeBSD ZFS
# zfs create zroot/usr/backup/poolrecovery

Empezar a compartir sharenfs=on


# zfs set sharenfs=on zroot/usr/backup/nfsshare
# zfs set sharenfs=on zroot/usr/backup/poolrecovery

Para dejar de compartir el conjunto de datos, se establece sharenfs en off


# zfs set sharenfs=off zroot/dellhome

Establecer un usuario maproot y restringir los clientes a la red local


# zfs set sharenfs="-maproot=0 192.168.88.51" zroot/usr/backup/poolrecovery
# zfs set sharenfs="-network 192.168.88.0/24 -maproot=carlos" zroot/usr/backup/nfsshare

El uso de ZFS es menos flexible para la gestión de exportaciones NFS porque todos los hosts permitidos obtienen las mismas opciones.

ZFS crea automáticamnet el Fichero /etc/exports


cat /etc/zfs/exports
# !!! DO NOT EDIT THIS FILE MANUALLY !!!

/usr/backup/nfsshare    -network 192.168.88.0/24 -maproot=carlos
/usr/backup/poolrecovery     -maproot=0 192.168.88.51

Mapeos de host a IP
...
192.168.88.160          solaris
192.168.88.51           tormenta
...

habilitar el cliente NFS


Mapeos de host a IP
...
192.168.88.51           tormenta
192.168.88.160          solaris
...

Agregar al archivo /etc/rc.conf


sysrc nfs_client_enable=YES
Listar todas las exportaciones NFS disponibles para un cliente

$ showmount -e tormenta
Exports list on tormenta:
/usr/backup/poolrecovery           192.168.88.51
/usr/backup/nfsshare               192.168.88.0

Montar directorios o sistemas de ficheros exportados por el servidor NFS.


# mkdir /mnt/nfs
# mount tormenta:/nfsshare /mnt/nfs

Opciones de montaje

Para acceder a un servidor NFS utilizando sólo UDP con la opción de montaje udp (-u).

Si el servidor NFS desaparece, los programas en el cliente que intenten acceder al sistema de archivos NFS se cuelgan. Por tanto, su montaje NFS tiene que ser interrumpible con la opción intr; podrá interrumpir los procesos colgados con ctrl-C.

Utilizar un montaje suave (soft) FreeBSD notificará a los programas que el fichero ya no está disponible.

Montar Directorios con las opciones soft,intr,rw


# umount /mnt/nfs
# mount -o soft,intr,rw tormenta:/zroot/nfsshare /mnt/nfs
# mount
...
tormenta:/usr/backup/poolrecovery on /mnt/nfs (nfs)
...

Podria anadir esto a /etc/fstab para el mountaje automático


tormenta:/usr/backup/poolrecovery	/mnt/nfs   nfs  rw,soft,intr   0  0

Que versión de NFS estamos utilizando


# nfsstat -m
solaris:/rpool/nfssolaris on /media/nfs
nfsv3,tcp,resvport,nconnect=1,soft,intr,cto,lockd,sec=sys,acdirmin=3,acdirmax=60,\
acregmin=5,acregmax=60,nametimeo=60,negnametimeo=60,rsize=65536,wsize=65536,\
readdirsize=65536,readahead=1,wcommitsize=16777216,timeout=120,retrans=2

https://gnulinuxcodigo.blogspot.com/2022/12/montaje-de-sistemas-de-archivos-nfs.html


FreeBSD es genial!

martes, 25 de octubre de 2022

Instalar Wine FreeBSD 13.1

Como instalar Wine en FreeBSD 13.1


Instalar paquetes necesarios


$ pkg install wine-gecko
$ pkg install wine-mono
$ pkg install wine

Wine requiere procfs(5) montado en /proc. Puede hacerlo manualmente a través de


$ mount -t procfs proc /proc

Hazlo permanente a través de algo como lo siguiente en /etc/fstab

  
 proc   /proc   procfs   rw   0 0

Instalar soporte 32 bits


$ /usr/local/share/wine/pkg32.sh install wine mesa-dri

Crear un directorio en home del usuario llamado bin (opcional) donde se almacenen los .exe


$ mkdir /usr/home/carlos/bin

Descargar winbox64.exe


$ ls bin/
winbox64.exe

Ejecutar winbox con wine como usuario no privilegiado


$ wine /home/carlos/bin/winbox64m.exe &

 

FreeBSD es genial!.

sábado, 22 de octubre de 2022

FreeBSD 13.1 Como Sistema Operativo de Escritorio

Fuente

https://www.daemonology.net/blog/2020-05-22-my-new-FreeBSD-laptop-Dell-7390.html


Dell Latitude 7390 Intel i5 8th Gen
CPU: Intel(R) Core(TM) i5-8350U CPU @ 1.70GHz (L3 cache 6M)
FreeBSD/SMP: Multiprocessor System Detected: 8 CPUs
Memoria 16 GB RAM
Disco 500 GB Pcie M.2 Nvme
Una pantalla 13.3" 1920x1080 (non-touch)
Intel(R) Wireless WiFi based driver for FreeBSD
iwm0: Intel(R) Dual Band Wireless AC 8265
Una Bateria 60 W-hour

Instalación

Enlace de descargas de FreeBSD

Elija la arquitectura correcta para su sistema, por lo regular, amd64

Descargar una imagen completa para grabar en una memoria USB

Grabar la imagen utilizando disk destroyer (dd)


$ xunz FreeBSD-13.1-RELEASE-amd64-memestick.img.xz
$ sudo dd if=./FreeBSD-13.1-RELEASE-amd64-memestick.img of=/dev/sdx status=progress
$ sudo pkg install eject
$ rehash
$ sudo eject /dev/sdx

Antes de instalar


- Deshabilitar arranque seguro desde la BIOS
- Habilitar el arranque USB
- Seleccione el dispositivo de arranque en el momento del inicio

Iniciar instalación

FreeBSD tiene un instalador controlado por menús que guía al usuario a través de varios pasos:


1. establecer mapa del teclado
2. establecer nombre de host
3. seleccionar conjuntos

Hay muchos conjuntos para elegir. Los nuevos usuarios probablemente quieran instalarlos todos. Por lo general, solo instalo el lib32 establecer y agregar el resto más tarde.

Particionado

bsdinstall facilita la partición de sus unidades. La opción Auto (ZFS) es probablemente lo que desea.

En el Auto (ZFS) menú, para una instalación de un solo disco duro. Seleccione su disco duro.

Si quiere el cifrado de disco completo, seleccione el Encrypt Disks opción.

También aumente el tamaño de intercambio swap. El tamaño del intercambio igual a la RAM física (16 GB en este caso).

Si seleccionó Encrypt Disks, también debe seleccionar Encrypt Swap

Cuando haya terminado, continúe con la instalación. Recibirá un mensaje de confirmación que le preguntará si desea destruir el disco que seleccionó. Esta es tu última oportunidad de volver atrás.

Si seleccionó Encrypt Disks se le presentará una solicitud de contraseña. Esta es la contraseña de cifrado del disco, no una contraseña de usuario.

Espere a que se instalen los conjuntos

Configurar usuario raíz

Después de instalar los conjuntos, establecerá una contraseña de root.

Configuración de red

Si su tarjeta inalámbrica es compatible, todas las partes difíciles ya están listas. Si su tarjeta inalámbrica no es compatible, conecte un cable ethernet para compilar los controladores en el kernel.

Seleccione su tarjeta (em0 ethernet, las tarjetas wifi llevan el nombre de sus controladores)

Si elige wifi, el instalador buscará redes y le dará un menú para seleccionar una. Si la red está encriptada, se le presentará una solicitud de contraseña.

Configuración de fecha y hora

Configuración de servicio

Se le presentará un menú que habilita/deshabilita servicios al iniciar el sistema. Seguramente no desea local_unbound.

Configuración de seguridad

El siguiente menú habilita/deshabilita las funciones de seguridad seleccione
disable_sendmail y clear_tmp

Agregar usuarios

Simplemente agregue su usuario y agregar lo al grupo wheel si planea usar sudo.

Configuré mi shell en tcsh, cambiaré a zsh más adelante.

Configuración final

Cuando haya terminado, aplique la configuración y salga.

Reiniciar


# reboot

Configuración manual

Antes de reiniciar el sistema y salir del instalador, se le brinda una última oportunidad para realizar cualquier configuración manual pero rara vez es necesario para el usuario de escritorio.

Inicie sesión como root y actualice el sistema:


# freebsd-update fetch
# freebsd-update install
# reboot

Apagar el pitido de la consola


# echo kern.vt.enable_bell=0 >> /etc/sysctl.conf

Instalar paquetes


# pkg bootstrap
# pkg update
# pkg install vim

# pkg install sudo
# visudo

En esta línea quitar la almohadilla (#) para permitir al grupo wheel realizar acciones como root.


# %wheel ALL=(ALL:ALL) ALL

Interfaz gráfica de usuario

Esto varía dependiendo de su GPU.


# pkg install drm-kmod

Después de instalar este paquete, verá un mensaje sobre cómo habilitar el controlador para su hardware específico:


For amdgpu: kld_list="amdgpu"
For Intel: kld_list="i915kms"
For radeonkms: kld_list="radeonkms"

Para habilitar uno de estos, deberá agregar una línea a su /etc/rc.conf. Cuanto antes coloque esta línea en el archivo, antes se cargarán los kmods.

Cargar el controlador de video Intel:


sysrc kld_list=i915kms

Para cargar el kmod ahora, ejecute


kldload i915kms

También deberá agregar su usuario no root al grupo video


# pw groupmod video -m carlos


Instalar Xorg


# pkg install xorg

Entorno de escritorio


# sysrc dbus_enable="YES" 
# service dbus start
# pkg install -y plasma5-plasma
# pkg install -y konsole
# pkg install -y xf86-video-intel
# pkg install -y sddm
# pw groupmod video -m carlos
# pkg install -y plasma5-sddm-kcm
# pkg install -y sddm-freebsd-black-theme
# printf 'proc\t/proc\tprocfs\trw\t0\t0\n' >> /etc/fstab
# printf 'fdesc\t/dev/fd\tfdescfs\trw\t0\t0\n' >> /etc/fstab
# sysrc sddm_enable="YES"

Xorg, que use dispositivos expuestos a través de libinput (es decir, el touchpad)


# cp /usr/local/share/X11/xorg.conf.d/40-libinput.conf \
    /usr/local/etc/X11/xorg.conf.d/

Sonido

Para que el sonido vaya a los altavoces de forma predeterminada, y cambie a la toma de auriculares y silenciar los altavoces automáticamente si conecto los auriculares.


# echo 'hint.hdaa.0.nid33.config="as=1 seq=15"' >> /boot/loader.conf

Un error en el códec HDMI genera advertencias molestas una solución alternativa que permite silenciar las advertencias:


# echo 'compat.linuxkpi.i915_disable_power_well="0"' >> /boot/loader.conf

Teclas control volumen


Fn+F1 silenciar, Fn+F2 bajar volumen, Fn+F3 subir volumen

Que el cargador de arranque sólo espere 2 segundos en caso de que quiera cambiar la forma en que arranque, y que el kernel de FreeBSD no espere a los dispositivos USB antes de montar el sistema de archivos raíz (sé que mi sistema de archivos raíz está en el disco Nvme):


 # echo 'autoboot_delay="2"' >> /boot/loader.conf
 # echo 'hw.usb.no_boot_wait="1"' >> /boot/loader.conf

# ntpdate y ntp /etc/rc.conf


ntpd_enable="YES"
ntpd_config="/etc/ntp.conf"
netwait_enable="YES"

Tomar el control del brillo de la pantalla con las teclas Fn+Up, Fn+Down


# pkg install intel-backlight
# echo 'acpi_video_load="YES"' >> /boot/loader.conf
# cp /usr/local/share/examples/intel-backlight/acpi-video-intel-backlight.conf \
    /usr/local/etc/devd/

Reiniciar


# reboot

Otros paquetes


# sudo pkg install coreutils emacs gcc gmake firefox libreoffice thunderbird \
chromium automake libtool vlc obs-studio htop

Si instala un entorno de escritorio grande, la mayoría de las aplicaciones también se incorporan. Si no, siempre puede usar xargs para obtener cientos de gigabytes de programas:

Listar los paquetes que coincidan con kde


$ sudo pkg search kde | cut -d ' ' -f 1

Instalar los paquetes que coincidan con kde


$ sudo pkg search kde | cut -d ' ' -f 1 | xargs sudo pkg install -y

A veces, los escritorios se comportan de forma inesperada en FreeBSD (es decir, los usuarios no pueden administrar la configuración de energía, reiniciar el sistema, etc.). Asegúrese de que su usuario de inicio de sesión esté en el grupo de wheel y la mayoría de los problemas se resolverán. Para los usuarios que no desea en el grupo de wheel, deberá escribir algunas reglas de polkit.

Además, los escritorios grandes generalmente se compilan sin los componentes gráficos para modificar las conexiones de red.

Shells

FreeBSD usa tcsh(1) como shell predeterminado e incluye sh(1) para compatibilidad similar a Bourne

Instalar zsh con Oh-my-zsh


$ sh -c "$(curl -fsSL \
https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"


Redes


# /etc/rc.conf
ifconfig_em0="ether e4:b9:7a:6b:96:cd"
wlans_iwm0="wlan0"
cloned_interfaces="lagg0"
ifconfig_lagg0="laggproto failover laggport em0 laggport wlan0 SYNCDHCP"
create_args_wlan0="country ES regdomain ETSI"
ifconfig_wlan0="WPA"
wpa_supplicant_program="/usr/sbin/wpa_supplicant"
defaultroute_delay="0"
background_dhclient="YES"

Las interfaces de red se configuran clásicamente usando ifconfig(8). Si desea que una interfaz de red persista durante los reinicios, agregue la información en /etc/rc.conf.

WiFi se gestiona con wpa_supplicant


$ dmesg|grep -i wireless
Intel(R) Wireless WiFi based driver for FreeBSD
iwm0: <Intel(R) Dual Band Wireless AC 8265> mem 0xef100000-0xef101fff at \
device 0.0 on pci2

Archivo /etc/wpa_supplicant FreeBSD

Encriptar password de la contraseña wifi


$ wpa_passphrase MikroTik-39F9C1 contraseñawifi
psk=c35edacaf6c649c6df522451c801f98e918bc376d335d0dedd686770dad7f6c0

Para utilizar la versión de puertos de WPA Supplicant en lugar de la base, agregue


wpa_supplicant_program="/usr/sbin/wpa_supplicant" a /etc/rc.conf

$ cat /etc/rc.conf|grep wpa_supplicant | grep wpa_supplicant
wpa_supplicant_program="/usr/sbin/wpa_supplicant"

Aspecto final del archivo wpa_supplicant


$ cat /etc/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant

network={
 ssid="MikroTik-39F9C1"
 scan_ssid=1
 psk=c35edacaf6c649c6df522451c801f98e918bc376d335d0dedd686770dad7f6c0
}

Gestión de paquetes

Hay dos formas principales de administrar software: paquetes binarios y puertos. No los mezcle si no sabe lo que está haciendo, puede causar problemas.

Para ser breve: los puertos son como Gentoo. Pasas mucho tiempo viendo la salida del compilador. Los siguientes programas ayudan: synth, portmaster, poudriere para ser detallado: Guía rápida sobre el uso del sistema de administración de paquetes binarios:


pkg update
pkg upgrade
pkg search foobar
pkg install foobar
pkg remove foobar
pkg autoremove

Proceso General de Actualización


pkg update 
pkg upgrade
freebsd-update upgrade -r 13.1-RELEASE
freebsd-update fetch
reboot
freebsd-update install
pkg update 
pkg upgrade
freebsd-update install
reboot

Sistema de archivos

La jerarquía de FreeBSD es ligeramente diferente a la de un sistema Linux. Consulte man hier(7) para obtener más información.
La mayor diferencia es que FreeBSD es un sistema organizado lógicamente. En FreeBSD, el sistema está más organizado. Por ejemplo:
/bin contiene todo lo necesario para iniciar el sistema y /sbin contiene todo lo necesario para la administración fundamental.

/usr/bin contiene casi todo lo demás

/usr/local contiene todo lo instalado por el sistema de administración de paquetes.

Los programas instalados por el usuario se configuran en /usr/local/etc. Puede ser confuso al principio, pero lo dominarás.

Esta separación lógica puede causar confusión al compilar software desde la fuente en FreeBSD, pero no es demasiado difícil de resolver si ya conoce las opciones del enlazador y la modificación del archivo MAKE.

Montar unidades fat32

Crear directorio de montaje


# mkdir /media/usbFAT32

Montar usb fat32 como usuario carlos


% mount -t msdosfs /dev/da0p2 /media/usbFAT32

Montar un dispositivo conectado via usb fs linux ext4

Instalar paquetes


# pkg install fusefs-ext2 fusefs-lkl

Verificar nombre del dispostivo


% gpart show da0
=>     2048  976771087  da0  GPT  (466G)
       2048  362371072    1  linux-data  (173G)
  362373120   40960000    2  ms-basic-data  (20G)
  403333120  573440015       - free -  (273G)

Montar el dispositivo sistema de ficheros ext4 /dev/da0p1


% lklfuse -o type=ext4,rw /dev/da0p1 /media/linuxEXT4/

Automount montar sistemas de ficheros automáticamente.

Cuando se llama sin opciones, el comando automount analiza el auto_master(5) archivo de configuración y cualquier mapa directo al que haga referencia, y monta o desmonta los sistemas de archivos autofs(5) para que coincidan. Estas opciones están disponible


      -D Definir una variable. Solo es útil con -L.

      -L No montar ni desmontar nada.

      -c Vaciar cachés, descartando información posiblemente obsoleta obtenida 
         de mapas y servicios de directorio.

      -f Forzar desmontar, para ser usado con -u.

      -o Especifique las opciones de montaje que se utilizarán junto con las 
         especificadas en los mapas. Solo es útil con -L.

      -u Intenta desmontar los sistemas de archivos montados por automountd.

      -At Para desmontar todos los montajes de autofs use unmount -At

      -v Aumentar la verbosidad.

Instalar automount


# pkg install automount
# cp /usr/local/etc/automount.conf.sample /usr/local/etc/automount.conf

Esta archivo contiene una linea que permite al usuario montar particiones que el sistema reconozca

El demonio de la cámara web ya está instalado (kde5 lo incorpora como una dependencia), para habilitado y que el usuario carlos pueda acceder a él:


# echo 'cuse_load="YES"' >> /boot/loader.conf
# sysrc webcamd_enable="YES"
# pw groupmod webcamd -m carlos

$ pkg info


FreeBSD es genial!.