← Teoría P3 · UF0853 · Estructura de directorios y FS ✓ Guardado

Práctica 3 · Estructura de directorios y sistemas de archivos

UF: UF0853 · Sesión: 3 / 10 · Modalidad: individual
Entorno: VM Windows + VM Ubuntu (VirtualBox) · No requiere pendrives ni discos reales
Entregable: este archivo con capturas y respuestas

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.

Antes de empezar: apaga las dos VMs. Vas a tocar la configuración de discos en VirtualBox con ellas apagadas.

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.
Pega (Ctrl+V), arrastra una imagen o haz clic para seleccionar
Cuidado. El registro es como el sistema nervioso de Windows. Modificar sin saber = sistema roto. Solo mira en esta práctica.

2 Safari por el FHS de Linux

Arranca la VM Ubuntu. Igual que en la sección 1, explora y rellena la tabla.

CarpetaComandoTu observación
/ls /
/etcls /etc | wc -l
/homels /home
/var/logls /var/log
/devls /dev | head -20
/proccat /proc/cpuinfo | head -5
/bootls /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
Pega (Ctrl+V), arrastra una imagen o haz clic para seleccionar
Idea brutal. En Linux todo es un archivo: tu CPU, tu RAM, los procesos, los dispositivos USB, las cámaras... Todo se manipula con los mismos comandos (cat, echo, cp) que usas para archivos normales. Eso es lo que lo hace tan potente.

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.

Paso 1 · Crear el disco virtual (con las VMs apagadas)
  1. VirtualBox → selecciona VM Ubuntu → Configuración → Almacenamiento.
  2. En el controlador SATA: clic en el icono añadir disco duro (verde con un +).
  3. «Crear» → tipo VDI → reservado dinámicamente → tamaño 2 GB → nombre disco_extra.vdi.
  4. Acepta y guarda la configuración.
Pega (Ctrl+V), arrastra una imagen o haz clic para seleccionar
Paso 2 · Detectarlo desde Ubuntu

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).

Pega (Ctrl+V), arrastra una imagen o haz clic para seleccionar

4 Particionar y formatear (Linux)

Vas a crear 3 particiones en /dev/sdb con sistemas de archivos diferentes para comparar.

Antes de tocar nada: verifica que estás operando sobre /dev/sdb y NO sobre /dev/sda. Si te equivocas, te cargas el sistema. Confirma con lsblk que sdb tiene 2G y no tiene particiones aún.
Crear 3 particiones con cfdisk (interfaz visual de consola)

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
  1. 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.
  2. Verás «Free space». Con flechas izq/dcha elige New → Enter. Tamaño: escribe 700M → Enter.
  3. 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.
  4. Mueve la selección al «Free space» que ha quedado. Repite New700M → primary. Esta vez, en el menú elige Type y selecciona Microsoft basic data (para exFAT).
  5. Repite con el resto del espacio libre: New → acepta el tamaño que queda → primary → TypeMicrosoft basic data.
  6. Ya tienes las 3 particiones. Elige Write y cuando te pida confirmación escribe yes (literalmente, con todas las letras).
  7. 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.)

Pega (Ctrl+V), arrastra una imagen o haz clic para seleccionar
Formatear cada partición
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
Montar las particiones
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
Escribir archivos en cada una

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.

Probar el límite de 4 GB de FAT32

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.

Pega (Ctrl+V), arrastra una imagen o haz clic para seleccionar

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)
Paso 1 · Conseguir los UUID

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ónUUID
/dev/sdb1 (ext4)
/dev/sdb2 (exFAT)
/dev/sdb3 (FAT32)
Paso 2 · Editar fstab con cuidado
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.

Paso 3 · Probar sin reiniciar
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
Pega (Ctrl+V), arrastra una imagen o haz clic para seleccionar
Paso 4 · Reiniciar y comprobar
sudo reboot

Tras reiniciar, abre terminal:

df -h | grep mnt

Las 3 particiones deberían aparecer montadas sin que tú las hayas montado.

Si algo va mal: el sistema puede arrancar en modo emergencia pidiéndote la contraseña de root. Edita /etc/fstab, comenta tus líneas con #, guarda y reinicia. Por eso hicimos el backup. Si tienes copia en /etc/fstab.bak: sudo cp /etc/fstab.bak /etc/fstab.

6 Lo mismo en Windows · Administración de discos

Paso 1 · Añadir disco virtual a VM Windows

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.

Paso 2 · Detectar e inicializar
  1. Clic derecho en el botón Inicio → Administración de discos (o diskmgmt.msc).
  2. Saltará un pop-up: «Debe inicializar un disco». Elige GPT → Aceptar.
  3. Verás el disco como «No asignado» de 2 GB.
Paso 3 · Crear 3 particiones
  1. Clic derecho en el espacio no asignado → Nuevo volumen simple.
  2. Tamaño 700 MB → siguiente.
  3. Letra E:.
  4. Formato NTFS, etiqueta DATOS_WIN, formato rápido. Finalizar.
  5. Repite con otros 700 MB → letra F: → formato exFAT, etiqueta EXFAT_WIN.
  6. Repite con el resto → letra G: → formato FAT32, etiqueta FAT32_WIN.
Pega (Ctrl+V), arrastra una imagen o haz clic para seleccionar
Paso 4 · Probar desde el Explorador
  1. Abre el Explorador. En «Este equipo» deberías ver E:, F:, G:
  2. Crea un archivo en cada una.
  3. Comprueba propiedades: clic derecho → Propiedades → pestaña General. ¿Qué sistema de archivos aparece?
LetraFS según Propiedades
E:
F:
G:
Paso 5 · Cambiar letra de unidad

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 archivosWindows lo leeLinux lo leemacOS lo leeUso típico
NTFSNativoSí (ntfs-3g)Solo lectura por defectoDisco principal Windows
FAT32NativoNativoNativoUSB pequeños, ESP
exFATNativoSí (exfatprogs)NativoUSB grandes
ext4NO (necesita ext2fsd o WSL)NativoNoDisco principal Linux
APFSNoSolo lecturaNativoDisco principal Mac
Recordatorio. FAT32 tiene 2 limitaciones grabadas a fuego: máximo 4 GB por archivo y máximo 2 TB por partición. exFAT no las tiene. Si dudas entre FAT32 y exFAT en 2026: usa exFAT.

✓ Autoevaluación final

Marca lo que has completado.

Progreso0%