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

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

232
0

Il developer SvenGDK ha rilasciato la versione 3.0 di UFS2Tool, uno strumento avanzato per la creazione, gestione e controllo dei file system UFS1 e UFS2 su PC Windows, sia per immagini disco sia per dispositivi raw.

Il motivo per cui UFS2Tool sta attirando grande attenzione nella community è legato soprattutto alla scena PS5. Il formato ffpkg, utilizzato per backup e installazioni in ambiente jailbroken, si basa proprio su immagini UFS2.

https://twitter.com/SvenGDK/status/2022361623072256139

Grazie a questo strumento è possibile creare immagini compatibili con ShadowMount partendo da una semplice cartella, estrarre contenuti da un backup PS5, modificare file interni senza dover ricreare l’intera immagine e persino espandere partizioni quando lo spazio disponibile non è più sufficiente.

Inoltre, la possibilità di verificare l’integrità del filesystem con strumenti equivalenti a fsck_ufs rende il lavoro molto più sicuro e controllato.

La funzione di mount, resa possibile tramite il driver Dokan, consente di montare un’immagine UFS come un drive di Windows in modalità lettura o lettura-scrittura.

In pratica, si può esplorare e modificare il contenuto come se fosse un normale disco collegato al PC. Per utilizzare tutte le funzionalità sono necessari .NET 8.0 o superiore e la Dokan Library, mentre per operare su dischi fisici servono privilegi di amministratore.

Le immagini create risultano pienamente compatibili con FreeBSD e possono essere montate anche su quel sistema con il classico comando mount -t ufs, a conferma dell’aderenza tecnica del progetto.

La versione 3.0 introduce nuovi comandi per le immagini UFS, come la possibilità di rinominare file e directory direttamente all’interno delle immagini, e amplia il supporto linguistico con l’aggiunta di Svenska, Suomi, Polski, Tiếng Việt, Română, Українська, Čeština e ไทย.

Corretti inoltre diversi problemi critici nel core del programma, tra cui errori di offset e di layout degli inode in UFS1, mancata lettura della dimensione corretta del superblock, overflow silenzioso nella lettura di file oltre i 2GB, e bug nella gestione dei blocchi indiretti che impedivano operazioni su directory di grandi dimensioni.

Altri fix hanno corretto calcoli errati nella creazione di directory, perdite di handle su stream allineati, e discrepanze nel conteggio degli inode riservati.

La rinnovata interfaccia a riga di comando ora gestisce meglio gli argomenti numerici e testuali senza interrompere i comandi makefs, growfs e tunefs, mentre la GUI ha migliorato la validazione dei permessi (chmod) e la gestione dei log per evitare crash.

Infine, il supporto a Windows Dokan Mounting è stato aggiornato: il comando MoveFile ora utilizza Rename e la funzione FindFiles inizializza correttamente i timestamp dei file speciali.

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

Nuovi comandi per immagini UFS

  • rename: Rinomina un file o una directory all’interno di un’immagine UFS.

Nuove Lingue

  • Svenska.
  • Suomi.
  • Polski.
  • Tiếng Việt.
  • Română.
  • Українська.
  • Čeština.
  • ไทย.

Correzioni

Correzioni critiche del Core

  • UFS1: Offset di di_gen errato.
  • UFS1: Mismatch nel layout degli inode all’offset 4.
  • Dimensione del settore del Superblock non recuperata durante la lettura.

Altre correzioni del Core

  • Ufs2Image.ReadFile: new byte[inode.Size] provoca overflow silenzioso per file >2GB (inode.Size è long, array index è int).
  • Ufs2Image.ReadBlockPointerAt: Venivano attraversati solo blocchi diretti e singoli indiretti; restituito 0 per blocchi doppi/tripli indiretti, causando malfunzionamenti su directory grandi.
  • Ufs2Image.AddDirectoryEntry: (dirSize - 1) / blockSize calcola -1 quando dirSize == 0, causando IndexOutOfRangeException.
  • AlignedStream.Dispose: _deviceStream flushato ma mai eliminato — perdita di handle di file.
  • Ufs2ImageCreator.MakeFsImage: Conteggio inode utilizzava totalEntries + RootInode (+2) invece di +3 per inode riservati 0, 1, root.
  • Program.ParseGrowFsSize: Notazione prodotto “x” mancante (es. 512×1024) già supportata da TryParseMakeFsSize.

CLI

  • TryParseIntArg/TryParseLongArg/TryParseStringArg chiamavano PrintNewFsUsage() anche se invocati da tunefs/makefs/growfs.

GUI

  • Validazione chmod.
  • Output Log: Aggiornamenti mancanti e possibile crash.

Windows Dokan Mounting

  • MoveFile ora delega a Rename invece di restituire NotImplemented.
  • FindFiles: timestamps non inizializzati per tipi di file speciali.

Download: UFS2Tool v3

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