Come posso espandere un'immagine del disco non elaborata?


13

Le immagini ufficiali fornite sono immagini del disco non elaborate, che avrebbero potuto essere create utilizzando dd.

Come posso ingrandire un'immagine? Non sono interessato a ripartizionare detta immagine in quanto è già stata data una risposta in Come posso ridimensionare la mia partizione / (root)? .


Non sono esattamente sicuro di cosa intendi per espansione. Stai cercando di eseguire il "ridimensionamento della partizione" sull'immagine prima di trasferirla sul disco?
Joost,

Questo è un obiettivo, ma per farlo, è necessario espandere l'immagine del disco.
Alex Chamberlain,

Risposte:


13

Come spiegato in questa domanda ci sono due metodi per espandere l'immagine. Di seguito sono riportati due esempi per espandere il file di 1 kilobyte.

DD crea un file non sparse

dd if=/dev/zero bs=1k count=1 >> myimage.img

Troncare crea un file sparse

truncate -s +1024 myimage

Probabilmente vuoi usare troncato. Un file sparse scrive solo i metadati dei blocchi che utilizza, invece di scrivere effettivamente i blocchi. Questo rende più veloce la creazione del file (in quanto non deve scrivere zero effettivi sul disco) e consente di risparmiare spazio sul disco.

Nota Il filesystem HFS + di Apple non supporta i file sparsi.


HFS + non è conforme a POSIX? linux.die.net/man/2/truncate
Alex Chamberlain,

Se il supporto di file sparsi è un requisito per POSIX, credo di no. Ecco una bella dimostrazione delle differenze tra HFS + e alcuni ext (immagino) stackoverflow.com/a/193015/689893 . Apparentemente crea il file ma utilizza lo spazio su disco come se fosse un file normale anziché un file sparse.
Joost,

No, penso di aver frainteso!
Alex Chamberlain,

Se hai ddun file sparso , sarà ancora giusto?
Alex Chamberlain,

Un file sparso contiene dati, quindi immagino che tu possa semplicemente aggiungere zero. Gestirà quella parte come non sparsa.
Joost,

10

Un modo incredibilmente semplice per ridimensionare l'immagine è utilizzare uno degli qemustrumenti chiamati qemu-img. Questo ovviamente dipende dal fatto che tu abbia qemuinstallato (che so che già fai Alex).

Il comando è simile al seguente:

qemu-img resize filename [+|-]size[K|M|G|T]

Dove si filenametrova il file di immagine e dimensione è la dimensione che si desidera ingrandire (o ridurre) l'immagine.

Ad esempio, se si desidera estendere l'immagine archarm.imgdi 2 GB, eseguire:

qemu-img resize archarm.img +2G

Facendo riferimento alla pagina di manuale, prima di utilizzare questo comando per ridurre l'immagine del disco, È NECESSARIO utilizzare il file system e gli strumenti di partizionamento all'interno della VM per ridurre di conseguenza i file system allocati e le dimensioni della partizione. In caso contrario, si verificherà una perdita di dati!
AntonioK,
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.