Bagaimana cara memperluas gambar disk baku?

13

Gambar resmi yang disediakan adalah gambar disk mentah, yang dapat dibuat menggunakan dd.

Bagaimana cara membuat gambar lebih besar? Saya tidak tertarik mempartisi ulang gambar tersebut karena sudah dijawab dalam Bagaimana saya dapat mengubah ukuran partisi / (root) saya? .

Alex Chamberlain
sumber
Tidak begitu yakin apa yang Anda maksud dengan memperluas. Apakah Anda ingin melakukan 'pengubahan ukuran partisi' pada gambar sebelum melakukannya ke disk?
Joost
Itu adalah satu tujuan, tetapi untuk melakukan itu, seseorang harus memperluas disk image.
Alex Chamberlain

Jawaban:

13

Seperti dijelaskan dalam pertanyaan ini ada dua metode untuk memperluas gambar. Di bawah ini adalah dua contoh untuk memperluas file dengan 1 kilobyte.

DD membuat file non-sparse

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

Truncate membuat file jarang

truncate -s +1024 myimage

Anda mungkin ingin menggunakan truncate. File jarang hanya menulis metadata dari blok yang digunakannya, alih-alih benar-benar menulis blok. Ini membuat membuat file lebih cepat (karena tidak harus menulis nol sebenarnya ke disk) dan menghemat ruang pada disk Anda.

Catatan Sistem file HFS + Apple tidak mendukung file jarang.

Joost
sumber
HFS + tidak sesuai dengan POSIX? linux.die.net/man/2/truncate
Alex Chamberlain
Jika mendukung file jarang adalah persyaratan untuk POSIX saya kira tidak. Berikut ini adalah demonstrasi yang bagus dari perbedaan antara HFS + dan beberapa ext (saya kira) stackoverflow.com/a/193015/689893 . Tampaknya memang membuat file tetapi menggunakan ruang disk seperti itu file normal, bukan file jarang.
Joost
Tidak, saya pikir saya salah paham!
Alex Chamberlain
Jika Anda ddseorang jarang berkas, akan tetap menjadi benar?
Alex Chamberlain
File jarang memang berisi data, jadi saya kira Anda bisa menambahkan nol. Ini akan menangani bagian itu sebagai non-sparse.
Joost
10

Cara yang sangat mudah untuk mengubah ukuran gambar adalah dengan menggunakan salah satu qemualat yang disebut qemu-img. Ini tentu saja tergantung pada fakta bahwa Anda telah qemumenginstal (yang saya tahu Anda sudah melakukan Alex).

Perintahnya terlihat seperti ini:

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

Di mana filenamefile gambar, dan ukuran adalah ukuran yang Anda ingin memperbesar (atau mengecilkan) gambar.

Misalnya, jika Anda ingin memperpanjang gambar archarm.imgdengan 2GB Anda akan menjalankan:

qemu-img resize archarm.img +2G
Jivings
sumber
Mengacu pada manual, Sebelum menggunakan perintah ini untuk mengecilkan disk image, Anda HARUS menggunakan sistem file dan alat-alat partisi di dalam VM untuk mengurangi sistem file yang dialokasikan dan ukuran partisi yang sesuai. Kegagalan untuk melakukannya akan menyebabkan hilangnya data!
AntonioK