Có thể thay đổi kích thước hình ảnh đĩa QEMU?


12

Giống như tiêu đề nói: Có thể thay đổi kích thước hình ảnh đĩa QEMU trong Linux không? Và nếu vậy, điều gì xảy ra với các phân vùng bên trong nó? Chúng có tự động thay đổi kích thước không (nghi ngờ) hoặc chỉ có một khối không gian mới chưa sử dụng theo sau chúng?

Câu trả lời:


12

Từ đây :

!!! Sao lưu ảnh đĩa của bạn trước khi thử dưới đây !!!

Nếu bạn đang sử dụng một hình ảnh thô thưa thớt, thì hãy làm

dd if=/dev/zero of=hdd.img seek=N obs=1MB count=0"

trong đó hdd.img là hình ảnh định dạng thô mà bạn muốn thay đổi kích thước và N là kích thước mới mà bạn muốn hình ảnh được tính bằng megabyte. Để thay đổi đơn vị N, thay đổi obs thành thứ khác, chẳng hạn như 1GB cho đơn vị tính bằng gigabyte (1000x1000x1000).

Nếu bạn muốn thay đổi kích thước một hình ảnh thô nhưng bạn không muốn nó trở nên thưa thớt (bạn thực sự muốn các số không trong tệp) thì hãy thực hiện "dd if = / dev / zero of = image looking = S Count = NS obs = 1" thay vào đó, trong đó N là kích thước mới và S là kích thước cũ (tính bằng byte).

Nếu bạn muốn thay đổi kích thước hình ảnh qcow2, điều này chưa được hỗ trợ.

email này cho thấy một số thử nghiệm thay đổi kích thước hình ảnh qcow bằng trình chỉnh sửa hex.

Thay đổi kích thước hoặc phát triển hình ảnh ở các định dạng khác (VMware, Bochs, cow hoặc cloop) không được hỗ trợ theo sự hiểu biết tốt nhất của tôi.

Trên máy chủ Windows, có thể thay đổi kích thước hình ảnh đĩa định dạng thô bằng lệnh 'sao chép'. Bạn có thể sử dụng qemu-img để chuyển đổi hình ảnh hiện tại của bạn sang định dạng thô nếu cần. Chúng tôi sẽ sử dụng hình ảnh đĩa định dạng thô tạm thời sẽ được gắn vào cuối hình ảnh đĩa định dạng thô hiện có của bạn. Kích thước của hình ảnh tạm thời này là kích thước hình ảnh hiện tại sẽ được mở rộng bằng cách:

qemu-img create -f raw temp.img 300M

Sau đó, bạn nên phát lệnh dưới đây - orig.img là hình ảnh định dạng thô hiện có của bạn mà bạn muốn làm cho lớn hơn, temp.img là tệp hình ảnh tạm thời được tạo trước đó và new.img là hình ảnh kết quả đã thay đổi kích thước:

copy /b orig.img+temp.img new.img

Sau đó, bạn sẽ cần phân vùng lại và thay đổi kích thước (các) phân vùng và hệ thống tập tin hiện có trên hình ảnh mới. Một phương pháp để thực hiện điều này là khởi động gparted trong QEMU với iso livecd gparted và hình ảnh đĩa mới.


Các liên kết khác bạn có thể muốn kiểm tra nếu cách trên không hoạt động:

http://qemu-forum.ipi.fi/viewtopic.php?p=12362
http://kev.coolcavemen.com/2007/04/how-to-grow-any-qemu-system-image/
http: / /bryan-murdock.blogspot.com/2007/12/resize-qemukvm-windows-disk-image.html
http://www.larsen-b.com/Article/329.html
http://www.brabbel.net / wp / tài liệu lưu trữ / 174


17

Một hình ảnh qcow2 có thể được thay đổi kích thước để phát triển với phiên bản mới / hiện tại của qemu. Ví dụ: tôi có arch.qcow2 là 2G và tôi muốn nó trở thành 50G, trong trường hợp đó tôi gõ:

qemu-img resize arch.qcow2 50G

sau đó qemu nói với tôi:

image resized

đó là nó, tôi chỉ làm điều này ngày hôm nay. redhat thực sự có một số tài liệu hay trên qemu:


3
Tuy nhiên, không gian tăng sẽ không được phân bổ. Bạn sẽ cần thay đổi kích thước đĩa ảo của mình bằng một số công cụ phân vùng.
Yamaneko

Tuyệt vời, giải pháp!
RckLN

qemu-img phiên bản 1.0 cho tôi biếtqemu-img: This image format does not support resize
HDave

3

Câu trả lời ngắn cho năm 2017: Để thêm ví dụ 30 GB vào hình ảnh thô hiện có, tôi chỉ sử dụng lệnh này:

qemu-img resize nameofimg.img +30G

Điều này thêm 30 GB vào tệp hình ảnh hiện tại của bạn (không cần tạo tệp mới). Sau đó, trong VM khách của bạn, bạn có thể mở rộng các phân vùng hiện có của mình, trong Windows 10, ví dụ như với "Quản lý đĩa", thật dễ dàng.

Thêm thông tin và tùy chọn:

man qemu-img

Xem thêm: wiki qemu> qemu-img


1

Có bạn có thể. Và không, nó sẽ không thay đổi các phân vùng hoặc bảng. Bảng phân vùng có thể cần được cập nhật để có kích thước đĩa đầy đủ và cuối cùng sẽ có không gian trống chưa sử dụng nếu bạn phát triển nó và bạn sẽ cắt một phân vùng và mất nó hoặc phần cuối của dữ liệu nếu bạn thu nhỏ nó .

Nếu bạn đang ở trong màn hình qemu (hoặc có thể sử dụng QMP ) và giao diện hỗ trợ nó (chẳng hạn như virtio-scsi-pci với rbd mà tôi đã thử nghiệm ở đây), thì không cần khởi động lại VM, bạn có thể thực hiện việc này:

(qemu) info block -v disk1
disk1 (#block165): rbd:rbd/manjaro (raw)
    Cache mode:       writeback

Images:
image: rbd:rbd/manjaro
file format: raw
virtual size: 4.0G (4294967296 bytes)
[...]

(qemu) block_resize disk1 5120

Và gặp sự cố, hình ảnh được thay đổi kích thước theo kích thước bạn đã chỉ định trong MiB và VM sẽ hiển thị kích thước mới.

Tôi đã thử nghiệm như sau trên qemu 2.7.0:

  • RBD từ Ceph - hoạt động, nhanh, phát triển hoặc thu nhỏ
  • tập tin đĩa qcow2 - hoạt động, chậm hơn, chỉ phát triển
  • tập tin đĩa thô - hoạt động, nhanh, phát triển hoặc thu nhỏ
  • đĩa LVM thô - trong màn hình trông bình thường nhưng không có tác dụng

Đánh giá cao bảng ở phía dưới. Đó là siêu hữu ích.
che giấu1
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.