Come ridimensionare le partizioni in un'immagine completa del disco rigido?


8

Ho preso un'immagine completa di un disco rigido usando:

dd if=/dev/sda of=/home/user/harddriveimg bs=4M

Mi sembra che dovrei essere in grado di ridimensionare le partizioni al suo interno dopo averlo opportunamente montato.

Dato che ho meno familiarità con la riga di comando separata, ho provato:

gparted /home/user/harddriveimg

Mentre questo caricava la tabella delle partizioni, non riusciva a trovare le partizioni stesse, ad esempio harddriveimg0.

È possibile modificare un file immagine come questo, senza riscriverlo su qualche disco, e se sì come? Sarei perfettamente felice con una soluzione che utilizza solo comandi di terminale.


1
Se vuoi accedere a singole partizioni dal tuo file di immagine del disco come dispositivi a blocchi (per, ad esempio, montarli), guarda in kpartx .
Celada,

@Celada, sembra una buona soluzione! Kpartx è solo un wrapper per partx?
Timesquare il

Credo che partxfunzioni solo con dischi reali, perché utilizza la magia di rilevamento delle partizioni basata sul kernel, mentre kpartxutilizza Device Mapper, un meccanismo generico e più potente per creare dispositivi a blocchi nel kernel.
Celada,

@Celada, kpartxnon utilizza il kernel per il rilevamento della tabella delle partizioni, ma ne informa il kernel, quindi richiede un dispositivo parzionabile, come un dispositivo loop.
psusi,

Risposte:


3

È necessario associare un dispositivo di loopback al file:

sudo losetup /dev/loop0 /home/user/harddriveimg

Quindi esegui gparted su quello.


Questo purtroppo non funziona. Gparted sta ancora cercando / dev / loop0p1 per la prima partizione elencata nella tabella delle partizioni e così via.
Timesquare,

@Timesquare, allora sembra che il tuo libparted sia rotto. Quale versione stai usando e quale distribuzione?
psusi,

La mia versione libparted è 2.0.0 su Archlinux. Credo che il problema sia nel metodo di Gparted di selezionare il dispositivo a blocchi associato a un dato record di partizione. (Gparted è la versione 0.14.1)
Timesquare il

@Timesquare, no, questo è il dispositivo a blocchi corretto per la partizione. Hai bisogno di parted 3.0 o successivo.
psusi,

Se capisco cosa stai dicendo correttamente, il problema sta altrove. Dopo aver usato losetup come hai suggerito, i dispositivi a blocchi / dev / loop0p1, / ​​dev / loop0p2 ... non esistono.
Timesquare il
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.