Skip to content

Immagini di file system

Un'immagine di file system è un file che contiene un intero file system: il rootfs di un aggiornamento del router, una scheda SD copiata byte per byte, l'immagine di un dispositivo che state esaminando. Il plugin Linux Filesystem Images ne apre una come Peach Commander apre un archivio: posizionate il cursore, premete Invio e il pannello si trova dentro il file system. Da lì il visualizzatore, la ricerca e la copia funzionano esattamente come in una cartella.

In un'immagine non viene mai scritto nulla. Il plugin sa soltanto leggere.

Attivatelo prima

Il plugin viene fornito disattivato. Aprite Impostazioni ▸ Plugin, cercate Linux Filesystem Images e attivatelo.

È disattivato per impostazione predefinita per il modo in cui trova le immagini. Il firmware ha raramente un nome ordinato: il file che cercate si chiama firmware.bin, rootfs.img o semplicemente dump almeno quanto .squashfs, quindi quando l'estensione non dice nulla il plugin guarda i primi byte per decidere. È quello che serve se esaminate immagini di dispositivi, ed è lavoro inutile altrimenti. Attivarlo è il modo di dire quale dei due casi è il vostro.

Un file che si rivela non essere un'immagine resta intatto dopo quell'unica occhiata e si apre come avrebbe sempre fatto.

Che cosa può aprire

Formato Dove lo incontrate
SquashFS Il rootfs di quasi tutti i firmware di router, telecamere e decoder
ext2, ext3, ext4 La partizione principale della maggior parte dei dispositivi Linux embedded
Btrfs Volumi NAS e sistemi Linux recenti, snapshot compresi
JFFS2, UBIFS Memoria flash grezza di hardware embedded vecchio e attuale
cramfs, initramfs File system di avvio e dispositivi datati ancora in servizio
FAT12, FAT16, FAT32 Schede SD, chiavette USB e la partizione EFI di qualsiasi PC moderno
exFAT Schede SD e unità oltre i 32 GB
NTFS Volumi Windows, inclusi i file compressi

Immagini disco con più partizioni

Un'immagine copiata da un intero dispositivo di solito ha una tabella delle partizioni invece di un singolo file system. Un'immagine simile si apre come una cartella per partizione — 1-rootfs, 2-esp — ed entrate in quella che volete. Vengono lette sia le tabelle MBR sia quelle GPT, e dove la tabella registra i nomi delle partizioni vengono usati quei nomi.

Una partizione che il plugin non sa leggere compare comunque, come cartella vuota che porta il nome del suo tipo. Se un dispositivo ha tre partizioni, dovete poter vedere che ne ha tre.

Firmware senza tabella delle partizioni

Un file di firmware estratto da un router o da una telecamera di solito non ha alcuna tabella delle partizioni. È un’intestazione del produttore, un bootloader, un kernel e un rootfs scritti uno dopo l’altro a offset annotati da nessuna parte. Un file simile si apre con una voce per ciascuna parte, ognuna chiamata come l’offset da cui inizia: 0x00230044-squashfs è un file system in cui entrare, 0x00030040-kernel.uimage un file da copiare fuori.

Un pannello all’interno di un file di firmware di un router, con l’intestazione del produttore, il kernel U-Boot e il file system radice SquashFS, ognuno chiamato come l’offset da cui inizia

Le parti si trovano cercando nel file i file system stessi e aprendo ogni riscontro per vedere se ce n’è davvero uno. Uno schema di byte che coincide per caso costa un istante e viene scartato invece di diventare una voce inventata; e un file in cui non si trova alcun file system viene ancora rifiutato e si apre come si sarebbe sempre aperto.

Lo stesso vale per tutto ciò che sta fuori dalle partizioni di un’immagine partizionata. Un Raspberry Pi tiene il proprio bootloader nei megabyte che precedono la partizione 1, e U-Boot occupa sulla maggior parte delle schede ARM un offset fisso nello stesso spazio non assegnato. Quei tratti compaiono accanto alle partizioni, così potete vederli e copiarli fuori.

Mettere per iscritto la struttura

Comandi ▸ Analizza la struttura dell’immagine salva il risultato come file di testo accanto all’immagine e vi porta sopra il cursore: ogni regione con il suo offset, la sua dimensione e ciò che si è rivelata essere, più la tabella delle partizioni se l’immagine ne ha una. Quella tabella è di solito proprio ciò che serve a uno smontaggio o a un ticket, e ricostruirla percorrendo un pannello e ricopiando numeri a mano è un lavoro noioso.

Il rapporto mostra anche ciò che il pannello tralascia — i piccoli spazi di allineamento tra le partizioni, per esempio — e nomina la scheda per cui è stato compilato un kernel U-Boot quando l’immagine lo registra.

Lavorare dentro un'immagine

Vale tutto quello che già conoscete. F3 mostra un file, F5 copia i file in una cartella reale e Trova file cerca nel contenuto dell'immagine. Se ne esce come da un archivio.

I collegamenti simbolici sono mostrati con il loro nome, e copiarne uno all'esterno restituisce un piccolo file di testo con la destinazione del collegamento invece di un collegamento vero: a un'immagine non si può permettere di piazzare un link che punta ovunque sul vostro disco.

Quando un'immagine non si apre

Il plugin vi dice il perché invece di segnalare un file danneggiato, perché le due cose vi portano altrove:

  • Un volume Btrfs in RAID0, RAID10, RAID5 o RAID6, oppure distribuito su più dispositivi. I dati sono sparsi su più dischi e la maggior parte non si trova nel file che avete.
  • Un dump NAND grezzo che contiene ancora la sua area di riserva. All'immagine non manca nulla: è stata copiata insieme ai byte di correzione degli errori. Ricopiatela con nanddump --omitoob.
  • Un volume ext4 o NTFS cifrato, illeggibile senza le sue chiavi.
  • Un file system ext smontato in modo non pulito si apre comunque, ma con una voce contrassegnata in cima alla radice che avverte che il contenuto potrebbe essere superato. Il file system è stato copiato mentre era in uso e le modifiche più recenti stanno in un journal che questo plugin non riproduce. Eseguite e2fsck su una copia se i dettagli contano.

Note

  • Un'immagine viene letta una volta e ricordata, quindi rientrarci è immediato.
  • Le immagini molto grandi vengono lette secondo necessità invece che caricate per intero; un elenco è limitato a due milioni di voci.
  • Un’immagine viene cercata per file system incorporati solo se non ha né una tabella delle partizioni né un file system all’inizio, quindi un’immagine ordinaria si apre esattamente con la stessa rapidità di prima.
  • Il plugin aggiunge un comando di menu e nessuna impostazione propria oltre all’interruttore che lo attiva.