Come ridurre un file di immagine dopo aver allocato lo spazio completo


13

Sto sperimentando il backup di una scheda SD Raspberry Pi (Raspbian). Sto usando Win32DiskImager per leggere l'immagine (dal lettore di schede SD) sul mio HDD, ma ora il problema delle dimensioni. L'immagine è appena più grande della scheda SD originale e può essere riscritta su una scheda SD più grande, che, se si esegue il backup, ha lo stesso problema.

Dopo aver creato un file .img, come posso rimuovere di nuovo tutto lo spazio inutilizzato? (è perché ho usato raspi-config per allocare tutto lo spazio disponibile alla radice?)

Ho provato a farmi un'idea di come apparivano le partizioni con Cygwin, ma non riesco a far funzionare fdisk (-bash: fdisk: comando non trovato) - (dopo aver letto l' immagine di una scheda da 16Gb contenente spazio non partizionato su la fine: troncare possibile? )

Risposte:


12

Quindi il modo migliore che ho trovato è usare GParted (puoi usare un sistema operativo basato su Linux o eseguire l'avvio da GParted Live USB). È abbastanza semplice trovare istruzioni dettagliate su come eseguire ciascuno di questi passaggi in dettaglio, ma ecco il metodo generale che ho trovato per funzionare:

  1. Esegui GParted, trova la tua scheda SD nell'elenco dei dispositivi e riduci la partizione principale al minimo.
  2. Prendi il valore dell'ultimo settore di questa partizione e moltiplicalo per le dimensioni del settore (512 per me; presumo che questo sia standard, anche se puoi verificarlo nelle impostazioni GParted per il tuo dispositivo): questo ti darà la dimensione totale in byte copiare.
  3. Dividi il numero totale di byte per 4096 (arrotonda se necessario - meglio occupare un po 'più di spazio che non sufficiente), e questo ti darà il "conteggio" per poi entrare nel seguente comando sul terminale in un Linux ambiente (probabilmente puoi farlo dal terminale del sistema operativo Live USB GParted o in Cygwin senza sudo fintanto che lo stai eseguendo come amministratore):

sudo dd if=/dev/mmcblk0 of=/path/to/your/file.img bs=4k count=<count>

Modificare la posizione del dispositivo di input, se necessario. Questo dovrebbe darti un file di immagine finale che è il più piccolo che può essere, omettendo lo spazio vuoto.


Posso verificare che funzioni. Ho provato qualche minuto fa per passare da una scheda da 8 GB a una scheda da 4 GB. Questo dovrebbe funzionare a condizione che i tuoi dati siano più piccoli della tua carta di destinazione.
PNDA

Risolto il problema, ho dimenticato questo post da quando sono passato. Lo proverò in futuro. Sembra che questo sia un problema comune, quindi grazie per il tuo contributo.
Renier Delport,

Questo dovrebbe essere contrassegnato come la risposta corretta! Grazie!
Rodripf,

in qualche modo su Windows?
Flash Thunder,

1
È possibile eseguire l'avvio da un USB Live GParted.
Mike Roberts,

7

Esiste un simpatico strumento chiamato pishrink che riduce il più possibile le dimensioni di un'immagine dd restringendo la partizione di root. Se si avvia l'immagine ripristinata la prima volta che la partizione viene espansa nuovamente alla dimensione massima. Se usi Windows, usa il tuo Linux sul tuo Raspberry per ridurre l'immagine.


0

La versione più recente di Win32DiskImager ha l'opzione Leggi solo allocazioni partizioni. Scrive solo spazio usato, non vuoto.

  1. Riduci partizione su scheda SD con GParted.
  2. Crea un'immagine con Win32DiskImager da una scheda più grande.
  3. Scrivi l'immagine con Win32DiskImager su una scheda più piccola usando l'opzione menzionata più in alto.

-1

La semplice risposta è che non puoi. Se vuoi ridurre l'immagine usa la compressione, che è ciò che la maggior parte fa (su 'NIX gzip funziona bene). Troverai molte discussioni su questo su questo sito.

L'alternativa è eseguire il backup solo dei file. Il mio approccio è descritto di seguito. /raspberrypi//a/28087/8697


1
puoi (se il contenuto dei dati è più piccolo della nuova scheda SD)
Wilf

2
La compressione non aiuta. Non è una questione di spazio su disco in cui si trova il file IMG. È una questione di spazio sulla scheda SD in cui deve essere scritto il file IMG
Thomas Weller,

@Thomas La compressione del file IMG lo ridurrà in modo che si adatti (si spera) alla scheda SD in cui vuoi scriverlo .... mi sto perdendo qualcosa?
user253751,

@immibis: puoi decomprimere il file IMG in modo che utilizzi meno spazio sul disco rigido del tuo PC. Se si scrivono i dati compressi con gzip sulle schede SD, non verranno avviati. I dati devono essere nel formato corretto per l'avvio e non sono in formato gzip.
Thomas Weller,

@Thomas Oh, ho pensato che l'OP volesse archiviare i loro backup su un'altra scheda SD per qualche motivo, invece di ripristinarli.
user253751,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.