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.