ওএস এক্সের স্পার্সবান্ডল থেকে সমস্ত / সর্বাধিক মুক্ত স্থান কীভাবে দাবি করা যায়


30

কোনও বিচ্ছিন্ন বান্ডিল চিত্র "ডিগ্র্যাগেনটিজ" করার এবং মুক্ত স্থানটির বেশিরভাগ অংশ পুনরায় দাবি করার কোনও সম্ভাবনা আছে কি?

এখানে ব্যাকগ্রাউন্ডটি রয়েছে: আমি স্পার্স বান্ডিলগুলি ব্যবহার করছি এবং এখনই এবং তারপর আমি সেগুলি থেকে স্থানটি পুনরায় দাবি করতে চাই যাতে আমি চালাই:

hdiutil compact image.sparsebundle

তবে ম্যান পেজে যেমন ব্যাখ্যা করা হয়েছে, এটি কেবল সম্পূর্ণ অব্যবহৃত ব্যান্ড ফাইলগুলি পুনরায় দাবি করে, তাই আমার ক্ষেত্রে এটি বলে:

Reclaimed 0 bytes out of 90.4 GB possible.

অবশ্যই এই চিত্রটির বিষয়বস্তুগুলি একটি নতুন স্পার্স বান্ডেলে অনুলিপি করার সম্ভাবনা রয়েছে যা এর পরে পরিবর্তে ব্যবহৃত হয়, তবে এটি উভয়ই জটিল এবং এই ক্রিয়াকলাপের জন্য পর্যাপ্ত ফাঁকা জায়গা প্রয়োজন।

এদিকে, আমি জানতে পেরেছি যে কমপ্যাক্ট কমান্ডের আউটপুটটি কিছুটা বিভ্রান্তিমূলক (আমি বর্তমানে ওএস এক্স 10.5.7 চালাচ্ছি) কারণ এটি মাঝে মাঝে এমন আকারের তালিকাবদ্ধ করে যা বর্তমানে চিত্রের বান্ডিল দ্বারা ধারণ করা আকারের চেয়ে বড় is চালনা করা। আমি কাছ থেকে তাকাল না তবে আউটপুটটি সর্বোচ্চ আকার বা "সর্বাধিক আকার" - "ব্যবহৃত আকার" বলে মনে হচ্ছে।


1
আমার এটি নিয়ে একটি সমস্যা ছিল, তবে তখন বুঝতে পেরেছিলাম কারণ আমার স্পার্সবান্ডেল fs এক্সফ্যাট ছিল। ম্যানপেজটি পড়ার পরে , আমি বুঝতে পারি যে কমপ্যাক্ট ক্রিয়াটি কেবলমাত্র "এইচএফএস ফাইল সিস্টেমযুক্ত ডিস্ক চিত্রগুলিতে" কাজ করে।
jsejcksn

@jsejcksn এটি মনে রাখা ভাল পয়েন্ট। ম্যান পেজটি এখন বলছে যে এপিএফএস এবং এইচএফএস + সমর্থিত।
জিডিপি 2

প্রশ্নোত্তর সম্পর্কিত সম্পর্কিত প্রাসঙ্গিক প্রশ্ন: আপেল.স্ট্যাকেক্সেঞ্জার
প্রশ্নস

উত্তর:


20

মজাদার!

আমি যা শুনেছি তা থেকে স্পার্স বান্ডিলটি ডেটা 8 এমবি ব্যান্ডগুলিতে বিভক্ত করে। আপনি ভাগ্যবান হলে ব্যান্ডের আকার পরিবর্তন করা কেবল সহায়তা করতে পারে। আমার অর্থ, আপনি কখনই 100% পুনঃনির্দেশিত স্থান পাবেন না, তবে আপনি এখন যা পাবেন তার চেয়ে ভাল হতে পারে। (চিত্রের ডেটা উপর নির্ভর করে ইত্যাদি)

আমি দুটি 500Mb স্পার্স বান্ডিল, একটি 8Mb (ডিফল্ট) ব্যান্ড আকার এবং একটি 1Mb (আমি যা বলতে পারি তার চেয়ে ছোট আকারের মাপ) দিয়ে একটি নোংরা সরল পরীক্ষা করেছি। আমি ৪০০ এমবি এমপি 3 ফাইলের বেশি অনুলিপি করেছি এবং তারপরে অন্য সমস্ত ফাইল সরিয়ে তারপর hdiutil compactতাদের গাধাগুলিতে চালিয়ে যাই ।

Size after compact
8Mb bands: 271Mb
1Mb bands: 215Mb

আপনার বিরল বান্ডিল রূপান্তর করার আদেশটি

hdiutil convert src.sparsebundle -format UDSB -tgtimagekey sparse-band-size=2048 -o dst.sparsebundle

ব্যান্ডের আকার 512byte ইউনিটে রয়েছে। সুতরাং উপরের উদাহরণটি ব্যান্ডের আকার 512 * 2048 = 1 এমবিতে সেট করে। আপনি যদি টাইমম্যাচিন চিত্রগুলি বা ব্যবহারকারীর হোম ফোল্ডার চিত্রগুলি ইত্যাদি নিয়ে কাজ করছেন তবে কেবল সতর্ক হন আপনি অ্যাপল পথ থেকে বিচ্যুত হয়ে যাচ্ছেন :) ব্যর্থ নিরাপদ ব্যাকআপ রাখুন!

ডিফ্র্যাগমেন্টেশন হিসাবে: আমার একটি মজাদার অনুভূতি আছে যে স্পার্সফাইলটিকে একই ফর্ম্যাট সহ নতুন স্পার্স ফাইলগুলিতে রূপান্তর করতে কেবল hdiutil ব্যবহার করা ঠিক তত দ্রুত (বা দ্রুত!)। আমি মনে করি এটি সম্পর্কে স্মার্ট হওয়ার চেষ্টা করে। তবে আমি জানি না।

(নোট করুন যে একটি স্পার্স বান্ডিলকে ডিফ্র্যাগমেন্ট করে কেবল ডিস্ক ডেটা ডিফ্র্যাগমেন্ট করে, স্পার্স বান্ডেল ব্যান্ডগুলি না, যদি না এটি একটি স্পর্শী বান্ডিল সচেতন ডিফ্র্যাগমেন্টার hdiutil convertথাকে তবে একটি ব্যান্ড 'ডিফ্র্যাগমেন্টেশন' আমি বিশ্বাস করি।)


আপনার কমান্ড লাইন আর্গুমেন্টগুলি ভুল ক্রমে রয়েছে: -oসরাসরি আগে হওয়া উচিত dst.sparsebundle, নয় src.sparsebundle( -o'আউটপুট' বোঝায়)।
নিক ফরজ

এছাড়াও, নোট করুন যে এই পদ্ধতিটি এনক্রিপশন সংরক্ষণ করে না। এটি সক্ষম করার জন্য সম্ভবত একটি পতাকা রয়েছে, তবে এই মুহুর্তে আমি ডিস্ক ইউটিলিটিতে নিজেকে একটি নতুন স্পার্সবান্ডেল তৈরি করা এবং এতে আমার ফাইলগুলি অনুলিপি করা আরও সহজ করেছিলাম।
জাস্টিন সেরেলস

2
এনক্রিপশনের -encryptionজন্য, কমান্ডটিতে স্যুইচটি যুক্ত করুন ।
ফিদেলি

অনেক ধন্যবাদ. স্পার-ব্যান্ড-আকার হ্রাস ড্রপবক্স হোস্টেড স্পার্স-বান্ডিলগুলির জন্য খুব দরকারী
ম্যাক্স রিড

ঠিক আছে এটির কোনও অর্থ নেই ... যখন আমি চিত্রটিকে ডিফ্র্যাগমেন্টে রূপান্তর করি, ফলস্বরূপ বিচ্ছিন্ন বান্ডিলটি আসলটির চেয়ে 16% বড়
মাইকেল

7

আমি মনে করি 90.4 গিগাবাইট সম্ভব স্পষ্টত ভুল। আমি যখন দৌড়েছি:

hdiutil compact *.sparsebundle

... এটি 16 গিগাবাইট স্থান মুক্ত করেছে, যা প্রায়শই আমার প্রত্যাশা ছিল। আনন্দের সাথে যথেষ্ট পরিমাণে এটি বলা হয়েছে "800 গিগাবাইট সম্ভব" যা আমার এইচডি এর ক্ষমতার চেয়ে অনেক বেশি। সুতরাং আমি ধরে নিলাম দ্বিতীয় চিত্রটি কিছু (ত্রুটিযুক্ত) তাত্ত্বিক সংখ্যা।


2

@ অস্কার আমাদের সঠিক দিকে নির্দেশ করেছেন। তবে জায়গা ফিরে পাওয়ার আশায় আপনাকে 1 এমবি এবং কমপ্যাক্টে রূপান্তর করতে হবে না।

পরিবর্তে, কেবল আপনার স্পার্সবান্ডেলটিকে অন্য একটি নতুন স্পার্সবান্ডলে অনুলিপি করুন। এটি, পরিবর্তে, আপনার জন্য চিত্রটি defrags। এবং একই সাথে আপনি ফাইল সিস্টেম, আকার এবং এমনকি ব্যান্ডগুলিও পরিবর্তন করতে পারবেন।

সাম্প্রতিককালে আমি করেছি এমন একটি উদাহরণ এখানে আমার 20 জিবি "কোড" চিত্রটিকে রূপান্তর করে যা আমি ডিভাইসগুলিতে সিঙ্ক করি।

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

এর সাথে সমস্ত অপশন দেখুন hdiutil create -help

এই কমান্ড আউটপুট:

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

আপনি -attachবিকল্পটি এটির নীচে মাউন্ট করা দেখতে পারেন /Volumes/code

দ্রষ্টব্য: আমি HSFXকেস-সংবেদনশীল এইচএফএস + এর জন্য ব্যবহার করি কারণ আমি আমার চিত্রগুলি লিনাক্সের সাথেও সিঙ্ক করে সেগুলি মাউন্ট করি। আপনি সম্ভবত HFS+পরিবর্তে ব্যবহার করতে চাইবেন , যেহেতু ম্যাকোস সাধারণত কেস-সংবেদনশীল নয়।

এখন আমাকে যা করতে হবে তা হ'ল আমার নতুন স্পার্সবান্ডলে সবকিছু অনুলিপি করা:

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

এবং এখন তুলনা:

# 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/

হ্যাঁ. আমার 15 জিবি স্পার্সবান্ডেলটি এখন 3 জিবি, ডিফ্র্যাগড, এবং ব্যান্ডগুলি পরিবর্তিত হয়েছে!


এই পদ্ধতিটি আসল প্রশ্নে স্বীকৃত ছিল ... আমি উত্তরটি হ্রাস করব না কারণ এটি ভাল লেখা এবং "তথ্যবহুল", তবে .. সাধারণ ..
adfaklsdjf

0

আমি এটি করার কোনও নিখরচায় উপায় জানি না তবে আমি বিশ্বাস করি যে এখানে আপনার যা প্রয়োজন প্রসফ্ট ড্রাইভ জেনিয়াস তা করবে:

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

আপনি স্পার্সবান্ডেল মাউন্ট করেন, ড্রাইভ জেনিয়াস ব্যবহার করে ডিফ্র্যাগ করেন এবং তারপরে

hdiutil compact

কমান্ড কাজ করা উচিত।


0

90.4 গিগাবাইটের মধ্যে 0 বাইট পুনরুদ্ধার করা সম্ভব।

আমি সেই ড্রাইভে বাজি ধরেছি যা স্পার্স বান্ডেল ধারণ করে প্রায় 90 জিবি ফ্রি স্পেস? ডিস্ক পূর্ণ না হওয়া পর্যন্ত প্রায়শই বিরল বান্ডিলগুলি বৃদ্ধি পেতে পারে, এই স্থানটি কেবল সহজ স্থান হিসাবে উপলব্ধ হিসাবে খবরে প্রকাশিত হয় ... আপনি ডিস্ক ইউটিলিটিতে একই পরিসংখ্যান দেখতে পাবেন। সত্যিই খুব বিভ্রান্তিকর।

নিম্নলিখিত আপনাকে কিছু অন্তর্দৃষ্টি দিতে পারে:

hdiutil imageinfo image.sparsebundle

0

আমার একটি সমস্যাযুক্ত স্পার্স বান্ডিল ছিল যা দাবি করেছিল যে 1024 জিআইবির মধ্যে 950 জিআইবি দখল আছে (আমার এসএসডিটি মাত্র 320 জিবি আকারের, যাতে এটি ঘটতে পারে না)। hdi compactসাহায্য করেনি

আমি উভয় বান্ডিল এবং বিভাজনে ডিস্ক ইউটিলিটি থেকে "প্রাথমিক চিকিত্সা" চালিয়েছি এবং এটি সাহায্য করেছে - ফ্রি স্পেস মিটারটি যেমনটি হওয়া উচিত বাস্তব 20 জিআইবি দেখাতে শুরু করেছিল, এবং তারপরে hdi compactকোনও সমস্যা ছাড়াই দৌড়েছিল।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.