Home Homebrew Rilasciato UFS2Tool v4.0: il tool definitivo per gestire filesystem UFS1/UFS2 su Windows

Rilasciato UFS2Tool v4.0: il tool definitivo per gestire filesystem UFS1/UFS2 su Windows

151
0

Il developer SvenGDK ha pubblicato la versione 4.0 di UFS2Tool, un aggiornamento importante per uno strumento che negli ultimi mesi ha conquistato un ruolo centrale tra gli utenti Windows che lavorano con file system UFS1 e UFS2.

Parliamo di un software pensato per creare, gestire, analizzare e modificare immagini disco oppure dispositivi raw formattati in UFS, mantenendo un alto livello di compatibilità tecnica con ambienti come FreeBSD.

L’interesse crescente attorno al progetto è legato in modo particolare alla scena PlayStation 5. Il formato ffpkg, utilizzato per backup e installazioni in ambiente jailbroken, si basa infatti su immagini UFS2.

Questo rende UFS2Tool uno strumento estremamente pratico per chi lavora con contenuti PS5: permette di creare immagini compatibili con ShadowMount partendo da una semplice cartella, estrarre file da backup esistenti, modificare contenuti interni senza dover ricostruire l’intera immagine e persino espandere partizioni quando lo spazio non è più sufficiente.

A tutto questo si aggiunge la possibilità di verificare l’integrità del filesystem con funzioni equivalenti a fsck_ufs, aumentando il livello di sicurezza operativa.

Uno dei punti di forza resta la funzione di mount tramite la libreria Dokan Library, che consente di montare un’immagine UFS come se fosse un normale drive di Windows, in modalità sola lettura o lettura-scrittura.

In questo modo l’utente può esplorare, copiare e modificare file con la stessa semplicità di un disco collegato fisicamente al PC. Per sfruttare tutte le funzionalità sono richiesti .NET 8.0 o superiore e, per operare su dischi fisici, privilegi di amministratore.

Le immagini generate restano pienamente compatibili con FreeBSD e possono essere montate anche lì con il classico comando mount -t ufs, a conferma della solidità tecnica del progetto.

La versione 4.0 introduce un rinnovamento importante dell’interfaccia grafica introducendo un browser dei contenuti con visualizzazione ad albero, che consente di esplorare la struttura interna delle immagini UFS e manipolarne i file tramite drag & drop.

Sono disponibili opzioni rapide per aggiornare la vista, estrarre file, aggiungere file o cartelle ed eliminare elementi, rendendo l’esperienza molto più immediata rispetto alle versioni precedenti.

Integrata inoltre la possibilità di scrivere direttamente immagini UFS su unità USB, HDD o SSD non solo su Windows, ma anche su Linux e macOS, ampliando il raggio d’azione dello strumento.

Per chi lavora con più progetti contemporaneamente è stato introdotto anche un sistema di elaborazione batch, capace di convertire più cartelle in immagini UFS in un’unica operazione.

Tra le novità spicca anche il rilevamento automatico della lingua in base alle impostazioni del sistema operativo, oltre all’introduzione di nuove localizzazioni che ampliano ulteriormente l’accessibilità del software.

Sul fronte tecnico, UFS2Tool ora integra nuovi comandi ispirati al mondo Unix. Il comando du permette di analizzare l’uso dello spazio all’interno di un’immagine UFS, find consente la ricerca ricorsiva di file e directory in base a un pattern di nome, mentre stat mostra informazioni dettagliate sugli inode di file, cartelle e link simbolici.

Si tratta di strumenti particolarmente utili per chi desidera un controllo avanzato e preciso del filesystem.

Sono stati risolti problemi di gestione della memoria e di risorse non rilasciate in caso di errori durante la lettura delle immagini, corretti calcoli errati dello spazio libero, sistemati controlli sui limiti numerici per prevenire overflow e migliorata la validazione dei dati durante operazioni critiche come la lettura e scrittura degli inode.

Anche la gestione dei flussi di lettura è stata resa più robusta, con controlli specifici per evitare letture parziali o dati troncati.

L’interfaccia grafica ha ricevuto ulteriori miglioramenti, tra cui la correzione di messaggi di successo mostrati erroneamente in caso di input non valido e una gestione più sicura dei permessi ricorsivi, che in precedenza potevano rendere inaccessibili alcune directory.

Anche la gestione del mount tramite Dokan è stata rafforzata con controlli più rigorosi su parametri e dimensioni dei file, prevenendo condizioni di errore legate a valori fuori limite.

Con la versione 4.0, UFS2Tool non si limita più a essere un semplice editor di immagini UFS, ma si consolida come una piattaforma completa e professionale per la gestione di filesystem UFS1/UFS2 su Windows.

L’equilibrio tra interfaccia grafica moderna, strumenti avanzati in stile Unix e correzioni strutturali profonde rende questo aggiornamento uno dei più significativi dalla nascita del progetto.

Caratteristiche

  • Creazione di filesystem UFS1 e UFS2 su file immagine o dispositivi raw di Windows.
  • Piena compatibilità con newfs(8) — supporta tutti i flag standard di FreeBSD newfs (eccetto -T, -k, -r).
  • Popolamento da directory — creazione di immagini a partire dal contenuto di una cartella con dimensionamento automatico (-D).
  • Comando makefs — interfaccia compatibile con makefs(8) di FreeBSD per creare immagini filesystem da alberi di directory.
  • Comando growfs — interfaccia compatibile con growfs(8) di FreeBSD per espandere immagini filesystem esistenti.
  • Comando fsck_ufs — controllo di coerenza del filesystem compatibile con fsck_ffs(8)/fsck_ufs(8) di FreeBSD.
  • Estrazione di file da immagini filesystem UFS1/UFS2 esistenti.
  • Sostituzione di file in immagini filesystem UFS1/UFS2 esistenti (file singolo o intero albero di directory).
  • Aggiunta di file a immagini filesystem UFS1/UFS2 esistenti (file singolo o albero di directory, in modo ricorsivo).
  • Eliminazione di file da immagini filesystem UFS1/UFS2 esistenti (file singolo o albero di directory, in modo ricorsivo).
  • Montaggio di immagini UFS come unità Windows con supporto lettura e scrittura tramite Dokan.
  • Lettura e ispezione di immagini filesystem UFS1/UFS2 esistenti.
  • Elenco del contenuto delle directory da immagini UFS1/UFS2.
  • Device I/O — scrittura diretta su unità fisiche e volumi in Windows.

Comandi

newfs — Crea un nuovo file system UFS1/UFS2


ufs2tool newfs [-EJNUjlnt] [-D input-directory] [-L volname] [-O format] [-S sector-size]
               [-a maxcontig] [-b block-size] [-c blocks-per-cg]
               [-d max-extent-size] [-e maxbpg] [-f frag-size]
               [-g avgfilesize] [-h avgfpdir] [-i bytes-per-inode]
               [-m free-space%] [-o optimization] [-p partition]
               [-s size]  [size-MB] [volume-name]

Flag booleani

FlagDescrizione
-ECancella (zero) il dispositivo prima di creare il file system.
-JAbilita il provider gjournal.
-NEsecuzione di prova: visualizza i parametri senza creare il file system.
-UAbilita aggiornamenti software.
-jAbilita il journaling degli aggiornamenti software (implica -U).
-lAbilita il supporto MAC multietichetta
-nNon creare la directory .snap.
-tAbilita il flag TRIM/DISCARD nel superblocco.

Opzioni con valori

OpzioneDescrizionePredefinito
-D directoryDirectory di input: popola l'immagine con il contenuto della directory. Dimensione calcolata automaticamente come dir_size × 1,2 + 10 MB. Vengono copiati tutti i file, inclusi quelli nascosti.
-L volnameEtichetta del volume (max 32 caratteri)
-O formatFormato del file system: 1 (UFS1) o 2 (UFS2)2
-S sector-sizeDimensione del settore in byte512
-a maxcontigNumero massimo di blocchi contiguiauto
-b block-sizeDimensione del blocco (4096–65536, potenza di 2)32768
-c blocks-per-cgBlocchi per gruppo cilindriauto
-d max-extentDimensione massima dell'estensioneauto
-e maxbpgNumero massimo di blocchi per file in un gruppo di cilindriauto
-f frag-sizeDimensione del frammento (≥512, potenza di 2)4096
-g avgfilesizeDimensione media prevista del file16384
-h avgfpdirNumero medio di file previsto per directory64
-i bytes/inodeDensità di inode (byte per inode)auto
-m free-spacePercentuale minima di spazio libero8
-o optimizationtime o spacetime
-p partitionEtichetta di partizione (informativa)
-s sizeDimensione del file system in settori da 512 byteauto

info — Mostra le informazioni del filesystem

ufs2tool info <percorso-immagine>

makefs — Crea un’immagine filesystem a partire da un albero di directory

  • Compatibile con makefs(8) di FreeBSD — consente di creare un’immagine filesystem da una directory senza richiedere dispositivi speciali o privilegi elevati

ufs2tool makefs [-DxZ] [-B endian] [-b blocchi-liberi] [-f file-liberi]
                [-M dimensione-minima] [-m dimensione-massima] [-o opzioni-fs]
                [-S dimensione-settore] [-s dimensione-immagine] [-T timestamp]
                [-t tipo-fs] file-immagine directory

Opzioni specifiche FFS (-o key=value,...)

OpzioneDescrizionePredefinito
versionVersione UFS: 1 per FFS, 2 per UFS21
bsizeDimensione del blocco32768
fsizeDimensione del frammento4096
labelEtichetta del volume (max 32 caratteri)
softupdates0 per disabilitare, 1 per abilitare0
densityByte per inodeauto
minfreeMinimo % free8
optimizationtime o spacetime
avgfilesizeDimensione media prevista del file16384
avgfpdirFile previsti per directory64
maxbpgNumero massimo di blocchi per file in CGauto
extentDimensione massima dell'estensioneauto
maxbpcgNumero massimo di blocchi totali in CGauto

Suffix dei valori di dimensione: b (×512), k (×1024), m (×1M), g (×1G), t (×1T), w (×4). È possibile usare moltiplicazioni con x: ad esempio 512x1024 = 524288.

growfs — Espande un filesystem esistente

ufs2tool growfs [-Ny] [-s dimensione] <percorso-immagine>

Espande un’immagine filesystem UFS1/UFS2 esistente. Equivalente al comando growfs(8) di FreeBSD.

OpzioneDescrizione
-NModalità di test: stampa i parametri senza modificare il file system
-yDai per scontato di sì a tutte le richieste
-s sizeNuova dimensione del file system (predefinita: dimensione del file immagine). Suffissi: b (byte), k (KB), m (MB), g (GB), t (TB). Senza suffisso: settori da 512 byte

Nota: Sono disponibili ulteriori comandi e funzionalità direttamente all’interno della repository ufficiale del progetto.

Changelog

Nuove funzionalità GUI

  • UFS Image Content Browser
    • Browser dei contenuti con visualizzazione ad albero per ispezionare e manipolare i contenuti delle immagini UFS, con supporto drag & drop per aggiungere file.
    • Opzioni disponibili: Aggiorna, Estrai, Aggiungi File, Aggiungi Cartella ed Elimina.
  • Scrittura File System
    • Scrittura di immagini UFS su unità USB/HDD/SSD su Windows, Linux e macOS.
  • PS5
    • Elaborazione batch per convertire più cartelle in immagini UFS in un’unica operazione.
  • Rilevamento automatico lingua
    • Applica automaticamente la lingua in base alle impostazioni locali del sistema operativo all’avvio.

Nuovi comandi per immagini UFS

  • du – Mostra l’utilizzo dello spazio su disco per file e directory in un’immagine filesystem UFS1/UFS2, simile a du(1) di FreeBSD.
  • find – Ricerca ricorsivamente file e directory che corrispondono a un modello di nome all’interno di un’immagine UFS1/UFS2, simile al comando Unix find(1) con opzione -name.
  • stat – Visualizza informazioni dettagliate sugli inode di file, directory o link simbolici all’interno di un’immagine UFS1/UFS2, simile al comando Unix stat(1).

Nuove lingue

  • Bahasa Indonesia
  • Magyar
  • Nederlands
  • Português (Brasil)
  • 中文 (繁體) – Cinese Tradizionale

Correzioni

  • Correzioni core
    • Campo _writer nullable (Ufs2Image.cs): _writer viene inizializzato solo quando readOnly=false ma era dichiarato non-nullable, generando avvisi CS8618.
    • Perdita di risorse nel costruttore (Ufs2Image.cs): se ReadSuperblock() generava un’eccezione (immagine non valida), FileStream/BinaryReader/BinaryWriter già aperti non venivano rilasciati.
    • GetDiskFreeSpace riportava spazio libero errato: calcolava FreeBlocks * FSize ma FreeBlocks indica blocchi (non frammenti), sottostimando di BSize/FSize (tipicamente 8x).
    • Il comando ls ignorava l’argomento [path]: chiamava sempre ListRoot(); ora risolve e mostra la directory specificata.
    • Lettura oltre buffer in Ufs2DirectoryEntry.ReadFrom: voci corrotte con NameLength > nameAreaSize causavano accesso fuori limite.
    • ReadInode()/WriteInode(): il controllo su totalInodes usava moltiplicazione int; convertito a long per evitare overflow che aggiravano la validazione.
    • FsckUfs(): stesso problema di overflow su totalInodes nel dimensionamento degli array di tracking per inode; aggiunta protezione esplicita da overflow poiché gli array richiedono la lunghezza int.
    • AllocateInode()/FsckUfs() Fase 5: globalIno = cgIndex * inodesPerGroup + i poteva andare in overflow.
  • GUI
    • Messaggio di successo errato su input non valido: il parsing della modalità (conversione ottale) era dentro la lambda Task.Run; in caso di FormatException/OverflowException la lambda terminava ma il metodo async esterno mostrava comunque “Permessi modificati con successo”.
    • Directory inaccessibili dopo chmod ricorsivo: image.ChmodAll(mode, mode) applicava la stessa modalità a file e directory. Impostare 644 rimuoveva i bit di esecuzione dalle directory, rendendole non attraversabili. Aggiunto helper AddExecuteBits (coerente con comportamento CLI) per derivare correttamente la modalità delle directory.
  • Affidabilità
    • Gestione letture parziali Stream.Read: aggiunto helper ReadFully che continua a leggere fino al completamento e genera EndOfStreamException su dati troncati.
    • Validazione limiti in ReadInode/WriteInode: verifica numero inode rispetto al totale e offset calcolato rispetto alla lunghezza dello stream prima dell’I/O.
    • Rimosso new BinaryReader(_stream) ridondante in ReadIndirectBlock/ReadDoubleIndirectBlock/ReadTripleIndirectBlock: ora riutilizza il campo _reader esistente.
  • Gestione errori mount Dokan
    • SetEndOfFile: rifiuta lunghezze negative o > int.MaxValue restituendo InvalidParameter.
    • WriteFile: rifiuta offset negativi; restituisce InvalidParameter in caso di overflow newSize > int.MaxValue.
    • Cast espliciti a (int) su valori long già validati per maggiore sicurezza di tipo.

UFS2Tool 4.0 – Download

Di seguito l’elenco completo dei pacchetti disponibili per la versione 4.0, suddivisi per sistema operativo e architettura.

Linux

  • linux-arm64-selfcontained.zip – 36.4 MB
    SHA256: c443de3fcc3e8fbf17a69afe179b77d62b1afe8ed5064f79a0a31afca2550a2a
  • linux-arm64.zip – 8.05 MB
    SHA256: 3eddafc1cfaa991a4661d6cbd6e2464439ead91f8deab9a0587ff18e55b247d4
  • linux-x64-selfcontained.zip – 38.3 MB
    SHA256: 952b2ad2fd0d7cd359eea91a7476660048374590529542ebf4ab0cd128394fc4
  • linux-x64.zip – 8.51 MB
    SHA256: fe49d63665b9b466ab3e44517756e710850ef794f3ee6acd7671cd986b7d7c2d

macOS

  • osx-arm64-selfcontained.zip – 39.4 MB
    SHA256: c6ecc98fabd98f9ee4ef4ac54f5883db360cd83d8355eaeead3487f4d105e493
  • osx-arm64.zip – 11.6 MB
    SHA256: dc4268753b73a6ca73126cc77fe11765643dea3cc21d59776c0c874fd986cde4
  • osx-x64-selfcontained.zip – 41 MB
    SHA256: 6eaca69d7ddfcb77354c1cf003d7dcc714693e67148adfb47beb3273b3338991
  • osx-x64.zip – 11.6 MB
    SHA256: 01c552d13e49f635c292c5c5fcb96d754f367f678158f9399c123f84403dc2a6

Windows

  • win-arm64-selfcontained.zip – 38.9 MB
    SHA256: 9dffc56adc662153eae968caafea818945aa4e5051289414321cbd4ae692bcf7
  • win-arm64.zip – 9.65 MB
    SHA256: 7f1072beb531028d3212075f72d27671ca37cd25c5004d43f4eebd47d5d62aa8
  • win-x64-selfcontained.zip – 40.6 MB
    SHA256: 36121e06baa84f5d1b7a5e305436d5ed1432bc209433fbe9fff6ef19d076fe2a
  • win-x64.zip – 10.2 MB
    SHA256: ccb6671694bbccc4809589e81d7b1e339e6168935f313de0ca4ea71ef71b8813

Codice Sorgente

Nota: le versioni selfcontained includono il runtime .NET integrato e non richiedono installazioni aggiuntive. Le versioni standard richiedono .NET 8.0 o superiore già installato nel sistema.

Download: UFS2Tool v4

Download: Source code UFS2Tool v3

Alcune parti di questo articolo sono state generate con l’aiuto dell’intelligenza artificiale.

🔥 Prodotti in promozione e articoli più venduti: PS5

Vedi altri prodotti PS5

Questo articolo contiene link affiliati a Amazon. Se acquisti tramite questi link, potrei guadagnare una commissione senza costi aggiuntivi per te.

Ultimo aggiornamento 2026-03-12 / Link di affiliazione / Immagini da Amazon Product Advertising API