← Teoría

Práctica 31: Almacenamiento externo en máquinas virtuales (Windows y Linux)

Módulo: MF0953_2 - Reparación y ampliación de equipos
Unidad Formativa: UF0862 - Instalación y configuración de periféricos
Sesiones: S6 (almacenamiento externo) + S7 (USB y comunicaciones)
Duración estimada: 7-8 horas (puede partirse en dos sesiones)
Modalidad: trabajo individual
Herramientas: VirtualBox, VM Windows 10/11, VM Ubuntu, espacio libre suficiente en el host (al menos 15-20 GB) para crear discos virtuales adicionales
De qué va esta práctica: en el aula no tenemos pendrives, discos externos ni NAS por puesto, así que vas a montar todo el escenario con discos virtuales y carpetas compartidas. El sistema operativo no distingue: un disco virtual VDI conectado a una VM aparece como cualquier disco externo, con su panel de discos, su asistente de formato y sus letras de unidad. Vas a crear discos virtuales que actúan como "pendrive" o "disco externo", probarás los sistemas de archivos NTFS / exFAT / FAT32 / ext4, configurarás carpetas compartidas entre el equipo anfitrión y la VM, y montarás un pequeño NAS casero con Samba en la VM Linux para conectarte desde la VM Windows. Para terminar, cifrarás un disco con BitLocker To Go y otro con LUKS.
USB físico: los pasos de USB passthrough (cómo VirtualBox cede un pendrive real a la VM, versiones USB 2.0/3.0, conectores Tipo A/B/C) ya los hiciste en la Práctica 28. Aquí nos centramos en almacenamiento sin necesidad de hardware físico.

Objetivos de la práctica

  • Distinguir los tipos de almacenamiento externo (pendrive, HDD, SSD, NVMe en caja, NAS, almacenamiento en la nube) y elegir el adecuado para cada caso.
  • Conocer las interfaces habituales: USB, USB-C, Thunderbolt, eSATA y M.2 en caja externa.
  • Crear discos virtuales adicionales en VirtualBox y conectarlos a las VM Windows y Linux como si fuesen unidades externas.
  • Particionar y formatear con NTFS, exFAT, FAT32 y ext4; saber elegir el sistema de archivos adecuado.
  • Configurar carpetas compartidas host-guest mediante Guest Additions de VirtualBox.
  • Montar un pequeño NAS casero con Samba en la VM Linux y conectarse desde la VM Windows.
  • Mapear unidades de red en Windows y montarlas automáticamente en Linux con fstab.
  • Cifrar almacenamiento externo con BitLocker To Go (Windows) y LUKS (Linux).
  • Distinguir las tablas de particiones MBR y GPT y saber cuándo se usa cada una.
  • Comprobar la integridad de un sistema de archivos con chkdsk y fsck.
  • Consultar el estado de salud de un disco con SMART (atributos clave, valores de alerta).
  • Hacer copias y sincronización con robocopy (Windows) y rsync (Linux), y programarlas.
  • Diagnosticar y resolver problemas frecuentes: disco lleno, extracción no segura, FS corrupto.

Parte 0 - Conceptos previos (60 min)

0.1 - Tipos de almacenamiento externo

DispositivoCapacidad típicaVelocidad realPara qué se usa
Pendrive USB16 GB - 1 TB20-400 MB/s según modeloTransporte ocasional, instaladores, copias rápidas
HDD externo (2,5")1-5 TB80-130 MB/sCopia de seguridad de gran volumen, archivado
SSD externo SATA250 GB - 4 TB400-550 MB/sTrabajo diario, edición, transporte de proyectos
NVMe en caja USB-C / Thunderbolt500 GB - 8 TB700-3000 MB/sVídeo 4K/8K, máquinas virtuales portables
NAS2-100 TBLimitada por la red (100-1000 MB/s)Almacenamiento centralizado de oficina
Cloud"infinita"Limitada por internetSincronización, copia fuera del local, colaboración

0.2 - Anatomía: HDD vs SSD vs NVMe

Detrás de "disco" hay tres tecnologías muy distintas. Conocer la diferencia te ayuda a entender por qué un dispositivo es rápido o lento, frágil o duradero, y por qué algunos comandos (como TRIM) sólo aplican a unos.

HDD (disco duro mecánico)

  • Platos magnéticos girando a 5400 o 7200 rpm con un cabezal lector que se mueve sobre ellos.
  • El acceso aleatorio es lento porque el cabezal tiene que buscar (~10 ms de seek time).
  • Sensible a golpes en funcionamiento: el cabezal puede tocar el plato y rayarlo.
  • Barato por GB. Sigue siendo el rey para archivado en grandes volúmenes.

SSD (disco de estado sólido)

  • Memoria flash NAND: celdas que retienen carga eléctrica. Sin partes móviles.
  • Acceso aleatorio rapidísimo (~0,1 ms). Resistente a golpes en funcionamiento.
  • Las celdas tienen un número limitado de ciclos de escritura. Por eso existe el wear leveling: el controlador del SSD reparte las escrituras por toda la memoria para que ninguna celda se gaste antes que las demás.
  • Necesitan el comando TRIM: cuando borras un archivo, el SO le dice al SSD qué celdas ya no se usan. Sin TRIM, el rendimiento se degrada con el tiempo.
  • Tipos de NAND por densidad: SLC (1 bit/celda, rápido y caro), MLC (2 bits), TLC (3 bits, mainstream), QLC (4 bits, barato pero menos durable).

NVMe (NAND con interfaz PCIe)

  • Mismo tipo de memoria flash que un SSD SATA, pero conectada directamente al bus PCIe en lugar de pasar por SATA.
  • Usa el protocolo NVMe, diseñado para flash (admite miles de colas en paralelo). SATA se diseñó para HDDs y es un cuello de botella.
  • Velocidades de 3-14 GB/s en formato M.2 interno. En caja externa por USB4/Thunderbolt llega a ~3 GB/s reales.
  • Genera más calor que un SSD SATA: las cajas externas buenas llevan disipador.
AspectoHDDSSD SATANVMe
Velocidad secuencial80-200 MB/s400-550 MB/s3000-14000 MB/s
Acceso aleatorioMuy maloBuenoExcelente
Resistencia a golpesMalaExcelenteExcelente
Ciclos de escrituraIlimitadosLimitados (TBW)Limitados (TBW)
Necesita TRIMNo
CalorBajoBajoAlto bajo carga
€/GB (orientativo)~0,02 €~0,07 €~0,08 €
TBW (Total Bytes Written): el fabricante de un SSD garantiza una cantidad concreta de datos escritos antes de que las celdas se agoten. Un SSD doméstico de 1 TB suele tener 600 TBW: equivale a escribir el disco entero unas 600 veces. Para uso normal, son muchos años.

0.3 - Interfaces habituales

InterfazVelocidad máximaNotas
USB 2.060 MB/s teórico (~30 MB/s real)Hoy sólo en accesorios baratos.
USB 3.2 Gen 1 (5 Gbps)625 MB/s teóricoEl "azul" clásico. Estándar actual en pendrives.
USB 3.2 Gen 2 (10 Gbps)1,25 GB/s teóricoSSDs externos buenos.
USB 3.2 Gen 2x2 (20 Gbps)2,5 GB/s teóricoSólo en USB-C.
USB4 / Thunderbolt 3-45 GB/s teórico (40 Gbps)Mismo conector USB-C. NVMe externo a tope.
eSATA600 MB/sEn desuso. Sólo en equipos antiguos.

0.4 - Sistemas de archivos

FSTamaño máx. archivoCompatibilidadCuándo usarlo
FAT324 GBTodo lo que existe (Win, Linux, macOS, TVs, cámaras...)Pendrives muy compatibles, BIOS UEFI, dispositivos antiguos
exFATSin límite prácticoWindows, macOS, Linux moderno, cámaras 4KPendrives y SSD externos para mover archivos grandes entre Windows y macOS
NTFSSin límite prácticoWindows nativo, Linux con ntfs-3g, macOS sólo lecturaDiscos externos usados sobre todo en Windows
ext4Sin límite prácticoLinux nativo, Windows necesita drivers de tercerosDiscos que sólo se van a usar en Linux
APFSSin límite prácticomacOSDiscos para Mac
Regla rápida: si vas a llevar el pendrive entre un Windows y un Mac, formatea en exFAT. Si es un disco externo grande para Windows, NTFS. Si es un USB para arrancar un instalador o configurar una BIOS, FAT32. Si va a vivir conectado a un Linux, ext4.

Journaling y por qué importa

NTFS y ext4 son sistemas de archivos con journal: antes de cada escritura, anotan en un registro qué cambios van a hacer. Si el equipo se apaga de golpe a mitad de una escritura, al volver a arrancar el sistema lee el journal y termina o deshace la operación. Resultado: el FS no queda corrupto. FAT32 y exFAT no tienen journal, por eso un corte de luz en mitad de una copia los deja inconsistentes y necesitan un chkdsk.

Tamaño de unidad de asignación (cluster)

Un FS no escribe byte a byte: agrupa los datos en bloques llamados clusters. El tamaño del cluster lo decides al formatear. Cluster grande (64 KB) = mejor rendimiento secuencial pero más espacio desperdiciado en archivos pequeños. Cluster pequeño (4 KB) = mejor para muchos archivos pequeños pero peor rendimiento secuencial. Para uso general, deja el valor por defecto (4 KB en NTFS, 4 KB en ext4).

0.5 - Tablas de particiones: MBR vs GPT

Antes de poder formatear un disco, hay que escribirle una tabla de particiones. Existen dos:

AspectoMBR (Master Boot Record)GPT (GUID Partition Table)
Año1983 (PC/AT de IBM)1999 (parte del estándar UEFI)
Tamaño máximo de disco2 TB9,4 ZB (prácticamente ilimitado)
Particiones primarias4 (con extendida + lógicas para más)128 sin tipos especiales
Tabla replicadaNo (un único MBR)Sí (tabla principal + copia al final del disco)
Suma de comprobación (CRC32)NoSí (detecta corrupción)
IdentificadoresLetras + números (1 byte de tipo)GUID únicos por partición
Compatible con BIOS legacySólo si el firmware tiene CSM
Compatible con UEFISólo en modo legacy / CSMSí, nativo
Regla rápida: en cualquier disco moderno (mayor de 2 TB, instalación nueva, equipo UEFI), usa GPT. Sólo necesitas MBR si el disco va a arrancarse en un equipo muy antiguo con BIOS legacy o en algunos sistemas embebidos.

0.6 - SMART: salud del disco

SMART (Self-Monitoring, Analysis and Reporting Technology) es un sistema integrado en HDDs y SSDs que monitoriza atributos del disco y avisa antes de un fallo inminente. Cualquier disco interno que compres lleva SMART; los pendrives baratos no, los SSDs externos buenos sí.

Atributos clave que mira un técnico

AtributoQué significaCuándo preocuparse
Reallocated Sectors Count (HDD)Sectores defectuosos que el disco ha sustituido por otros de reservaSi crece, el disco se está deteriorando
Current Pending SectorSectores que dieron error y están a la espera de reasignarseCualquier valor > 0 es alerta
Power-On HoursHoras que lleva encendidoVida típica: 30-50.000 h
TemperatureTemperaturaHDD: <50 °C. NVMe: <70 °C
Wear Leveling Count / Percent Used (SSD)Cuánta vida útil de NAND has consumido>80% indica disco al final de su vida
Total LBAs Written (SSD)Cuántos datos has escrito en total. Compáralo con el TBW del fabricanteSi te acercas al TBW, replantea reemplazo
Reported Uncorrectable ErrorsErrores que ni el ECC ha podido corregirCualquier valor distinto de 0 es muy mala señal
Aviso: SMART avisa, pero no detecta todos los fallos. Hay discos que mueren sin previo aviso. La regla de oro sigue siendo tener copia de seguridad; SMART es un complemento, no un sustituto.

0.7 - ¿Por qué con discos virtuales?

Un disco virtual (VDI, VMDK o VHD) es un archivo en el host que VirtualBox presenta a la VM como si fuese un disco real. La VM no distingue: lo ve por su controladora SATA o NVMe, le aplica su asistente de discos, lo particiona y lo formatea exactamente igual. Esto te permite:

  • Crear discos "externos" del tamaño que quieras y desecharlos cuando termines.
  • Probar varios sistemas de archivos sin riesgo de borrar nada importante.
  • Mover el VDI entre VMs como si fuese un pendrive (es un archivo, lo copias y se acabó).
  • Hacer pruebas destructivas sin miedo: si rompes el disco virtual, lo borras y creas otro.

Parte 1 - "Disco externo" virtual en la VM Windows (50 min)

1.1 - Crear un VDI nuevo y conectarlo a la VM

  1. Apaga la VM Windows.
  2. En VirtualBox, selecciona la VM y pulsa Configuración → Almacenamiento.
  3. Sobre la controladora SATA pulsa el icono + disco duro.
  4. Crear nuevo disco: tipo VDI, asignado dinámicamente, tamaño 4 GB. Llámalo pendrive-virtual.vdi.
  5. Acepta y arranca la VM.

1.2 - Inicializar el disco en Windows

  1. Pulsa Win+X y abre Administración de discos.
  2. Verás un cuadro Inicializar disco: elige GPT y acepta.
  3. El disco aparece como "No asignado". Botón derecho → Nuevo volumen simple.
  4. Sigue el asistente: tamaño completo, letra E:, sistema de archivos NTFS, etiqueta PRUEBA-NTFS.
  5. Comprueba que el "pendrive virtual" aparece en Este equipo.
Nombre del VDI creado
Tamaño asignado
Tabla de particiones (GPT / MBR)
Letra y sistema de archivos del volumen

1.3 - Probar los tres sistemas de archivos de Windows

Vamos a formatear el mismo disco en NTFS, exFAT y FAT32 y comprobar qué cambia.

  1. Copia un archivo cualquiera dentro de E:. Comprueba que se ve.
  2. En Administración de discos, botón derecho sobre el volumen → Formatear. Elige exFAT. Etiqueta PRUEBA-EXFAT. Acepta el aviso de borrado.
  3. Vuelve a copiar un archivo y trata de copiar uno mayor de 4 GB (puedes generarlo con: fsutil file createnew C:\test5gb.bin 5368709120 en CMD como administrador).
  4. Repite el formateo, esta vez en FAT32. Ojo: Windows sólo deja FAT32 hasta 32 GB desde el asistente, suficiente para 4 GB.
  5. Intenta copiar el archivo de 5 GB a FAT32. ¿Qué pasa? Anota el mensaje.
Aviso: formatear borra el contenido del volumen entero. En la práctica esto da igual (es un disco virtual de pruebas), pero es lo más típico que destroza datos en una situación real. Lee siempre los avisos antes de aceptar.
Sistema de archivos¿Acepta el archivo de 5 GB?Mensaje de error
NTFS
exFAT
FAT32

1.4 - Medir velocidad de transferencia

  1. Genera un archivo de 1 GB: fsutil file createnew C:\test1gb.bin 1073741824
  2. Copia el archivo de C: a E: (disco virtual). Cronométralo.
  3. Calcula la velocidad: tamaño en MB / segundos = MB/s.
  4. Repite copiando ahora de E: a C:.
SentidoTiempo (s)Velocidad (MB/s)
C: → E: (escritura en disco virtual)
E: → C: (lectura del disco virtual)

La velocidad sale altísima (cientos de MB/s, incluso GB/s). ¿Por qué un "disco virtual" es tan rápido si en el host está en un disco normal? ¿Qué efecto tiene la caché del SO?

1.5 - Comprobar integridad con chkdsk

chkdsk es la herramienta de Windows para revisar y reparar la estructura de un sistema de archivos NTFS, FAT32 o exFAT. La equivalente en Linux es fsck. La verás en cualquier soporte real cuando un disco haya sufrido un apagón en mitad de una escritura o haya empezado a dar errores.

  1. Asegúrate de que E: está formateada en NTFS (o vuelve a formatearla si la dejaste en FAT32).
  2. Abre CMD como administrador.
  3. Ejecuta una comprobación rápida (sólo lectura):
chkdsk E:

Anota la salida: tipo de FS detectado, número de archivos, espacio asignado, espacio libre, sectores defectuosos.

Tipo de FS reportado por chkdsk
Número de archivos en la unidad
¿Reporta sectores defectuosos?

Para una comprobación con reparación se añaden modificadores:

chkdsk E: /F          :: repara errores de FS
chkdsk E: /R          :: localiza sectores dañados y recupera lo legible (incluye /F)
chkdsk E: /F /X       :: fuerza desmontar antes de reparar (necesario si está en uso)
Aviso: chkdsk /R en un disco grande tarda horas. No lo ejecutes si no lo necesitas. Sólo está justificado si sospechas sectores físicamente defectuosos.

¿Por qué chkdsk C: /F sobre la unidad del sistema te pide reiniciar para ejecutarse?

Parte 2 - "Disco externo" virtual en la VM Linux (40 min)

2.1 - Añadir el VDI

  1. Apaga la VM Ubuntu.
  2. Configuración → Almacenamiento → +disco duro → crear nuevo VDI de 4 GB. Llámalo disco-linux.vdi.
  3. Arranca la VM Ubuntu.

2.2 - Detectar el disco

lsblk                # listado de bloques
sudo fdisk -l        # detalle de discos y particiones

Identifica el disco nuevo. Suele aparecer como /dev/sdb (el sistema está en /dev/sda). Anota su nombre exacto.

Identificador del disco nuevo en Linux
Tamaño detectado
¿Tiene tabla de particiones?

2.3 - Particionar y formatear

# SUSTITUYE /dev/sdb por el tuyo. ¡Cuidado, esto BORRA el disco!
sudo parted /dev/sdb -- mklabel gpt
sudo parted /dev/sdb -- mkpart primary ext4 1MiB 100%
sudo mkfs.ext4 -L DATOS-LINUX /dev/sdb1
lsblk -f             # ver UUID y tipo de FS

2.4 - Montar manualmente

sudo mkdir -p /mnt/datos
sudo mount /dev/sdb1 /mnt/datos
df -h | grep datos
echo "hola desde linux" | sudo tee /mnt/datos/prueba.txt
ls -la /mnt/datos
sudo umount /mnt/datos

2.5 - Montaje automático en /etc/fstab

  1. Mira el UUID del disco: lsblk -f o sudo blkid /dev/sdb1.
  2. Edita sudo nano /etc/fstab y añade una línea similar a:
UUID=<tu-uuid>  /mnt/datos  ext4  defaults,nofail  0 2

Guarda el archivo y prueba:

sudo systemctl daemon-reload
sudo mount -a
df -h | grep datos
Aviso: una línea mal escrita en /etc/fstab puede impedir que arranque el sistema. Por eso añadimos nofail: si el disco no aparece, Linux sigue arrancando. Comprueba siempre con sudo mount -a antes de reiniciar.

2.6 - Comparar con NTFS

Linux puede leer y escribir NTFS gracias al driver ntfs-3g (incluido por defecto en Ubuntu). Para comprobarlo:

# Apaga la VM, lleva el VDI E:/PRUEBA-NTFS de la práctica anterior
# (o crea uno nuevo y formatéalo desde Windows). Conéctalo a la VM Linux.
sudo apt install -y ntfs-3g  # ya viene normalmente
lsblk -f                      # debería mostrar tipo "ntfs"
sudo mkdir -p /mnt/ntfs
sudo mount -t ntfs-3g /dev/sdc1 /mnt/ntfs
ls -la /mnt/ntfs

¿Qué ventaja tiene NTFS si tu equipo principal es Windows pero usas Linux como secundario? ¿Y qué inconveniente tiene si el equipo principal es Linux?

2.7 - Comprobar integridad con fsck

fsck es el equivalente Linux de chkdsk. Cada FS tiene su versión: fsck.ext4, fsck.vfat, fsck.exfat... y fsck a secas elige la apropiada según el tipo detectado.

Importante: fsck exige que el sistema de archivos esté desmontado. Pasarlo sobre un FS montado puede corromperlo seriamente. Por eso el FS raíz (/) sólo se chequea durante el arranque.
sudo umount /mnt/datos                  # asegúrate de desmontar
sudo fsck.ext4 -f /dev/sdb1             # -f fuerza incluso si está "limpio"
# salida típica:
# Pass 1: Checking inodes, blocks, and sizes
# Pass 2: Checking directory structure
# Pass 3: Checking directory connectivity
# Pass 4: Checking reference counts
# Pass 5: Checking group summary information
# /dev/sdb1: 11/65536 files (0.0% non-contiguous), 8843/262144 blocks

Para arreglar errores automáticamente sin pedir confirmación:

sudo fsck.ext4 -y /dev/sdb1             # contesta YES a cualquier pregunta

2.8 - tune2fs: ver y ajustar parámetros del FS

En ext2/3/4 puedes consultar (y modificar) parámetros del FS sin reformatear con tune2fs:

sudo tune2fs -l /dev/sdb1               # listado completo de parámetros
sudo tune2fs -L MIDISCO /dev/sdb1       # cambia la etiqueta
sudo tune2fs -m 1 /dev/sdb1             # reduce el "reserved blocks" del 5% al 1%

Mira los campos: Filesystem state (clean / not clean), Mount count, Maximum mount count, Last checked. Linux fuerza un fsck automático cada cierto número de montajes para detectar corrupciones a tiempo.

Estado del FS según tune2fs -l
Número de montajes acumulados
Última revisión (Last checked)

Parte 3 - Carpetas compartidas host-guest (40 min)

VirtualBox permite "compartir" una carpeta del equipo anfitrión con la VM. Es muy útil para mover archivos sin tener que copiarlos: la carpeta se ve a la vez desde el host y desde la VM, en tiempo real. Necesita las Guest Additions instaladas en la VM.

3.1 - Comprobar / instalar Guest Additions en Windows

  1. Con la VM Windows arrancada, en el menú de VirtualBox: Dispositivos → Insertar imagen de Guest Additions CD.
  2. Dentro de Windows aparece una unidad CD nueva. Ejecuta VBoxWindowsAdditions.exe como administrador.
  3. Acepta todo y reinicia.

3.2 - Comprobar / instalar Guest Additions en Linux

sudo apt update
sudo apt install -y virtualbox-guest-utils virtualbox-guest-x11
sudo usermod -aG vboxsf $USER
# cierra sesión y vuelve a entrar para que tome efecto el grupo

3.3 - Crear la carpeta compartida

  1. En el host (tu PC físico) crea una carpeta nueva, por ejemplo C:\compartida en Windows o /home/<tu_usuario>/compartida en Linux.
  2. Pon dentro un par de archivos de prueba.
  3. Con la VM apagada, en VirtualBox: Configuración → Carpetas compartidas → +.
  4. Ruta: la carpeta del host. Nombre: compartida.
  5. Marca Automontar y Hacer permanente. Acepta.
  6. Arranca la VM.

3.4 - Acceder desde la VM Windows

Aparece como una unidad de red automática (por ejemplo Z: o \\VBOXSVR\compartida). Compruébalo en Este equipo.

Letra de unidad asignada (Windows)
Ruta UNC alternativa

3.5 - Acceder desde la VM Linux

Con automontaje aparece en /media/sf_compartida. Si no aparece, monta a mano:

ls /media/sf_compartida
# si no existe:
sudo mkdir -p /mnt/compartida
sudo mount -t vboxsf compartida /mnt/compartida
ls /mnt/compartida

3.6 - Prueba bidireccional

  1. Crea un archivo desde-host.txt en la carpeta del host.
  2. Compruébalo desde dentro de las VMs (Windows y Linux).
  3. Crea ahora desde-vm.txt desde una de las VMs.
  4. Compruébalo desde el host.
Cuándo usar carpetas compartidas vs disco virtual: la carpeta compartida es ideal para mover archivos entre el host y la VM (es bidireccional y en tiempo real). El disco virtual es mejor cuando quieres que la VM "tenga" un disco propio (puedes formatearlo, particionarlo, simular que es un pendrive externo). Si lo que necesitas es trasladar archivos del host a la VM una vez, carpeta compartida; si lo que necesitas es que la VM trate algo como un disco real, VDI.

Parte 4 - NAS casero con Samba en la VM Linux (50 min)

Vamos a convertir la VM Linux en un pequeño NAS y a conectarnos desde la VM Windows. Es el mismo principio que un Synology o un QNAP de oficina pero en miniatura.

Si ya hiciste la Práctica 25 - Compartición de recursos, gran parte de esto te resultará familiar. Aquí lo enfocamos como almacenamiento, no tanto como permisos.

4.1 - Red entre VMs

  1. Configura las dos VMs con Adaptador puente sobre la tarjeta activa del host, igual que hiciste en la práctica 30. Cada VM coge IP del router de la red real.
  2. Anota las IPs:
    • Linux: hostname -I
    • Windows: ipconfig
  3. Ping bidireccional para confirmar.
IP de la VM Linux (servidor NAS)
IP de la VM Windows (cliente)

4.2 - Instalar Samba y crear un share

sudo apt install -y samba
sudo mkdir -p /srv/nas
sudo chown $USER:$USER /srv/nas
sudo chmod 770 /srv/nas
echo "hola desde el NAS" > /srv/nas/bienvenida.txt

Edita sudo nano /etc/samba/smb.conf y añade al final:

[NAS]
   path = /srv/nas
   browseable = yes
   read only = no
   guest ok = no
   valid users = @sambashare

Crea grupo y usuario Samba:

sudo groupadd -f sambashare
sudo usermod -aG sambashare $USER
sudo smbpasswd -a $USER       # te pedirá una contraseña Samba (puede ser distinta a la del sistema)
sudo systemctl restart smbd

4.3 - Conectar desde la VM Windows

  1. Desde Windows, abre el explorador y escribe en la barra: \\IP-LINUX\NAS.
  2. Te pedirá usuario y contraseña: usa el usuario y la contraseña Samba que creaste.
  3. Verás bienvenida.txt.

4.4 - Mapear como unidad de red en Windows

  1. En Este equipo, botón derecho → Conectar a unidad de red.
  2. Letra: N: (de NAS).
  3. Ruta: \\IP-LINUX\NAS.
  4. Marca Conectar de nuevo al iniciar sesión.
  5. Te pedirá credenciales otra vez.

4.5 - Probar la velocidad del NAS

  1. Desde Windows, copia el archivo de 1 GB a N:. Cronométralo.
  2. Cópialo de vuelta a C:.
  3. Compáralo con la velocidad del disco virtual local de la Parte 1.
OperaciónTiempo (s)Velocidad (MB/s)
Subida al NAS (C: → N:)
Bajada del NAS (N: → C:)

¿Por qué la velocidad por SMB suele ser bastante menor que la del disco virtual local de la VM, aunque el "disco" físico subyacente sea el mismo?

Parte 5 - Cifrado de almacenamiento externo (40 min)

Si pierdes un disco externo o un pendrive, cualquiera puede ver lo que hay dentro. Por eso, lo que es sensible se cifra. Vamos a probar las dos soluciones más usadas: BitLocker To Go en Windows y LUKS en Linux.

5.1 - BitLocker To Go en la VM Windows

Requiere edición Pro o Enterprise. Si tu VM es Windows 10/11 Home, salta a la sección 5.2 o usa una alternativa como VeraCrypt.
  1. En la VM Windows, formatea de nuevo el disco virtual E: en NTFS o exFAT.
  2. Botón derecho sobre E:Activar BitLocker.
  3. Elige cifrar con contraseña. Anota la contraseña que pongas (con todos sus carcteres especiales si los hay).
  4. Guarda la clave de recuperación: en archivo, en cuenta Microsoft o impresa. Esto es crítico: si pierdes la contraseña y no tienes la clave, los datos se pierden.
  5. Elige cifrar sólo el espacio usado (es más rápido para discos vacíos).
  6. Modo de compatibilidad: elige compatible si te interesa que funcione en Windows 7/8.
  7. Empezar el cifrado. Espera a que termine.
  1. Apaga la VM Windows. Lleva el VDI a la VM Ubuntu (Configuración → Almacenamiento → +disco duro → Existente → seleccionar el VDI cifrado).
  2. Arranca Ubuntu y haz lsblk -f. ¿Qué tipo de FS detecta? ¿Puedes montarlo?
¿Linux ve el contenido del disco BitLocker?
¿Qué tipo de filesystem reporta lsblk -f?
Truco: Linux puede leer BitLocker, pero hay que instalar dislocker. Por defecto, sólo verá una partición ilegible. Es muy útil saber esto si recibes un disco BitLocker y necesitas rescatar datos desde Linux.

5.2 - LUKS en la VM Linux

LUKS (Linux Unified Key Setup) es el estándar de cifrado de discos en Linux. Vamos a cifrar un disco virtual nuevo:

  1. Apaga la VM Ubuntu. Añade un disco virtual nuevo luks.vdi de 2 GB. Arranca.
  2. Identifica el disco con lsblk. Suele ser /dev/sdc o similar.
sudo apt install -y cryptsetup
# CIFRAR (¡borra el disco!)
sudo cryptsetup luksFormat /dev/sdc        # te pedirá YES en mayúsculas y una passphrase
# ABRIR el contenedor cifrado con un alias
sudo cryptsetup luksOpen /dev/sdc cifrado
# crear un FS dentro
sudo mkfs.ext4 -L SECRETO /dev/mapper/cifrado
sudo mkdir -p /mnt/cifrado
sudo mount /dev/mapper/cifrado /mnt/cifrado
echo "esto es secreto" | sudo tee /mnt/cifrado/secreto.txt
# CERRAR
sudo umount /mnt/cifrado
sudo cryptsetup luksClose cifrado

Comprueba que sin abrir el contenedor el disco es ilegible:

sudo blkid /dev/sdc      # debería decir TYPE="crypto_LUKS"
sudo mount /dev/sdc /mnt/cifrado    # debería fallar
Reto: apaga la VM Ubuntu, mueve el VDI cifrado con LUKS a la VM Windows. ¿Qué ve Windows? ¿Le pide formatearlo? ¡Cuidado, NO lo formatees! Sólo apunta lo que ve, apaga la VM y devuelve el disco a Linux.
¿Qué tipo de FS detecta Linux con blkid?
¿Qué hace Windows al ver el disco LUKS?

5.3 - Comparativa

AspectoBitLocker To GoLUKS
Plataforma nativaWindows Pro/EnterpriseLinux
Compatibilidad cruzadaLinux con dislockerWindows necesita herramientas externas
Algoritmo por defectoAES-128 / AES-256 XTSAES-256 XTS
Recuperación si pierdes contraseñaClave de recuperación de 48 dígitosHasta 8 keyslots con passphrases distintas
Uso típicoPendrives y discos externos en oficina WindowsPortátiles Linux, servidores

Parte 6 - SMART y monitorización del disco (40 min)

Vamos a leer los datos SMART del disco virtual desde Linux y desde Windows. La VM no tiene SMART real (porque el VDI es un archivo, no un disco), pero VirtualBox emula la interfaz: SMART devolverá valores ficticios pero el procedimiento de consulta es idéntico al de un disco físico. En tu día a día como técnico, los comandos serán los mismos.

6.1 - SMART en Linux con smartmontools

sudo apt install -y smartmontools
sudo smartctl --scan                   # lista los discos detectados
sudo smartctl -i /dev/sda              # información básica del disco
sudo smartctl -H /dev/sda              # estado de salud (PASSED / FAILED)
sudo smartctl -A /dev/sda              # tabla de atributos SMART
sudo smartctl -a /dev/sda              # todo lo anterior junto

Mira la salida de -A. Cada fila es un atributo: ID, nombre, valor actual, peor valor, umbral. Un atributo con VALUE <= THRESH indica fallo inminente.

Resultado de smartctl -H /dev/sda
Power-On Hours reportadas
Reallocated Sectors Count
Temperatura

6.2 - Tests SMART (cortos y largos)

SMART permite ejecutar autotests dentro del propio firmware del disco:

sudo smartctl -t short /dev/sda        # test corto (~2 min)
sudo smartctl -t long /dev/sda         # test largo (horas en HDD grande)
sudo smartctl -l selftest /dev/sda     # ver historial de tests
Nota: en un disco virtual estos tests probablemente no produzcan resultados útiles, pero el comando es el que usarás con un disco real. Apúntalo.

6.3 - SMART en Windows con PowerShell y wmic

Windows expone una versión simplificada de SMART. La forma rápida de ver el estado:

:: en CMD como administrador
wmic diskdrive get model,size,status

:: en PowerShell como administrador
Get-PhysicalDisk | Format-Table FriendlyName, MediaType, HealthStatus, OperationalStatus, Size
Get-PhysicalDisk | Get-StorageReliabilityCounter

El campo HealthStatus resume el estado: Healthy, Warning o Unhealthy. Get-StorageReliabilityCounter da datos parecidos a SMART (temperatura, errores, horas encendidas) cuando el driver lo soporta.

Status reportado por wmic diskdrive
HealthStatus en PowerShell
Temperatura reportada (si la hay)

6.4 - Programar revisiones periódicas

En servidores y equipos importantes se programa smartd (Linux) para que vigile los discos en segundo plano y mande email si un atributo cruza un umbral. Configuración mínima en Linux:

sudo systemctl enable --now smartd
sudo systemctl status smartd

El archivo /etc/smartd.conf define qué discos vigilar y a qué dirección enviar avisos. En Windows hay equivalentes de pago (CrystalDiskInfo en modo "residente", Hard Disk Sentinel...).

Un usuario te trae un portátil que se ralentiza muchísimo cada poco rato. ¿Qué tres atributos SMART mirarías primero y por qué?

Parte 7 - Sincronización y backup incremental (50 min)

Una "copia de seguridad" hecha arrastrando carpetas con el ratón funciona la primera vez. La segunda, copias todo otra vez. La tercera, ya no sabes qué cambió. Para algo serio hace falta una herramienta de sincronización incremental: que copie sólo lo que ha cambiado y deje la copia idéntica al origen. En Windows es robocopy; en Linux, rsync.

7.1 - robocopy en Windows

robocopy (Robust File Copy) está incluido en cualquier Windows desde Vista. Es muy potente y soporta reintentos, sincronización idéntica, multihilo y registro detallado.

  1. Crea en C:\ una carpeta origen con varios archivos y subcarpetas.
  2. Asegúrate de que el disco virtual E: está montado y formateado en NTFS.
  3. En CMD ejecuta:
:: copia inicial (toda la carpeta, incluidas subcarpetas, conservando estructura)
robocopy C:\origen E:\backup /E /COPY:DAT /R:2 /W:5 /LOG:E:\robocopy.log /TEE

Modificadores clave:

  • /E — incluye subcarpetas, también las vacías.
  • /MIR — modo espejo: borra en destino lo que ya no está en origen. Cuidado con éste.
  • /COPY:DAT — qué copiar (Datos, Atributos, Timestamps).
  • /R:2 /W:5 — reintentar 2 veces, esperar 5 s entre reintentos.
  • /MT:8 — usar 8 hilos en paralelo (acelera con muchos archivos pequeños).
  • /Z — modo "reanudable" (si se interrumpe, retoma).
  • /LOG:archivo — guarda log; con /TEE también lo muestra en pantalla.
  1. Modifica algún archivo en C:\origen y borra otro.
  2. Vuelve a ejecutar el mismo comando con /MIR en lugar de /E:
robocopy C:\origen E:\backup /MIR /R:2 /W:5

Comprueba en el log: sólo se han copiado los archivos modificados y se ha eliminado el borrado.

Tamaño total copiado en la primera ejecución
Tamaño copiado en la segunda (modificado/borrado)
¿En la segunda se eliminó el archivo borrado del destino?

7.2 - rsync en Linux

El equivalente Linux es rsync. Más versátil aún que robocopy y especialmente eficaz por red (sólo envía diferencias byte a byte mediante un algoritmo propio).

sudo apt install -y rsync           # ya viene en Ubuntu
mkdir -p ~/origen ~/destino
echo "v1" > ~/origen/archivo.txt
mkdir -p ~/origen/sub
echo "hola" > ~/origen/sub/otro.txt

rsync -av ~/origen/ ~/destino/      # copia inicial
ls -la ~/destino/

Modificadores clave:

  • -a — modo "archivo": copia recursiva preservando permisos, timestamps, enlaces simbólicos, owner/group.
  • -v — verboso. -vv, -vvv aún más detalle.
  • --delete — modo espejo (equivalente a /MIR).
  • --dry-run o -n — simulación, no copia nada. Úsalo siempre antes con --delete.
  • -z — comprime en tránsito (útil sólo por red).
  • -P — equivalente a --partial --progress; muestra progreso y permite reanudar.
Cuidado con la barra final: rsync ~/origen/ ~/destino/ copia el contenido de origen dentro de destino. rsync ~/origen ~/destino/ (sin barra) copia la carpeta origen dentro de destino. Es la fuente de errores más típica.

Prueba el modo espejo:

echo "v2" > ~/origen/archivo.txt
rm ~/origen/sub/otro.txt
rsync -av --dry-run --delete ~/origen/ ~/destino/    # simula
rsync -av --delete ~/origen/ ~/destino/              # ahora sí
ls -la ~/destino/ ~/destino/sub/

7.3 - Programar la copia

Windows: Programador de tareas

  1. Crea un fichero C:\backup.bat con:
@echo off
robocopy C:\origen E:\backup /MIR /R:2 /W:5 /LOG+:E:\robocopy.log /NP
  1. Abre Programador de tareasCrear tarea básica.
  2. Frecuencia: diaria, hora 22:00.
  3. Acción: iniciar programa → C:\backup.bat.
  4. Marca Ejecutar con privilegios elevados y Ejecutar tanto si se inicia sesión como si no.

Linux: cron

crontab -e
# añade esta línea para ejecutar la copia cada día a las 22:00
0 22 * * *  rsync -a --delete /home/usuario/origen/ /mnt/datos/backup/ >> /var/log/backup.log 2>&1

# para ver las tareas programadas
crontab -l
Truco profesional: mantén siempre 3 copias en 2 medios distintos, 1 fuera (regla 3-2-1). Una copia local rápida (disco externo o NAS), una en otro medio (cinta, otro disco), y una off-site (la nube, una sede distinta). Una sola copia en un disco externo enchufado al PC se pierde si se rompe la fuente, hay un ransomware o se incendia la oficina.

Te encargas del backup de un servidor de archivos con 500 GB de datos. ¿Por qué robocopy /MIR sin más es una mala estrategia? ¿Qué le faltaría?

Parte 8 - Diagnóstico de problemas frecuentes (40 min)

Los discos externos generan llamadas a soporte por las mismas tres o cuatro razones. Vamos a provocar cada problema en el disco virtual y ver cómo se diagnostica.

8.1 - "El disco está lleno"

  1. En la VM Windows, abre CMD como administrador y rellena E: hasta agotarlo:
fsutil file createnew E:\relleno.bin 4000000000   :: 4 GB de relleno

Intenta copiar otro archivo. Anota el mensaje de error de Windows. Después libera espacio:

del E:\relleno.bin

En Linux haz lo equivalente y comprueba con df -h:

sudo dd if=/dev/zero of=/mnt/datos/relleno.bin bs=1M count=3500
df -h /mnt/datos
sudo rm /mnt/datos/relleno.bin
df -h /mnt/datos
Mensaje exacto de Windows al intentar copiar
Salida de df -h con disco lleno

8.2 - "Quité el USB sin expulsar"

Si copias archivos a un disco externo y lo desenchufas antes de que el sistema haya vaciado la caché de escritura, el FS queda inconsistente. Vamos a simularlo:

  1. En la VM Linux, monta el disco virtual y escribe varios archivos seguidos.
  2. Ejecuta sync para forzar el vaciado de caché. Esto es lo que hace por ti la "extracción segura".
  3. Compara el comportamiento al desmontar correctamente con desconectar el disco "en caliente":
sudo mount /dev/sdb1 /mnt/datos
echo "test" | sudo tee /mnt/datos/escrito.txt
# bien: sync + umount
sudo sync
sudo umount /mnt/datos
# mal: cerrar la VM con el disco montado, equivale a tirar del USB

En la siguiente conexión, fsck detectará el FS como "not clean" y forzará una revisión.

8.3 - Provocar un FS corrupto y repararlo

Sólo en el disco virtual de pruebas. NO ejecutes esto sobre un disco con datos reales.
  1. En Linux, asegúrate de que el disco virtual de la Parte 2 está desmontado.
  2. Sobreescribe los primeros sectores del FS con basura (esto destruye la cabecera del FS):
sudo umount /mnt/datos
sudo dd if=/dev/urandom of=/dev/sdb1 bs=512 count=4 conv=notrunc

Comprueba el destrozo:

sudo blkid /dev/sdb1            # ya no debería reconocer el FS
sudo mount /dev/sdb1 /mnt/datos # debería fallar

Intenta repararlo. ext4 mantiene superbloques de respaldo a lo largo del disco; fsck los puede usar:

sudo mkfs.ext4 -n /dev/sdb1            # -n = SOLO mostrar info, no formatear; lista los superbloques
sudo fsck.ext4 -b 32768 /dev/sdb1      # restaura usando un superbloque de respaldo (el número viene de mkfs -n)

Vuelve a montar y comprueba si los datos siguen ahí.

¿Reconoce blkid el FS tras el destrozo?
¿Consiguió fsck -b recuperarlo?
¿Sobreviven los archivos que había?

8.4 - Recuperación de archivos borrados

Cuando borras un archivo, el FS no lo sobreescribe: simplemente marca sus bloques como libres. Hasta que el espacio se reutilice, el contenido sigue ahí en el disco. Existen herramientas de recuperación:

  • TestDisk / PhotoRec (multiplataforma, libre): recupera particiones y archivos por firma. Lo vas a encontrar en cualquier kit de soporte.
  • Recuva (Windows, gratis): GUI sencilla.
  • extundelete (Linux): específico de ext3/ext4.
  • foremost (Linux): rescate por firma de cabecera, útil si el FS está destrozado.
Si pierdes datos, lo primero que hay que hacer es no escribir nada más en el disco. Cuanto más tarde el sistema en reutilizar los bloques marcados como libres, más posibilidades de recuperación. Lo correcto es: apagar, sacar el disco, conectarlo en sólo lectura a otro equipo y trabajar con la herramienta de recuperación.

8.5 - Checklist "el disco no aparece"

Cuando un usuario te diga "conecté el disco y no aparece", repasa por orden:

  1. ¿Suena/vibra el disco al conectarlo? Si no enciende, problema de alimentación (cable USB, hub sin alimentación propia).
  2. ¿Aparece en Administrador de dispositivos (Windows) o en lsblk (Linux)? Si no aparece, problema físico o de driver.
  3. ¿Aparece como dispositivo pero no como volumen montable? Problema de FS: tabla de particiones o FS corrupto. Mira con diskpart / fdisk -l.
  4. ¿Aparece como volumen sin letra (Windows)? Asígnale una desde Administración de discos.
  5. ¿Pide formatear al conectarlo? FS no reconocido (ej. NTFS en Mac sin driver, ext4 en Windows). NO formatees todavía: hay que comprobar primero qué FS lleva.
  6. ¿La capacidad es absurdamente baja (32 MB en lugar de 64 GB)? Pendrive falsificado o controlador roto. Caso para el cubo de la basura, no se recupera.

Conclusiones y autoevaluación

Imagina que en una empresa pequeña tienen 5 puestos de trabajo y cada usuario lleva su pendrive con sus archivos. ¿Qué le propondrías y por qué? Razónalo con lo aprendido en esta práctica (NAS, sistemas de archivos, cifrado, copias).

Te dan un disco externo de un usuario que dice "no me funciona en Windows, sólo en Linux". ¿Cuál es la causa más probable y qué dos opciones tienes para arreglarlo?

Diseña en cinco líneas la estrategia de copia de seguridad de una asesoría con un servidor de archivos de 200 GB. Aplica la regla 3-2-1 e incluye las herramientas concretas que usarías.

Autoevaluación

AspectoLogrado
Distingo HDD, SSD SATA y NVMe y conozco las implicaciones (TRIM, wear leveling, TBW)
He creado discos virtuales adicionales en VirtualBox y los he conectado como "discos externos" a las VMs
He particionado y formateado discos en NTFS, exFAT, FAT32 y ext4 según el caso
Sé elegir entre MBR y GPT y por qué
Sé elegir el sistema de archivos adecuado según el destino (Windows / mixto / Linux)
He comprobado integridad con chkdsk (Windows) y fsck (Linux)
He configurado carpetas compartidas host-guest con Guest Additions
He montado un NAS con Samba en la VM Linux y conectado desde la VM Windows
Sé mapear unidades de red en Windows y montar discos en Linux con fstab
He cifrado almacenamiento externo con BitLocker To Go y/o LUKS
Entiendo por qué la clave de recuperación de BitLocker es crítica
Sé consultar SMART desde Linux (smartctl) y desde Windows (PowerShell)
Sé hacer copias incrementales con robocopy y rsync, y programarlas
Conozco la regla 3-2-1 de copias de seguridad
Soy capaz de diagnosticar disco lleno, FS corrupto y "extracción no segura"
Volver al índice