Làm cách nào để mở rộng hình ảnh đĩa thô?


13

Các hình ảnh chính thức được cung cấp là hình ảnh đĩa thô, có thể được tạo bằng cách sử dụng dd.

Làm thế nào để tôi làm cho một hình ảnh lớn hơn? Tôi không quan tâm đến việc phân vùng lại hình ảnh đã nói vì điều đó đã được trả lời trong Làm cách nào tôi có thể thay đổi kích thước phân vùng / (root) của mình? .


Không chắc chắn chính xác những gì bạn có nghĩa là bằng cách mở rộng. Bạn đang tìm cách thực hiện 'thay đổi kích thước của phân vùng' trên hình ảnh trước khi đưa nó vào đĩa?
Joost

Đó là một mục tiêu, nhưng để làm được điều đó, người ta phải mở rộng hình ảnh đĩa.
Alex Chamberlain

Câu trả lời:


13

Như đã giải thích trong câu hỏi này, có hai phương pháp mở rộng hình ảnh. Dưới đây là hai ví dụ để mở rộng tệp thêm 1 kilobyte.

DD tạo một tệp không thưa thớt

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

Cắt ngắn tạo một tệp thưa thớt

truncate -s +1024 myimage

Bạn có thể muốn sử dụng cắt ngắn. Một tệp thưa thớt chỉ ghi siêu dữ liệu của các khối mà nó sử dụng, thay vì thực sự viết các khối. Điều này làm cho việc tạo tệp nhanh hơn (vì nó không phải ghi số 0 thực tế vào đĩa) và nó tiết kiệm không gian trên đĩa của bạn.

Lưu ý Hệ thống tệp HFS + của Apple không hỗ trợ các tệp thưa thớt.


HFS + không phù hợp với POSIX? linux.die.net/man/2/truncate
Alex Chamberlain

Nếu hỗ trợ các tệp thưa thớt là một yêu cầu cho POSIX, tôi đoán là không. Dưới đây là một minh chứng tuyệt vời về sự khác biệt giữa HFS + và một số ext (tôi đoán) stackoverflow.com/a/193015/689893 . Rõ ràng là nó tạo ra tệp nhưng nó sử dụng không gian đĩa như một tệp bình thường thay vì một tệp thưa thớt.
Joost

Không, tôi nghĩ rằng tôi đã hiểu lầm!
Alex Chamberlain

Nếu bạn ddlà một tập tin thưa thớt , nó sẽ vẫn đúng chứ?
Alex Chamberlain

Một tệp thưa thớt không chứa dữ liệu, vì vậy tôi đoán bạn chỉ có thể thêm số không. Nó sẽ xử lý phần đó là không thưa thớt.
Joost

10

Một cách cực kỳ dễ dàng để thay đổi kích thước hình ảnh là sử dụng một trong những qemucông cụ được gọi qemu-img. Điều này tất nhiên phụ thuộc vào thực tế là bạn đã qemucài đặt (mà tôi biết bạn đã làm Alex).

Lệnh này trông như thế này:

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

Trong trường hợp filenamelà file hình ảnh, và kích thước là kích thước mà bạn muốn phóng to (hoặc thu nhỏ) hình ảnh.

Ví dụ: nếu bạn muốn mở rộng hình ảnh archarm.imgthêm 2GB, bạn sẽ thực thi:

qemu-img resize archarm.img +2G

Tham khảo manpage, Trước khi sử dụng lệnh này để thu nhỏ hình ảnh đĩa, bạn PHẢI sử dụng hệ thống tệp và các công cụ phân vùng bên trong VM để giảm các hệ thống tệp được phân bổ và kích thước phân vùng tương ứng. Không làm như vậy sẽ dẫn đến mất dữ liệu!
AntonioK
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.