Muntar un disc ext4 a Windows amb WSL2

Muntar un disc ext4 a Windows amb WSL2 i copiar-ne el contingut amb una pipe

Fa poc m’he trobat amb una situació força habitual quan remenes discos, Linux, còpies antigues i màquines Windows: tenia un disc extern formatat en ext4, connectat per USB a un ordinador amb Windows, i volia copiar-ne el contingut cap a un altre disc sense haver de fer invents estranys.

Windows, de sèrie, no llegeix ext4 com si fos NTFS o exFAT. Però si tens WSL2 instal·lat, pots muntar el disc directament a Ubuntu i treballar-hi com si fossis en un Linux normal.

En aquest post explico el procés: muntar el disc ext4, crear un accés curt i copiar-ne el contingut amb tar, zstd i una pipe.


1. Obrir PowerShell com a administrador

El primer punt és important: la comanda per muntar discos físics a WSL necessita permisos elevats.

Cal obrir PowerShell com a administrador.

Si no ho fem, podem trobar-nos amb un error com aquest:

No se pudo conectar el disco "\\.\PHYSICALDRIVE3" a WSL2: Error: 0x80040315
Código de error: Wsl/Service/AttachDisk/MountDisk/WSL_E_ELEVATION_NEEDED_TO_MOUNT_DISK

Aquest error només vol dir una cosa: PowerShell no té permisos d’administrador.


2. Identificar el disc USB

Des de PowerShell podem veure els discos connectats amb:

Get-Disk

Cal localitzar el disc USB que volem muntar. En el meu cas era el disc número 3, que Windows identifica com:

\\.\PHYSICALDRIVE3

És important assegurar-se bé del número de disc abans de muntar-lo.


3. Muntar la partició ext4 a WSL2

Un cop identificat el disc, podem muntar la partició ext4 amb:

wsl --mount \\.\PHYSICALDRIVE3 --partition 1 --type ext4

En aquest exemple:

  • \\.\PHYSICALDRIVE3 és el disc físic.
  • --partition 1 indica que volem muntar la primera partició.
  • --type ext4 especifica el sistema de fitxers.

Si WSL estava obert o el disc queda bloquejat, pot anar bé reiniciar WSL abans:

wsl --shutdown

I tornar a provar:

wsl --mount \\.\PHYSICALDRIVE3 --partition 1 --type ext4

4. Entrar a Ubuntu WSL

Ara ja podem entrar a Ubuntu:

wsl

I dins de WSL podem mirar els punts de muntatge:

ls /mnt/wsl

Normalment el disc apareixerà amb un nom semblant a:

PHYSICALDRIVE3p1

El camí complet podria ser:

/mnt/wsl/PHYSICALDRIVE3p1

5. Crear un enllaç simbòlic curt

El camí /mnt/wsl/PHYSICALDRIVE3p1 és una mica incòmode. Per això vaig crear un enllaç simbòlic curt:

sudo ln -s /mnt/wsl/PHYSICALDRIVE3p1 /mnt/s

A partir d’aquí, puc accedir al disc simplement amb:

cd /mnt/s

Si mai cal esborrar aquest enllaç, s’ha de fer així:

sudo rm /mnt/s

No cal fer rm -r, perquè /mnt/s només és un enllaç simbòlic.


6. Preparar la carpeta de destí

El contingut del disc ext4 el volia copiar a:

/mnt/d/2026_ORDENAT/2025_Shared

Primer creo la carpeta si no existeix:

mkdir -p /mnt/d/2026_ORDENAT/2025_Shared

Aquí /mnt/d correspon a la unitat D: de Windows.


7. Copiar amb tar, compressió i pipe

La idea era copiar el contingut del disc /mnt/s cap al destí fent servir una pipe.

Una primera temptació seria fer servir /mnt/s/*, però això pot deixar fora fitxers ocults. Per això és millor fer:

tar -C /mnt/s -cf - .

Això empaqueta tot el contingut de /mnt/s, inclosos fitxers ocults.

La comanda completa amb compressió zstd és:

tar -C /mnt/s -cf - . \
  | zstd -T0 -1 \
  | zstd -d \
  | tar -C /mnt/d/2026_ORDENAT/2025_Shared -xpf -

Aquesta pipe fa el següent:

disc ext4 → tar stream → compressió zstd → descompressió → extracció al destí

És una manera una mica friki, però molt elegant, de copiar dades entre discos fent servir fluxos.


8. Per què comprimir si són discos diferents?

Encara que origen i destí siguin discos diferents, la compressió només ajuda en alguns casos.

Pot ajudar si:

  • el disc de destí és més lent escrivint,
  • la CPU va sobrada,
  • hi ha molts fitxers compressibles,
  • el coll d’ampolla és l’escriptura.

Pot no ajudar gaire si:

  • el disc origen ja és lent,
  • el bus USB limita la velocitat,
  • els fitxers ja estan comprimits,
  • la CPU acaba fent més nosa que servei.

Per això he fet servir zstd -1, que és compressió ràpida:

zstd -T0 -1

On:

  • -T0 fa servir tots els fils disponibles.
  • -1 usa un nivell de compressió baix però ràpid.

9. Versió amb sudo

Si volem preservar millor permisos, propietaris i alguns atributs Linux, podem fer:

sudo tar -C /mnt/s -cpf - . \
  | zstd -T0 -1 \
  | zstd -d \
  | sudo tar -C /mnt/d/2026_ORDENAT/2025_Shared -xpf -

Ara bé, si el destí és una unitat de Windows, probablement NTFS o exFAT, no tots els permisos Linux es conservaran igual que en un ext4 real.

Per copiar documents, fotos, projectes i carpetes normals, cap problema. Però si estem copiant un sistema Linux sencer, amb permisos, enllaços, dispositius especials i propietaris, llavors seria millor que el destí també fos ext4.


10. Afegir barra de progrés amb pv

Si volem veure el progrés de la còpia, podem instal·lar pv i zstd:

sudo apt update
sudo apt install pv zstd

I executar:

tar -C /mnt/s -cf - . \
  | pv \
  | zstd -T0 -1 \
  | zstd -d \
  | tar -C /mnt/d/2026_ORDENAT/2025_Shared -xpf -

pv mostra el flux de dades que passa per la pipe. És útil per saber que allò continua treballant i no s’ha quedat mort.


11. Alternativa simple sense compressió

Si no volem complicar-nos, també podem fer una còpia directa amb tar | tar:

tar -C /mnt/s -cf - . \
  | tar -C /mnt/d/2026_ORDENAT/2025_Shared -xpf -

Aquesta opció sovint és molt bona. De fet, si la compressió no aporta cap guany real, pot acabar sent més ràpida.


12. Comprovar la còpia

Per comprovar mides:

du -sh /mnt/s
du -sh /mnt/d/2026_ORDENAT/2025_Shared

I per veure que el contingut hi és:

ls -la /mnt/s
ls -la /mnt/d/2026_ORDENAT/2025_Shared

13. Desmuntar el disc

Quan acabem, sortim de WSL i desmuntem el disc des de PowerShell com a administrador:

wsl --unmount \\.\PHYSICALDRIVE3

Si dona problemes perquè algun procés encara l’està fent servir, podem tancar WSL:

wsl --shutdown

I després tornar a desmuntar:

wsl --unmount \\.\PHYSICALDRIVE3

Resum final

El flux complet seria aquest.

A Windows, des de PowerShell com a administrador:

Get-Disk
wsl --mount \\.\PHYSICALDRIVE3 --partition 1 --type ext4
wsl

A Ubuntu WSL:

ls /mnt/wsl
sudo ln -s /mnt/wsl/PHYSICALDRIVE3p1 /mnt/s

mkdir -p /mnt/d/2026_ORDENAT/2025_Shared

tar -C /mnt/s -cf - . \
  | zstd -T0 -1 \
  | zstd -d \
  | tar -C /mnt/d/2026_ORDENAT/2025_Shared -xpf -

I per acabar, des de PowerShell:

wsl --unmount \\.\PHYSICALDRIVE3

Una solució molt pràctica per recuperar o copiar dades d’un disc Linux sense haver d’arrencar una màquina Linux completa. WSL2, en aquest cas, fa molt bé de pont entre els dos mons: Windows i Linux.