it-swarm-vi.tech

Làm cách nào để lấy lại tất cả / hầu hết dung lượng trống từ một thưa thớt trên OS X

Có khả năng "chống phân mảnh" một hình ảnh bó thưa thớt và lấy lại (hầu hết) không gian trống?

Đây là nền tảng: Tôi đang sử dụng các gói thưa thớt và thỉnh thoảng tôi muốn lấy lại không gian từ chúng để tôi chạy:

hdiutil compact image.sparsebundle

Tuy nhiên, như được giải thích trong trang man, nó chỉ lấy lại các tập tin băng tần hoàn toàn không sử dụng, vì vậy trong trường hợp của tôi, nó nói:

Reclaimed 0 bytes out of 90.4 GB possible.

Tất nhiên, có khả năng sao chép nội dung của hình ảnh này sang một gói thưa thớt mới sau đó được sử dụng thay thế, nhưng điều đó vừa cồng kềnh vừa cần đủ không gian trống cho thao tác này.

Trong khi đó, tôi phát hiện ra rằng đầu ra của lệnh compact có phần sai lệch (tôi hiện đang chạy OS X 10.5.7) vì đôi khi nó liệt kê một kích thước có thể là lớn hơn so với kích thước hiện tại bởi gói hình ảnh trên ổ cứng. Tôi không nhìn gần hơn nhưng đầu ra dường như là kích thước tối đa hoặc "kích thước tối đa" - "kích thước được sử dụng".

33
user4854

Tôi nghĩ rằng 90,4 GB có thể là hoàn toàn sai. Khi tôi chạy:

hdiutil compact *.sparsebundle

... nó giải phóng 16 GB dung lượng, gần như là những gì tôi mong đợi. Thật thú vị, nó nói khoảng "800 GB có thể", nhiều hơn dung lượng HD của tôi. Vì vậy, tôi giả sử con số thứ hai chỉ là một số lý thuyết (thiếu sót).

8
till

@Oscar chỉ chúng tôi đi đúng hướng. Nhưng bạn không cần phải chuyển đổi thành 1 MB và nhỏ gọn, hy vọng lấy lại không gian.

Thay vào đó, chỉ cần sao chép thưa thớt của bạn sang một thưa thớt mới. Điều này, lần lượt, phân mảnh hình ảnh cho bạn. Và đồng thời bạn có thể thay đổi hệ thống tập tin, kích thước và thậm chí các băng tần.

Đây là một ví dụ tôi đã làm gần đây, chuyển đổi hình ảnh "mã" 20GB mà tôi đồng bộ hóa trên các thiết bị.

$ hdiutil create -size 20g -type SPARSEBUNDLE \
-imagekey sparse-band-size=2048 -fs HFSX \
-volname code -attach ~/sync/images/code.sparsebundle

Xem tất cả các tùy chọn với hdiutil create -help.

Lệnh này xuất ra:

/dev/disk3              GUID_partition_scheme
/dev/disk3s1            EFI
/dev/disk3s2            Apple_HFS                       /Volumes/code
created: /Users/eric/sync/images/code.sparsebundle

Bạn có thể nhìn thấy -attach tùy chọn gắn nó dưới /Volumes/code.

Lưu ý: Tôi sử dụng HSFX cho HFS + phân biệt chữ hoa chữ thường vì tôi cũng đồng bộ hóa hình ảnh của mình với Linux và gắn kết chúng. Bạn rất có thể muốn sử dụng HFS+ thay vào đó, vì macOS thường không phân biệt chữ hoa chữ thường.

Bây giờ tất cả những gì tôi phải làm là sao chép mọi thứ vào phần thưa thớt mới của mình:

$ cp -r /Volumes/IMG_CODE/ /Volumes/code/

Và bây giờ để so sánh:

# old sparsebundle
$ du -h ~/sync/images/IMG_CODE.sparsebundle/
15.0G   /Users/eric/sync/images/IMG_CODE.sparsebundle/bands
15.0G   /Users/eric/sync/images/IMG_CODE.sparsebundle/

# new sparsebundle
$ du -h ~/sync/images/code.sparsebundle/
3.0G    /Users/eric/sync/images/code.sparsebundle/bands
3.0G    /Users/eric/sync/images/code.sparsebundle/

Yay Số tiền lẻ 15GB của tôi bây giờ là 3 GB, được phân mảnh và các băng tần đã thay đổi!

2
Eric Duncan

Tôi không biết một cách miễn phí để làm điều đó, nhưng tôi tin Prosoft Drive Genius sẽ làm những gì bạn cần ở đây:

http://www.prosofteng.com/products/drive_genius.php

Bạn gắn kết thưa thớt, chống phân mảnh bằng Drive Genius và sau đó

hdiutil compact

lệnh nên hoạt động.

0
palmer

Tôi có một gói thưa thớt có vấn đề, được cho là có 950 GiB chiếm hết 1024 GiB (SSD của tôi chỉ là 320 GiB = về kích thước, vì vậy điều đó không thể xảy ra). hdi compact đã không giúp đỡ.

Tôi đã chạy "First Aid" từ Disk Utility trên cả hai phân vùng AND và điều đó đã giúp - máy đo không gian trống bắt đầu hiển thị 20 GiB như mong muốn, và sau đó hdi compact chạy mà không có vấn đề.

0
toriningen

Có thể lấy lại 0 byte trong số 90,4 GB.

Tôi đặt cược ổ đĩa chứa gói thưa thớt có dung lượng trống khoảng 90 GB? Vì các gói thưa thớt thường có thể phát triển cho đến khi đĩa đầy, không gian này được báo cáo đơn giản là có sẵn dung lượng trống ... Bạn sẽ thấy các số liệu tương tự trong Disk Utility. Thực sự rất sai lệch.

Sau đây có thể cung cấp cho bạn một số cái nhìn sâu sắc:

hdiutil imageinfo image.sparsebundle
0
Arjan