Nell’ambito della sfida al miglioramento del supporto NTFS su Linux, negli ultimi mesi si è registrato l’arrivo di un nuovo – promettente – protagonista: NTFSPLUS. Sviluppato da Namjae Jeon, noto per il suo contributo allo sviluppo del driver exFAT e al mantenimento di KSMBD (server CIFS/SMB in-kernel), NTFSPLUS rappresenta un passo avanti significativo per l’integrazione del file system NTFS nel kernel Linux.
A differenza del driver NTFS3 di Paragon, attualmente in modalità di manutenzione nel kernel Linux, NTFSPLUS si distingue per una base di codice pulita e per una maggiore efficienza nelle operazioni di I/O. L’obiettivo non è soltanto quello di garantire migliori prestazioni in scrittura, ma anche facilitare futuri sviluppi e manutenzioni da parte della comunità Linux.
Funzionalità principali di NTFSPLUS
NTFSPLUS introduce diverse funzionalità già presenti nella versione attuale e altre in programma per le release future (ne parliamo anche nell’articolo citato in apertura):
- Supporto IOmap: ottimizzazione degli accessi sul supporto di memorizzazione per operazioni di I/O ad alta intensità.
- Mount IDMAPPED: gestione avanzata dei permessi tramite mappatura degli ID utente e gruppo.
- Delayed allocation: tecnica che ritarda l’allocazione dei blocchi fino al momento effettivo della scrittura, migliorando l’efficienza e riducendo la frammentazione.
- Utilità per gli utenti: strumenti accessibili agli utenti per la gestione e il controllo del file system.
Sono tutte caratteristiche che collocano NTFSPLUS come un driver più moderno e versatile rispetto alle alternative attuali.
La strada verso l’introduzione nel kernel mainline
Nonostante l’assenza di attività significativa sulle mailing list dal mese di ottobre scorso, il codice di NTFSPLUS continua a evolversi. Di recente, nel ramo ntfs-next del repository ufficiale, Namjae Jeon ha caricato le patch destinate al kernel Linux per NTFSPLUS v2.
Si tratta di aggiornamenti che evidenziano un’elevata quantità di modifiche e riscritture, concentrate in un breve intervallo di tempo. Un indizio evidente della preparazione di NTFSPLUS v2 in vista dell’inserimento nel kernel Linux mainline, versione ufficiale e centrale gestita da Linus Torvalds e dal team di manutentori principali.
L’obiettivo finale è che NTFSPLUS possa diventare il driver NTFS principale nel kernel, offrendo agli utenti Linux una soluzione più performante e completa rispetto agli strumenti attuali, sia per l’uso desktop sia per scenari server.
Gestione dell’Avvio Rapido di Windows da parte di NTFSPLUS
Chi lavora da tempo con il file system NTFS su Linux sa bene che la funzionalità Avvio Rapido di Windows (Fast Startup, in inglese) può creare qualche problema.
Windows esegue un’ibernazione parziale del kernel quando Avvio Rapido risulta abilitato, lasciando alcuni dati in uno stato “non pulito”. Nello specifico, tale modalità lascia alcune informazioni sui file aperti e sullo stato del file system, rendendo la scrittura da Linux potenzialmente non sicura.
Al momento, le informazioni pubbliche su NTFSPLUS indicano che il driver implementa un controllo dello stato del volume NTFS all’atto dell’operazione di montaggio. In pratica, NTFSPLUS legge le strutture interne del volume NTFS per capire se il file system sia stato chiuso correttamente o meno.
Se il volume risulta “dirty” a causa dell’Avvio Rapido o di un crash di Windows (abbiamo parlato del flag dirty anche nel caso di CHKDSK ai tempi delle unità SSD), NTFSPLUS blocca automaticamente le operazioni di scrittura e monta il volume in modalità sola lettura. In questo modo si evita qualsiasi rischio di corruzione dei dati.
Tramite le utility user space di NTFSPLUS, l’utente riceve un avviso sullo stato del file system e sulla necessità di riavviare Windows e disabilitare Avvio Rapido per abilitare la scrittura sicura (Windows+R, powercfg.cpl, nella barra laterale sinistra cliccare su “Specifica comportamento pulsanti di alimentazione”, “Modifica le impostazioni attualmente non disponibili”, togliere la spunta da Attiva avvio rapido).