Páginas

Mostrando entradas con la etiqueta usb. Mostrar todas las entradas
Mostrando entradas con la etiqueta usb. Mostrar todas las entradas

martes, 25 de marzo de 2025

Crear Particiones en Disco Duro USB Sistema de Archivos ZFS con gpart en FreeBSD 14

# Identificar el disco USB

Primero, verifica el nombre del disco USB conectado:

 gpart show

O también:

 camcontrol devlist

El disco USB generalmente aparecerá como daX (por ejemplo: da0).


# Eliminar particiones existentes (si es necesario)

Si el disco ya tiene particiones, puedes limpiarlo con:

 gpart destroy -F /dev/daX

(Reemplaza daX con tu dispositivo, como da0).


# Crear tabla de particiones (GPT)

Crea una tabla de particiones GPT en el disco:

 gpart create -s GPT /dev/daX

# Crear partición para ZFS

Crea una partición que ocupe todo el disco (o el espacio deseado):

 gpart add -t freebsd-zfs -a 1M -l ZFSBACKUP /dev/daX

-t freebsd-zfs: Tipo de partición para ZFS.
-a 1M: Alineación a 1 MiB (mejor rendimiento en discos modernos).
-l ZFSBACKUP`: Etiqueta de la partición (opcional pero útil para identificación).

# Verificar la partición creada

 gpart show /dev/daX

Deberías ver algo como:

=>   40  625142368  da0  GPT  (298G)
     40  625142368    1  freebsd-zfs  (298G)  [ZFSBACKUP]

# Crear el pool ZFS en la partición

Ahora crea un pool ZFS en la partición (no en el disco completo, `/dev/daX`, sino en la partición, /dev/daXp1 o /dev/gpt/ZFSBACKUP si usaste etiqueta):

 zpool create -f zbackup /dev/gpt/ZFSBACKUP

- zbackup: Nombre del pool (cámbialo si lo prefieres).
- f Fuerza la creación si hay restos de particiones anteriores.

# Configurar propiedades del pool (opcional)

Para mejorar la compatibilidad y rendimiento:

 zfs set mountpoint=none zbackup
 zpool set autoexpand=on zbackup
 zpool set listsnapshots=on zbackup

# Habilitar compresión (recomendado)

 zfs set compression=lz4 zbackup

# Verificar el pool ZFS

 zpool status

zfs list

# Enviar instantáneas (snapshots) al disco USB

Desde el sistema origen (donde está el ZFS con los datos), usa zfs send y zfs receive:


# En el sistema origen:

zfs snapshot pool/dataset@backup1
zfs send pool/dataset@backup1 | zfs receive zbackup/dataset

Si el disco está conectado a otro sistema, usa ssh:

 zfs send pool/dataset@backup1 | ssh user@host "zfs receive zbackup/dataset"

# Notas importantes:

USB y ZFS: ZFS en discos USB puede ser lento y no es ideal para uso intensivo. Se recomienda usar discos con conexión SATA o NVMe si es posible.
- Montaje automático: Si deseas que el pool se monte al conectar el disco, agrega zfs_enable="YES" en /etc/rc.conf.
- Exportar el pool: Antes de desconectar el disco, ejecuta:

 zpool export zbackup

Esto asegura que el pool se cierre correctamente y se liberen todos los recursos asociados. Luego, el disco puede ser desconectado de forma segura.

¡Listo! Ahora tienes un disco USB con ZFS listo para recibir snapshots de FreeBSD.

 

FreeBSD es genial!.

lunes, 24 de junio de 2019

Copiar restaurar particiones Linux


Instalar Arch Linux UEFI

Iniciar el sistema desde un usb live Sytem Rescue con soporte UEFI


lsblk lista información a cerca de todos los dispositivos de bloques disponibles


# lsblk

root@sysresccd /root % lsblk 

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT

sda      8:0    0  55.9G  0 disk 

├─sda1   8:1    0   512M  0 part 

├─sda2   8:2    0    30G  0 part 

└─sda3   8:3    0  25.4G  0 part 

sdb      8:16   0 465.8G  0 disk 

└─sdb1   8:17   0 211.5G  0 part 

sdc      8:32   1   1.9G  0 disk 

└─sdc1   8:33   1   1.9G  0 part /livemnt/boot

loop0    7:0    0 317.1M  1 loop /livemnt/squashfs

lsblk con la opción -f devuelve información sobre sistemas de archivos

# lsblk -f

NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT

sda                                                                   

├─sda1 vfat    CC3A-1EDB 

├─sda2  ext4    38b21575-cd76-4ff5-9733-654c1d50f30f   21,4G    22% /

└─sda3  ext4    e9774ab0-2d95-4820-8c1e-d76563970c86     21G    11% /home

sdb                                                                   

└─sdb1  vfat  SYSRCD-4_5_ 6843-DF82    /livemnt/boot

sdc                                                                

└─sdc1  ext4 ArchlinuxHP   d007c890-2620-44fc-aaeb-5e40f68fa40

loop0  squashfs                                               /livemnt/squashfs 

https://docs.freebsd.org/es/books/handbook/disks/#backup-basics

“No hacer nada” no es un programa, pero es la estrategia de respaldo más extendida. No tiene coste. No hay un calendario de respaldos a seguir. Simplemente hay que decir que no. Si algo le sucediera a sus datos sonría y acostúmbrese a su nueva situación.


Copia de seguridad con tar

Se crea el punto de montaje y se monta en modo rw (lectura y escritura) el disco duro externo donde se guardarán las copias de seguridad en formato tar.gz

root@sysresccd /root % mkdir /mnt/backuprestore
root@sysresccd /root % mount -t ext4 -o rw /dev/sdc1 /mnt/backuprestore

Se crean los puntos de montaje uno para cada partición con nombres que sirvan de referencia.

# mkdir /mnt/archlinuxboot
# mkdir /mnt/archlinuxraiz
# mkdir /mnt/archlinuxhome

Mantar en modo ro (sólo lectura) las particiones del sistema a respaldar

root@sysresccd /mnt % mount -o ro -t vfat /dev/sda1 /mnt/archlinuxboot
root@sysresccd /mnt % mount -o ro -t ext4 /dev/sda2 /mnt/archlinuxraiz
root@sysresccd /mnt % mount -o ro -t ext4 /dev/sda3 /mnt/archlinuxhome

Opciones y argumentos del comando tar
c crea la copia usando tar
v activa el modo verbose para mostrar información por pantalla
z comprime los datos utilizando el formato gzip
p preserva los permisos de los ficheros (predeterminado para root)
f manda la salida a un fichero en lugar de a la salida estandar
--exclude excluye ficheros y directorios de la copia

Se crea y exporta la variable temporal fecha
root@sysresccd /mnt % FECHA=$(date +%d%m%Y)
root@sysresccd /mnt % export FECHA
root@sysresccd /mnt % env | grep FECHA
FECHA=24062019
root@sysresccd /mnt % echo $FECHA
24062019

Una vez hecho esto se cambia al punto de montaje de la partición raiz (sda2) para realizar la copia.
root@sysresccd /mnt % cd /mnt/archlinuxraiz
root@sysresccd /mnt/archlinuxraiz % tar czvf /mnt/backuprestore/Archlinux/archlinuxsda2/archilinuxsda2-$FECHA.tar.gz *

Entrando en el punto de montaje de la partición boot (sda1) para la copia en formato tar.gz utilizando tar
root@sysresccd /mnt % cd /mnt/archlinuxboot
root@sysresccd /mnt/archlinuxboot % tar czvf /mnt/backuprestore/Archlinux/archlinuxsda1/archilinuxsda1-$FECHA.tar.gz *

Por último lo mismo para home (sda3)

root@sysresccd /mnt % cd /mnt/archlinuxhome
root@sysresccd /mnt/archlinuxraiz % tar czvf /mnt/backuprestore/Archlinux/archlinuxsda3/archilinuxsda3-$FECHA.tar.gz --exclude=lost+found *

Restaurar particiones

Iniciar un live usb System Rescue con soporte UEFI

Crear el punto de montaje y montar en modo ro (sólo lectura) la partición que contiene el o los archivos comprimidos a restaurar

# mkdir /mnt/backuprestore
# mount -t ext4 -o ro /dev/sdb1 /mnt/backuprestore

Restaurar la partición raiz

Formatear la partición a restaurar (se perderan todos los datos)
# mkfs.ext4 /dev/sda2

Crear el punto de montaje y montar en modo rw (lectura y escritura) la partición a restaurar

# mkdir /mnt/archraiz
# mount -t ext4 -o rw /dev/sda2 /mnt/archraiz

Entrar en la partición sda2
# cd /mnt/archraiz

Extraer el archivo (no olvide el punto final)
# tar xvzf /mnt/backuprestore/Archlinux/archlinuxsda2/archilinuxsda2-24062019.tar.gz .

Restaurar partición boot (sda1)

Formatear la partición a restaurar (se perderan todos los datos)
# mkfs.vfat /dev/sda1

Crear el punto de montaje y montar en modo rw (lectura y escritura) la partición a restaurar
# mkdir /mnt/archboot
# mount -t vfat -o rw /dev/sda1 /mnt/archboot

Entrar en la partición sda1
# cd /mnt/archboot

Extraer el archivo

# tar xvzf /mnt/backuprestore/Archlinux/archlinuxsda1/archilinuxsda1-24062019.tar.gz .

Restaurar partición home

Formatear la partición a restaurar (se perderan todos los datos)
# mkfs.ext4 /dev/sda3

Crear el punto de montaje y montar en modo rw (lectura y escritura) la partición a restaurar
# mkdir /mnt/archhome
# mount -t ext4 -o rw /dev/sda3 /mnt/archhome

Entrando en la partición sda3

# cd /mnt/archraiz

Extraer el archivo
# tar xvzf /mnt/backuprestore/Archlinux/archlinuxsda3/archilinuxsda3-24062019.tar.gz . 

Finalmente desmontar las particiones

# cd
# umount /mnt/archraiz
# umount /mnt/archboot
# umount /mnt/archhome
# umount /mnt/backuprestore

O desmontar recursivamente.
La relación entre los puntos de montaje está determinada por /proc/self/mountinfo. El sistema de archivos debe ser especificado por la ruta del punto de montaje. Un recursivo desmontado por el nombre del dispositivo o UUID es incompatible.

# umount -R /mnt/*

Reiniciar el sistema
# reboot

OpenBSD es genial!.

viernes, 16 de febrero de 2018

Samba en un Servidor Centos Linux

Configuración de Samba en Centos

Protocolo SMB

SMB (Server Message Block), también llamado CIFS (Common Internet File System), es un protocolo del nivel de presentación del modelo OSI de TCP/IP creado por IBM en el año 1985.

Samba

SAMBA es un conjunto de programas originalmente creados por Andrew Tridgell y mantenidos por The Samba Team.

Instalar a través de yum

# yum -y install samba samba-client samba-common

Abrir los puertos 135 al 139 (TCP Y UDP) y el puerto 445 (TCP).

Utilizando desde la consola el mandato iptables


# ptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 135:139 -j ACCEPT

# iptables -A INPUT -m state --state NEW -m udp -p udp --dport 135:139 -j ACCEPT

# iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT

# service iptables save

O editar el archivo /etc/sysconfig/iptables y añadir lo siguiente

-A INPUT -m state --state NEW -m tcp -p tcp --dport 135:139 -j ACCEPT

-A INPUT -m state --state NEW -m udp -p udp --dport 135:139 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT

# service iptables restart

SELinux y el servicio smb

Con la finalidad de que SELinux permita al servicio smb la escritura como usuario anónimo, ejecute:

# setsebool -P allow_smbd_anon_write 1

A fin de que SELinux permita al servicio smb funcionar como Controlador Primario de Dominio (PDC)

# setsebool -P samba_domain_controller 1

Para que SELinux perminta al servicio smb compartir los directorios de inicio de los usuarios locales del sistema, ejecute:

# setsebool -P samba_enable_home_dirs 1

A fin de que SELinux desactive la protección para los directorios de inicio de los usuarios a través de smb, ejecute:

# setsebool -P use_samba_home_dirs 1

Con la finalidad de que SELinux permita al servicio smb crear nuevos directorios de inicio para los usuarios a través de PAM (operación común en PDC, ejecute

# setsebool -P samba_create_home_dirs 1

Para que SELinux permita al servicio smb funcionar como un organizador de mapa de puertos (portmapper):

# setsebool -P samba_portmapper 1

Para que SELinux permita al servicio smb ejecutar guiones dentro del directorio /var/lib/samba/scripts sin confinamiento:

# setsebool -P samba_run_unconfined 1

Con el fin de que SELinux permita al servicio smb compartir todos los recursos en modo de sólo lectura:

# setsebool -P samba_export_all_rw 1

Para que SELinux perminta al servicio smb compartir todos los recursos en modo de lectura y escritura:

# setsebool -P samba_export_all_rw 1

Mandato chcon

Para definir que un directorio será compartido a través del servicio smb y que debe considerarse como contenido Samba, por ejemplo /var/samba/publico:

# chcon -t samba_share_t /var/samba/publico

Antes de configurarse en el el archivo /etc/samba/smb.conf, cada nuevo directorio que se vaya a compartir debe ser configurado como se ha descrito anteriormente.

Iniciar el servicio

# service nmb start
# service smb start

Añadir el servicio al arranque del sistema

# chkconfig nmb on
# chkconfig smb on

Después de aplicar cambios al archivo de configuración de Samba es necesario reiniciar el servicio smb

# service smb restart

El servicio nmb es el encargado de proveer el servidor de nombre para los clientes a través de NetBios sobre IP. Por tanto, debe reiniciar el servicio nmb si realiza cualquier cambio en la configuración de la opción netbios name

# service nmb restart

Alta de cuentas de usuario

Primero asigne una contraseña al usuario root (no tiene que ser la misma utilizada en el sistema).

# smbpasswd -a root

La sincronización de cuentas entre el servidor Samba y las estaciones Windows se realiza ingresando el mismo nombre de usuario y contraseña tanto en el servidor Samba como en la máquina Windows.

La mayoría de las cuentas de usuario que se utilizan para acceder a Samba no requieren acceso al intérprete de comandos del sistema, no hace falta asignar una contraseña con el mandato passwd. El intérprete de comandos quedará definido como /sbin/nologin o /bin/false para la cuenta de usuario. Esta cuenta en cuestión estará inactiva para el resto de servicios.

# useradd -s /sbin/nologin andrius
# smbpasswd -a andrius

Archivo lmhosts

Se utiliza para resolver de manera local los nombres NetBios, asociándolos con su dirección IP correspondiente. El nmbre NetBios no debe exceder los doce caracteres alfanuméricos. Como mínimo debe definirse el nombre del anfitrión del servidor Samba junto a su dirección IP.

# vi /etc/samba/lmhosts
127.0.0.1      localhost
192.168.0.1      servidor

Configuración básica del archivo smb.conf

# vi /etc/samba/smb.conf

La opción workgroup define el grupo de trabajo

workgroup = MYGROUP

Opción netbios name

Define un nombre de anfitrión distinto al detectado automáticamente. Debe ser el mismo que aparece en el archivo /etc/samba/lmhosts

netbios name = servidor

Opción server string

server string = Servidor Samba %v en %L

Opción hosts allow

En esta entrada del archivo smb.conf se pueden definir direcciones IP o redes que tendrán permiso de acceso hacia el servidor. Por tanto, una red con anfitriones con direcciones IP desde 192.168.0.1 hasta 192.168.0.254, el rango de direcciones IP definido en hosts allow será 192.168.0., (los tres primeros octetos).

Vamos a definir las redes 192.168.0.0/24, 102.168.1.0/24 y 192.168.3.0/24 como vimos con anterioridad utilizando los tres primeros octetos de la dirección IP de red, en el caso de cualquier dirección IP de la red 127.0.0.0/8 se define sólo el primer octeto de dicho segmento.

hosts allow = 127., 192.168.0., 192.168.1., 192.168.3.

Opción name resolve order

Define el orden en que se intenta de resolver los nombres NETBIOS. Primero con la información del archivo /etc/samba/lmhosts, luego el archivo /etc/hosts, a continuación de consultas en el servidor WINS y, si todo lo anterior falla, a través de la dirección IP de difusión de la red local.

name resolve order = lmhosts hosts wins bcast

Gestor de archivos Nautilus

Esta configuración es necesaria para el gestor de archivos predeterminado de Gnome, Nautilus y además que se especifique wins en el orden de resolución de nombres del archivo /etc/nsswitch.conf del anfitrión desde el cual se ejecute.

# vi /etc/nsswitch.conf

hosts:    files dns

al final agregje wins

hosts:    files dns wins

Opción remote announce

remote announce = 192.168.3.127, 192.168.1.255

Reinicie los servicios para aplicar los cambios.

# service smb restart
# service nmb restart

Compartir directorios

Crear el directorio /var/samba/publico

# mkdir -p /var/samba/publico

Cambiar el contexto de SELinux para que este directorio sea considerado como contenido Samba.

# chcon -t samba_share_t /var/samba/publico


[publico]

comment = Recurso compartido publico

path = /var/samba/publico

guest ok = yes

read only = yes

write list = andrius

directory mask = 0755

create mask = 0644

Listas de control de acceso ACL

setfacl se utiliza para cambiar los permisos en las listas de control de acceso de un archivo o directorio dado. Asignar cambiar permisos de lectura, escritura y ejecución al usuario andrius

Crear el usuario y agregarlo al grupo samba

# useradd -s /sbin/nologin andrius
# smbpasswd -a andrius
# passwd andrius

# setfacl -m u:andrius:rwX /var/samba/publico

Se utilizó X mayúscula para indicar que sólo se aplicará el bit de acceso a directorios evitando aplicar el bit de ejecución a los archivos.

getfal se utiliza para determinar los permisos establecidos en las listas de control de acceso de un archivo o directorio.

# getfacl /var/samba/publico/

getfacl: Eliminando '/' inicial en nombres de ruta absolutos

# file: var/samba/publico/

# owner: root

# group: root

user::rwx

user:andrius:rwx

group::r-x

mask::rwx

other::r-x


Estos permisos que se establecieron en la lista de control de acceso del directorio /var/samba/publico son exclusivamente para éste. Cualquier nuevo archivo o directorio creado carecerá de estos nuevos permisos. Si se desea que éstos permisos se vuelvan los predeterminados para los nuevos archivos y directorios que sean creados en lo sucesivo dentro del directorio /var/samba/publico, se ejecuta el mismo mandato setfacl, pero añadiendo la opción -d para definir que serán los permisos  predeterminados  para nuevos archivos  y directorios.

Lo anterior muestra que sólo el propietario del directorio tiene permisos de lectura, escritura y acceso. Para lograr que un usuario en particular pueda acceder también a este directorio, se ejecuta el mandato setfacl, con la opción -m para modificar la lista de control de acceso, [u,g,o]:[usuario,grupo]:[r,w,x] y la ruta del directorio como argumentos. Ejemplo:

setfacl -m u:usuario:rX /var/samba/publico

En el ejemplo anterior se utilizó X mayúscula para indicar que sólo se aplicará el bit de acceso de a directorios evitando aplicar el bit de ejecución a los archivos.

Lo mismo en notación octal

# setfacl -m u:usuario:5 /var/samba/publico

Editar el archivo /etc/samba/smb.conf y al final añada el siguiente contenido


[publico]

comment = Recurso compartido publico 

path = /var/samba/publico

guest ok = yes

read only = yes

write list = andrius

directory mask = 0755

create mask = 0644


# service smb restart

Ocultando archivos que empiezan por punto.

Los archivos cuyo nombre comienza con un punto (archivos de configuración, normalmente), como es el caso del directorio de inicio del usuario en el servidor Samba (.bash_profile, .bashrc, .bash_history entre otros) pueden ocultarse con la opción hide dot files y el valor Yes.

[homes]
    comment = Home Directories
    browseable = no
    writable = yes
    valid users = %S
    inherit acls = yes
    hide dot files = yes

Reinicie el servidor smb para que los cambios tengan efecto

# service smb restart


Montar recursos compartidos desde un cliente Linux

$ cat /etc/hosts
127.0.0.1        localhost.localdomain localhost
::1        localhost6.localdomain6 localhost6
192.168.0.1    servidor

# mkdir /mnt/publico

# mount.cifs -o username=andrius //servidor/publico /mnt/publico

Solicitará la contraseña del usuario utilizado en el servidor Samba

Password for andrius@//servidor/publico:

# mount | grep publico
//servidor/publico on /mnt/publico type cifs (rw)

Cree el archivo /etc/acreditar para hacer permanente lo anterior.

# vim /etc/acreditar

Especifique el nombre de usuario y contraseña utilizados con el recurso compartido.

username=andrius
password=password

Cambiando los permisos de acceso al archivo para que sólo el usuario root pueda ver y modificar el contenido.

# chmod 600 /etc/acreditar

# vim /etc/fstab

Este recurso será montado automáticamente en el siguiente reinicio del sistema. Agregue la siguiente línea incluyendo las opciones uid y gid

//servidor/publico /mnt/publico cifs credentials=/etc/acreditar,uid=501,gid=501 0 0

Utilizar smbclient desde Linux

Lo más práctivo y sencillo para hacer pruebas es el mandato smbclient. Permite acceder hacia cualquier servidor Samba y Windows.

# smbclient -U andrius -L servidor


Conectar un cliente Windows al servior Samba

Esta máquina está en la red 192.168.3.0/25 detrás de un firewall router Soekris y OpenBSD.






https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/pdf/system_administrators_guide/Red_Hat_Enterprise_Linux-7-System_Administrators_Guide-en-US.pdf

Centos es genial!.

viernes, 3 de julio de 2015

Montar almacenamieto USB FreeBSD

El soporte para dispositivos de almacenamiento USB esta integrado en el kernel GENERIC.

Utilice dmesg para confirmar que la unidad aparece en el buffer de mensajes del sistema:


Para que el dispositivo sea mountable como un usuario normal, hacer al usuario miembro del grupo operator utilizando pw.
# pw usermod carles -G operator

Lo siguiente es asegurarse que operator está habilitado para leer y escribir en el dispositivo
# ee /etc/devfs.rules
[localrules=5]
add path 'da*' mode 0660 group operator

# pkg install fusefs-ntfs

Habilitar la regla en /etc/rc.conf
# ee /etc/rc.config
devfs_system_ruleset="localrules"

Indicar al sistema que permita a usuarios regulares montar sistemas de archivos agregando a /etc/sysctl.config
# ee /etc/sysctl.conf
vfs.usermount=1

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

Crear un directorio y hacer que pertenezca user group primario del usuario.
# mkdir /mnt/carles
# chown carles:carles /mnt/carles
# ls -ld /mnt/carles/
drwxr-xr-x  2 carles  carles  512 Jul  3 03:24 /mnt/carles/

Suponiendo que el dispositivo USB esta conectado, aparece como /dev/da0 y formateado con el sistema de archivos FAT32, montamos como usuario normal (read write).
$ mount_msdosfs -o rw /dev/da0 /mnt/carles/


Antes de desconectarlo puede desmontar el dispositivo:
# umount /mnt/carles

En caso de dispositivo de almacenamiento USB formateado con el sistema de archivos NTFS
# pkg install fusefs-ntfs
# kldload fuse
# mkdir /mnt/ntfs
# chown carles:carles /mnt/ntfs
$ ntfs-3g -o rw /dev/da0s1 /mnt/ntfs

Cargar el modulo con el sistema, agregar al archivo /boot/loader.conf
# ee /boot/loader.conf
fuse_load="YES"

Unix es genial!.