Tutte le versioni di Windows, anche le più recenti, non sono in grado di leggere e scrivere nelle partizioni Linux. Quando cliccate su una partizione formattata con un file system sconosciuto a Windows, il sistema operativo Microsoft vi delizia con il messaggio “È necessario formattare il disco nell’unità per poterlo utilizzare“. Potenzialmente inducendovi anche in errore (una formattazione comporterebbe l’eliminazione del contenuto della partizione Linux…). Diskinternals Linux Reader è una delle poche utilità in circolazione che sopperisce alla mancanza in Windows di driver nativi per i file system supportati dai sistemi GNU/Linux.
Cos’è Diskinternals Linux Reader e come funziona
DiskInternals Linux Reader è uno strumento software che consente agli utenti di accedere e visualizzare il contenuto delle partizioni Linux direttamente da Windows. È quindi utile per chiunque abbia l’esigenza di accedere da Windows a file system non supportati, come Ext2, Ext3, Ext4, ReiserFS e altri.
Con una semplice installazione e un’interfaccia intuitiva simile a quella di File Explorer, DiskInternals Linux Reader permette di esplorare il contenuto delle partizioni Linux.
La versione gratuita di Diskinternals Linux Reader permette soltanto l’accesso in modalità di sola lettura alle partizioni Linux. Non è possibile scrivere o modificare direttamente i file sulle partizioni Linux. L’accesso ai file può inoltre risultare più lento rispetto ad altri strumenti, soprattutto quando si lavora con partizioni di grandi dimensioni o si eseguono operazioni più complesse come la navigazione di directory contenenti molti file.
L’alternativa gratuita esiste e si chiama WSL (Windows Subsystem for Linux)
Gli utenti di Windows 10 e di Windows 11 possono beneficiare di WSL 2, l’ultima versione del Sottosistema Windows per Linux (Windows Subsystem for Linux). Installabile rapidamente digitando cmd
nella casella di ricerca del sistema operativo, scegliendo Esegui come amministratore quindi impartendo il comando wsl --install
, WSL consente di eseguire un ambiente Linux completo e perfettamente funzionante, senza la necessità di soluzioni per la virtualizzazione più pesanti.
WSL utilizza macchine virtuali gestite con un hypervisor leggero che sono studiate in maniera tale da poter interagire con il file system di Windows, ove necessario. Inoltre, da Windows si può agevolmente accedere ai file e alle directory delle distribuzioni Linux gestite con WSL: basta premere Windows+R
quindi digitare \\WSL$
.
Ne parliamo in modo approfondito nell’articolo dedicato a come portare Linux in Windows.
WSL 2 poggia il suo funzionamento su un kernel Linux completo, migliorando le prestazioni e la compatibilità con le chiamate di sistema Linux. Questo significa che WSL2 può accedere alle unità memorizzato dai file system supportati in Linux. I file system non direttamente supportati a livello di kernel, possono essere implementati con FUSE (Filesystem in Userspace). Quest’ultimo è un meccanismo che consente di implementare e gestire file system direttamente in modalità user space, senza richiedere modifiche sul kernel del sistema operativo.
Prima di proseguire, accertarsi di applicare gli ultimi aggiornamenti disponibili per WSL:
wsl --update
Come accedere alle partizioni Linux con WSL
Senza utilizzare software di terze parti, è quindi possibile accedere in lettura e scrittura alle partizioni Linux da ambiente Windows, proprio sfruttando il kernel nativo integrato in WSL.
Per procedere in tal senso, dopo aver installato WSL e caricato almeno una macchina Linux (esempio: wsl --install -d Ubuntu-24.04
), si può aprire una finestra PowerShell (Windows+X
, Terminale Admin) e scrivere quanto segue:
Get-CimInstance Win32_DiskDrive
Si ottiene così la lista completa delle unità collegate con il sistema in uso (al momento WSL non può accedere alle unità rimovibili con file system Linux). Annotando quanto nella colonna Device ID, è possibile impartire il comando seguente:
wsl --mount \\.\PHYSICALDRIVEX --bare
Al posto di PHYSICALDRIVEX
, va indicato il Device ID dell’unità alla quale si desidera accedere. Anche Microsoft lo esplicita in questo documento di supporto.
A questo punto, dalla macchina Linux in esecuzione all’interno di WSL si può digitare quanto segue:
lsblk
Dopo aver annotato l’identificativo dell’unità con il file system Linux (ad esempio /dev/sdc
), è possibile montarla:
mount /dev/sdc /mnt/linuxdrive
Premendo Windows+R
quindi digitando \\WSL$
, si può adesso accedere all’unità Linux utilizzando l’interfaccia di Esplora file.
Accedere alle unità USB formattate con file system Linux
Abbiamo precisato in precedenza che WSL2 purtroppo ancora non supporta nativamente le unità USB basate su file system Linux.
usbipd è uno strumento software per Windows che consente di condividere dispositivi USB collegati localmente con altre macchine, inclusi sistemi guest Hyper-V e WSL 2. Il software utilizza il protocollo USB/IP per trasmettere messaggi di input/output USB su una rete TCP/IP, permettendo di utilizzare dispositivi USB come se fossero collegati direttamente alla macchina locale. L’autore ne descrive il funzionamento in questo post.
In Windows 11 si può installare usbipd semplicemente digitando quanto segue da una finestra del prompt dei comandi aperta con i diritti di amministratore:
winget install usbipd
I comandi seguenti (da eseguire dalla cartella %programfiles%\usbipd-win
) permettono di ottenere la lista delle unità USB collegate con il sistema quindi di rendere accessibile da WSL 2 quella formattata usando file system Linux:
usbipd list
usbipd bind --busid 1-1
(l’identificativo 1-1
va sostituito con il BUSID desunto dal comando precedente)
usbipd attach --wsl --busid 1-1
Il “giochino” funziona se e solo se la versione del kernel utilizzata nella macchina WSL è superiore a 5.10.60.1. Si può verificarlo digitando il comando uname -a
. Maggiori informazioni sulla procedura da seguire sono disponibili in questo post di Microsoft.