Jak rozwinąć surowy obraz dysku?

13

Dostarczone oficjalne obrazy to nieprzetworzone obrazy dysków, które można utworzyć za pomocą dd.

Jak mogę powiększyć obraz? Nie jestem zainteresowany partycjonowaniem wspomnianego obrazu, ponieważ już na nie odpowiedziano w Jak zmienić rozmiar partycji / (root)? .

Alex Chamberlain
źródło
Nie jestem pewien, co masz na myśli mówiąc o rozwijaniu. Czy chcesz wykonać „zmianę rozmiaru partycji” na obrazie przed umieszczeniem go na dysku?
Joost
To jest jeden cel, ale aby to zrobić, należy rozszerzyć obraz dysku.
Alex Chamberlain

Odpowiedzi:

13

Jak wyjaśniono w tym pytaniu, istnieją dwie metody powiększania obrazu. Poniżej znajdują się dwa przykłady rozszerzenia pliku o 1 kilobajt.

DD tworzy nieskomplikowany plik

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

Truncate tworzy rzadki plik

truncate -s +1024 myimage

Prawdopodobnie chcesz użyć skrótu. Rzadki plik zapisuje tylko metadane używanych bloków, zamiast faktycznie zapisywać bloki. Dzięki temu tworzenie pliku jest szybsze (ponieważ nie musi on zapisywać rzeczywistych zer na dysku) i oszczędza miejsce na dysku.

Uwaga System plików HFS + firmy Apple nie obsługuje plików rzadkich.

Joost
źródło
HFS + nie jest zgodny z POSIX? linux.die.net/man/2/truncate
Alex Chamberlain
Jeśli obsługa plików rzadkich jest wymagana dla POSIX, to chyba nie. Oto ładna demonstracja różnic między HFS + a niektórymi ext (jak sądzę) stackoverflow.com/a/193015/689893 . Najwyraźniej tworzy plik, ale zużywa miejsce na dysku, jak zwykły plik zamiast pliku rzadkiego.
Joost
Nie, myślę, że źle zrozumiałem!
Alex Chamberlain,
Jeśli rzadki plik, to nadal będzie w porządku? dd
Alex Chamberlain,
Plik rzadki zawiera dane, więc myślę, że możesz po prostu dodać zera. Poradzi sobie z tą częścią jako nieliczną.
Joost
10

Niezwykle łatwym sposobem zmiany rozmiaru obrazu jest użycie jednego z qemunarzędzi o nazwie qemu-img. To oczywiście zależy od tego, że qemuzainstalowałeś (co wiem, że już robisz Alexa).

Polecenie wygląda następująco:

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

Gdzie filenamejest plik obrazu, a rozmiar to rozmiar, który chcesz powiększyć (lub zmniejszyć) obraz.

Na przykład, jeśli chcesz rozszerzyć obraz archarm.imgo 2 GB, wykonaj:

qemu-img resize archarm.img +2G
Jivings
źródło
Odnosząc się do strony podręcznika, przed użyciem tego polecenia do zmniejszenia obrazu dysku MUSISZ użyć systemu plików i narzędzi do partycjonowania wewnątrz maszyny wirtualnej, aby odpowiednio zmniejszyć przydzielone systemy plików i rozmiary partycji. Nieprzestrzeganie tego spowoduje utratę danych!
AntonioK