Làm thế nào để kích thước lại phân vùng trong một hình ảnh ổ cứng hoàn chỉnh?


8

Tôi đã chụp ảnh hoàn chỉnh ổ cứng bằng cách sử dụng:

dd if=/dev/sda of=/home/user/harddriveimg bs=4M

Dường như với tôi, rằng tôi sẽ có thể thay đổi kích thước các phân vùng bên trong nó sau khi lắp nó một cách thích hợp.

Vì tôi chưa quen với dòng lệnh chia tay, tôi đã thử:

gparted /home/user/harddriveimg

Trong khi điều này tải bảng phân vùng, nó không thể tự tìm các phân vùng, ví dụ: harddriveimg0.

Có thể sửa đổi một tập tin hình ảnh như thế này, mà không cần ghi lại vào một số đĩa, và nếu vậy thì thế nào? Tôi sẽ hoàn toàn hài lòng với một giải pháp chỉ sử dụng các lệnh đầu cuối.


1
Nếu bạn muốn truy cập các phân vùng riêng lẻ từ tệp hình ảnh đĩa của bạn dưới dạng các thiết bị khối (để, ví dụ, gắn kết chúng), hãy xem xét kpartx .
Celada

@Celada, Đó có vẻ là một giải pháp tốt! Có phải kpartx chỉ là một trình bao bọc cho partx?
Timesapes

Tôi tin rằng partxchỉ hoạt động với các đĩa thực, bởi vì nó sử dụng ma thuật phát hiện phân vùng dựa trên kernel trong khi kpartxsử dụng trình ánh xạ thiết bị, một cơ chế chung và mạnh hơn để tạo các thiết bị khối trong kernel.
Celada

@Celada, kpartxkhông sử dụng kernel để phát hiện bảng phân vùng, nhưng nó thông báo cho kernel về chúng nên nó yêu cầu một thiết bị có thể chia được, chẳng hạn như một thiết bị lặp.
psusi

Câu trả lời:


3

Bạn cần liên kết một thiết bị loopback với tệp:

sudo losetup /dev/loop0 /home/user/harddriveimg

Sau đó chạy gparted trên đó.


Điều này, không may không hoạt động. Gparted vẫn đang tìm kiếm / dev / loop0p1 cho phân vùng đầu tiên được liệt kê trong bảng phân vùng, v.v.
Timesapes

@Timesapes, sau đó có vẻ như libparted của bạn bị hỏng. Phiên bản nào bạn đang sử dụng và phân phối gì?
psusi

Phiên bản libparted của tôi là 2.0.0 trên Archlinux. Tôi tin rằng vấn đề nằm ở phương pháp của Gparted là chọn thiết bị khối được liên kết với một bản ghi phân vùng đã cho. (Gparted là phiên bản 0.14.1)
Timesapes

@Timesapes, không, đó là thiết bị khối chính xác cho phân vùng. Bạn cần chia tay 3.0 trở lên.
psusi

Nếu tôi hiểu những gì bạn đang nói một cách chính xác, vấn đề nằm ở chỗ khác. Sau khi sử dụng losetup như bạn đề xuất, các thiết bị khối / dev / loop0p1, / ​​dev / loop0p2 ... không tồn tại.
Timesapes
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.