De qué va. Vas a recorrer el árbol completo de Windows y Linux, comparar dónde guarda cada uno qué tipo de archivo, y después añadir un disco virtual extra a las dos VMs para particionarlo, formatearlo con distintos sistemas de archivos (NTFS, exFAT, ext4) y montarlo. Termina configurando /etc/fstab en Linux para que el disco se monte solo al arrancar.
Por qué importa. Cuando un cliente te llame con «no me caben más datos» o «mi USB no se ve en Linux», estarás haciendo justo lo de esta práctica.
1 Safari por el árbol de Windows
Arranca la VM Windows. Vas a explorar las carpetas y rellenar la tabla con tus hallazgos reales (no copies del libro).
| Carpeta | ¿Qué contiene? | Tamaño aprox. |
|---|---|---|
| C:\Windows | ||
| C:\Windows\System32 | ||
| C:\Program Files | ||
| C:\Program Files (x86) | ||
| C:\Users\<tú>\AppData | ||
| C:\ProgramData |
Truco para ver el tamaño: clic derecho en la carpeta → Propiedades. Para las grandes (System32, Windows) tardará un rato.
El registro de Windows
Ejecuta regedit (necesita admin). El registro es la base de datos de configuración de Windows, equivalente a /etc de Linux pero binaria. Las 5 ramas principales (HKEYs):
- HKEY_CLASSES_ROOT (HKCR) — asociaciones de extensiones y COM.
- HKEY_CURRENT_USER (HKCU) — config del usuario actual.
- HKEY_LOCAL_MACHINE (HKLM) — config del equipo, todos los usuarios.
- HKEY_USERS (HKU) — config de todos los usuarios cargados.
- HKEY_CURRENT_CONFIG (HKCC) — config actual de hardware.
2 Safari por el FHS de Linux
Arranca la VM Ubuntu. Igual que en la sección 1, explora y rellena la tabla.
| Carpeta | Comando | Tu observación |
|---|---|---|
| / | ls / | |
| /etc | ls /etc | wc -l | |
| /home | ls /home | |
| /var/log | ls /var/log | |
| /dev | ls /dev | head -20 | |
| /proc | cat /proc/cpuinfo | head -5 | |
| /boot | ls /boot |
Archivos especiales de /dev
ls -la /dev/sda* # tu disco principal ls -la /dev/null # el agujero negro ls -la /dev/zero # produce ceros infinitos ls -la /dev/random # produce bytes aleatorios # cuidado, son archivos especiales (b o c) file /dev/sda /dev/null /dev/random
/proc: el sistema vivo
/proc no es disco real: es un sistema de archivos virtual que el kernel rellena al vuelo. Cada proceso tiene una carpeta con su PID.
cat /proc/version cat /proc/meminfo | head cat /proc/cpuinfo | grep "model name" | head -1 ls /proc | head # los números son PIDs de procesos ls /proc/self/ # tu propio proceso shell
3 Añadir un disco virtual extra
Vas a simular un USB / disco externo creando un disco virtual nuevo en VirtualBox y conectándolo a cada VM. Esto es 100% reproducible y no necesita hardware.
- VirtualBox → selecciona VM Ubuntu → Configuración → Almacenamiento.
- En el controlador SATA: clic en el icono añadir disco duro (verde con un +).
- «Crear» → tipo VDI → reservado dinámicamente → tamaño 2 GB → nombre disco_extra.vdi.
- Acepta y guarda la configuración.
Arranca la VM Ubuntu y en terminal:
lsblk sudo fdisk -l 2>/dev/null | grep -E "Disk /dev/sd|Disk model"
Verás sda (tu disco original) y sdb (el nuevo, sin particionar todavía).
4 Particionar y formatear (Linux)
Vas a crear 3 particiones en /dev/sdb con sistemas de archivos diferentes para comparar.
cfdisk es una herramienta de particionado con menús que se manejan por teclado: flechas izq/dcha para elegir acción (New, Delete, Write, Quit…), flechas arr/abj para elegir partición, Enter para confirmar.
sudo cfdisk /dev/sdb
- La primera vez que abres un disco vacío te pregunta el tipo de tabla. Selecciona gpt (es el moderno; MBR es el antiguo). Enter.
- Verás «Free space». Con flechas izq/dcha elige New → Enter. Tamaño: escribe 700M → Enter.
- Te ofrece tipo: elige primary → Enter. Por defecto el tipo de partición ya es «Linux filesystem», que es lo que queremos para la primera.
- Mueve la selección al «Free space» que ha quedado. Repite New → 700M → primary. Esta vez, en el menú elige Type y selecciona Microsoft basic data (para exFAT).
- Repite con el resto del espacio libre: New → acepta el tamaño que queda → primary → Type → Microsoft basic data.
- Ya tienes las 3 particiones. Elige Write y cuando te pida confirmación escribe yes (literalmente, con todas las letras).
- Elige Quit para salir.
Comprueba que se han creado:
lsblk /dev/sdb sudo fdisk -l /dev/sdb 2>/dev/null
Debes ver sdb1, sdb2 y sdb3 con sus tamaños. (El 2>/dev/null es para ocultar avisos de error irrelevantes.)
sudo mkfs.ext4 -L "DATOS_LINUX" /dev/sdb1 sudo mkfs.exfat -L "USB_GRANDE" /dev/sdb2 # si no tienes: sudo apt install exfat-fuse exfatprogs sudo mkfs.vfat -F 32 -n "FAT32_COMPAT" /dev/sdb3 # Verifica sudo blkid /dev/sdb* lsblk -f /dev/sdb
sudo mkdir -p /mnt/datos_linux /mnt/usb_grande /mnt/fat32_compat sudo mount /dev/sdb1 /mnt/datos_linux sudo mount /dev/sdb2 /mnt/usb_grande sudo mount /dev/sdb3 /mnt/fat32_compat df -h | grep sdb
Las particiones están montadas dentro de /mnt, que pertenece a root. Para escribir ahí necesitas privilegios. El truco habitual es echo "texto" | sudo tee archivo: tee lee de la tubería y guarda en el archivo con permisos de root (a diferencia de sudo echo > archivo, que no funciona porque la redirección > la hace tu shell, no sudo).
echo "Soy una partición ext4 de Linux" | sudo tee /mnt/datos_linux/hola.txt echo "Soy exFAT, compatible Win/Mac" | sudo tee /mnt/usb_grande/hola.txt echo "Soy FAT32, compatible con todo (4 GB max)" | sudo tee /mnt/fat32_compat/hola.txt ls -la /mnt/datos_linux /mnt/usb_grande /mnt/fat32_compat
Cada tee imprime también por pantalla lo que ha escrito, así que verás el texto repetido. Es normal.
El comando fallocate -l TAMAÑO archivo crea un archivo de ese tamaño sin escribirlo realmente (reserva el espacio en disco al instante, no tarda nada). Lo usamos para hacer la prueba sin esperar.
# 1) Intentar crear un archivo de 5 GB en FAT32 → debe FALLAR sudo fallocate -l 5G /mnt/fat32_compat/grande.bin # Saldrá un error parecido a "File too large" # 2) Mismo intento en exFAT → DEBE FUNCIONAR sudo fallocate -l 5G /mnt/usb_grande/grande.bin ls -lh /mnt/usb_grande/grande.bin
Esto demuestra de forma muy gráfica el famoso límite de 4 GB por archivo de FAT32: por eso para USB modernos se usa exFAT.
5 /etc/fstab: montaje automático
Si reinicias la VM ahora mismo, las particiones se desmontan. Para que se monten solas al arrancar hay que añadirlas a /etc/fstab.
Anatomía de una línea fstab
UUID=xxxx-xxxx /mnt/datos ext4 defaults 0 2 │ │ │ │ │ │ │ │ │ │ │ └── orden de fsck (1=raíz, 2=resto, 0=no) │ │ │ │ └── dump (0 casi siempre) │ │ │ └── opciones de montaje │ │ └── tipo de sistema de archivos │ └── punto de montaje └── dispositivo (UUID es más estable que /dev/sdb1)
Cada partición formateada tiene un UUID (identificador único universal), una cadena hexadecimal que no cambia aunque cambies el orden de los discos. Por eso en /etc/fstab es preferible usar UUID en vez de /dev/sdb1: si mañana enchufas otro disco, sdb1 podría pasar a llamarse sdc1 y el sistema se rompería; el UUID no cambia nunca.
sudo blkid /dev/sdb1 /dev/sdb2 /dev/sdb3
Cada línea de la salida tiene el formato /dev/sdb1: UUID="xxxx-yyyy" TYPE="ext4" .... Anota los 3 UUID en la tabla:
| Partición | UUID |
|---|---|
| /dev/sdb1 (ext4) | |
| /dev/sdb2 (exFAT) | |
| /dev/sdb3 (FAT32) |
sudo cp /etc/fstab /etc/fstab.bak # SIEMPRE backup antes de tocar fstab
sudo nano /etc/fstab
Añade al final estas líneas (sustituye los UUID por los tuyos):
# Disco extra - práctica UF0853 UUID=TU-UUID-1 /mnt/datos_linux ext4 defaults,nofail 0 2 UUID=TU-UUID-2 /mnt/usb_grande exfat defaults,nofail,uid=1000,gid=1000 0 0 UUID=TU-UUID-3 /mnt/fat32_compat vfat defaults,nofail,uid=1000,gid=1000 0 0
nofail es importante: si el disco no está, el sistema arranca igual. Sin nofail, un disco que falle puede dejar el sistema sin arrancar.
sudo umount /mnt/datos_linux /mnt/usb_grande /mnt/fat32_compat df -h | grep mnt # ya no están sudo mount -a # monta todo lo de fstab df -h | grep mnt # vuelven a estar
sudo reboot
Tras reiniciar, abre terminal:
df -h | grep mnt
Las 3 particiones deberían aparecer montadas sin que tú las hayas montado.
6 Lo mismo en Windows · Administración de discos
Apaga la VM Windows. En VirtualBox: Configuración → Almacenamiento → controlador SATA → añadir disco duro → Crear nuevo VDI → 2 GB → disco_extra_win.vdi. Arranca la VM.
- Clic derecho en el botón Inicio → Administración de discos (o diskmgmt.msc).
- Saltará un pop-up: «Debe inicializar un disco». Elige GPT → Aceptar.
- Verás el disco como «No asignado» de 2 GB.
- Clic derecho en el espacio no asignado → Nuevo volumen simple.
- Tamaño 700 MB → siguiente.
- Letra E:.
- Formato NTFS, etiqueta DATOS_WIN, formato rápido. Finalizar.
- Repite con otros 700 MB → letra F: → formato exFAT, etiqueta EXFAT_WIN.
- Repite con el resto → letra G: → formato FAT32, etiqueta FAT32_WIN.
- Abre el Explorador. En «Este equipo» deberías ver E:, F:, G:
- Crea un archivo en cada una.
- Comprueba propiedades: clic derecho → Propiedades → pestaña General. ¿Qué sistema de archivos aparece?
| Letra | FS según Propiedades |
|---|---|
| E: | |
| F: | |
| G: |
Administración de discos → clic derecho en E: → Cambiar la letra y rutas de acceso → cambia a W:. Mira el Explorador.
7 Compatibilidad cruzada Windows ↔ Linux
Resumen visual: qué FS lee qué SO de forma nativa.
| Sistema de archivos | Windows lo lee | Linux lo lee | macOS lo lee | Uso típico |
|---|---|---|---|---|
| NTFS | Nativo | Sí (ntfs-3g) | Solo lectura por defecto | Disco principal Windows |
| FAT32 | Nativo | Nativo | Nativo | USB pequeños, ESP |
| exFAT | Nativo | Sí (exfatprogs) | Nativo | USB grandes |
| ext4 | NO (necesita ext2fsd o WSL) | Nativo | No | Disco principal Linux |
| APFS | No | Solo lectura | Nativo | Disco principal Mac |
✓ Autoevaluación final
Marca lo que has completado.