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 1indica que volem muntar la primera partició.--type ext4especifica 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:
-T0fa servir tots els fils disponibles.-1usa 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.