Cách thu nhỏ tệp hình ảnh sau khi phân bổ toàn bộ không gian


13

Tôi đang trong quá trình thử nghiệm sao lưu thẻ sd Raspberry Pi (Raspbian). Tôi đang sử dụng Win32DiskImager để đọc hình ảnh (từ đầu đọc thẻ SD) vào ổ cứng của tôi, nhưng bây giờ là vấn đề kích thước. Hình ảnh chỉ lớn hơn thẻ SD ban đầu và chỉ có thể được ghi lại vào thẻ SD lớn hơn, nếu bạn sao lưu thì cũng có vấn đề tương tự.

Sau khi tạo tệp .img, làm cách nào tôi có thể xóa tất cả không gian chưa sử dụng lại? (có phải vì tôi đã sử dụng raspi-config để phân bổ tất cả không gian có sẵn cho thư mục gốc?)

Tôi đã cố gắng để biết được phân vùng trông như thế nào với Cygwin, nhưng không thể quản lý để fdisk hoạt động (-bash: fdisk: lệnh không tìm thấy) - (sau khi đọc Hình ảnh của thẻ 16Gb chứa không gian không liên kết tại kết thúc: Có thể cắt bớt? )

Câu trả lời:


12

Vì vậy, cách tốt nhất mà tôi đã tìm thấy là sử dụng GParted (bạn có thể sử dụng HĐH dựa trên Linux hoặc khởi động từ USB Live GParted). Nó đủ đơn giản để tìm hướng dẫn chi tiết về cách thực hiện từng bước một cách chi tiết, nhưng đây là phương pháp chung mà tôi đã tìm thấy để làm việc:

  1. Chạy GParted, tìm thẻ SD của bạn trong danh sách thiết bị và thu nhỏ phân vùng chính thành nhỏ như nó sẽ đi.
  2. Lấy giá trị của khu vực cuối cùng của phân vùng này và nhân số này với kích thước của khu vực (512 đối với tôi; tôi cho rằng đây là tiêu chuẩn, mặc dù bạn có thể kiểm tra điều này trong cài đặt GParted cho thiết bị của mình): điều này sẽ cung cấp cho bạn tổng kích thước theo byte sao chép.
  3. Chia tổng số byte cho 4096 (làm tròn số nếu bạn cần - tốt hơn là chiếm thêm một chút dung lượng so với không đủ) và điều này sẽ cung cấp cho bạn 'đếm' để sau đó nhập vào lệnh sau tại thiết bị đầu cuối trong Linux môi trường (Bạn có thể thực hiện việc này từ thiết bị đầu cuối của hệ điều hành GParted Live USB hoặc trong Cygwin mà không cần sudo miễn là bạn đang chạy nó với tư cách quản trị viên):

sudo dd if=/dev/mmcblk0 of=/path/to/your/file.img bs=4k count=<count>

Thay đổi vị trí thiết bị đầu vào nếu bạn cần. Điều này sẽ cung cấp cho bạn một tệp hình ảnh cuối cùng nhỏ nhất có thể, bỏ qua khoảng trống.


Tôi có thể xác minh rằng điều này hoạt động. Tôi mới thử cách đây vài phút để chuyển từ thẻ 8GB sang thẻ 4GB. Điều này sẽ hoạt động miễn là dữ liệu của bạn nhỏ hơn thẻ đích của bạn.
PNDA

Sắp xếp quên mất bài này kể từ khi tôi chuyển đi. Sẽ thử nó trong tương lai. Có vẻ như đây là một vấn đề phổ biến, vì vậy cảm ơn cho đầu vào của bạn.
Renier Delport 04/07/2016

Điều này nên được đánh dấu là câu trả lời chính xác! Cảm ơn!
Rodripf

có cách nào trên Windows không?
Flash Thunder

1
Bạn có thể khởi động từ USB Live GParted.
Mike Roberts

7

Công cụ tồn tại có tên là pishrink giúp giảm kích thước của hình ảnh dd càng nhiều càng tốt bằng cách thu nhỏ phân vùng gốc. Nếu bạn khởi động lại hình ảnh được khôi phục lần đầu tiên phân vùng được mở rộng trở lại kích thước tối đa của nó. Nếu bạn chạy Windows, chỉ cần sử dụng Linux trên Raspberry để thu nhỏ hình ảnh.


0

Phiên bản mới nhất của Win32DiskImager có tùy chọn Chỉ đọc phân vùng. Nó chỉ viết không gian sử dụng, không trống.

  1. Thu hẹp phân vùng trên thẻ sd với GParted.
  2. Tạo hình ảnh với Win32DiskImager từ thẻ lớn hơn.
  3. Viết hình ảnh với Win32DiskImager trên thẻ nhỏ hơn bằng cách sử dụng tùy chọn được đề cập cao hơn.

-1

Câu trả lời đơn giản là bạn không thể. Nếu bạn muốn thu nhỏ hình ảnh, hãy sử dụng nén, đó là điều cần làm nhất (trên 'NIX gzip hoạt động tốt). Bạn sẽ tìm thấy nhiều cuộc thảo luận về điều này trên trang web này.

Thay thế là chỉ sao lưu các tập tin. Cách tiếp cận của tôi được mô tả trong các điều sau đây. /raspberrypi//a/28087/8697


1
bạn có thể (nếu nội dung dữ liệu nhỏ hơn thẻ SD mới)
Wilf

2
Nén sẽ không giúp đỡ. Đây không phải là vấn đề về không gian đĩa nơi đặt tệp IMG. Đó là vấn đề về không gian trên thẻ SD nơi tệp IMG sẽ được ghi vào
Thomas Weller

@Thomas Nén tệp IMG sẽ làm cho nó nhỏ hơn để nó (hy vọng) vừa với thẻ SD mà bạn muốn ghi vào .... tôi có thiếu gì không?
dùng253751

@immibis: Bạn có thể gzip tệp IMG để nó sử dụng ít dung lượng hơn trên đĩa cứng của PC. Nếu bạn ghi dữ liệu được nén vào thẻ SD, nó sẽ không khởi động. Dữ liệu cần phải ở định dạng chính xác để khởi động và nó không phải là định dạng gzip.
Thomas Weller

@Thomas Ồ, tôi nghĩ rằng OP muốn lưu trữ bản sao lưu của họ trên một thẻ SD khác vì một số lý do, trái ngược với việc khôi phục chúng.
dùng253751
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.