শেষে কোনও বিভাগবিহীন স্থান সমেত 16 জিবি কার্ডের চিত্র: ছাঁটাই সম্ভব?


18

আমি কিছু বন্ধুদের জন্য একটি ডিসট্রো প্রস্তুত করতে চেয়েছিলাম।
আমার আশেপাশে আর কিছু পড়ে নেই বলে আমি একটি 16 জিবি এসডি কার্ড ব্যবহার করেছি।

আমি ডিফল্ট ডেবিয়ান ওয়েজি 2 জিবি চিত্র দিয়ে শুরু করেছি এবং কোনও আকার পরিবর্তন করিনি।
এখন আমি যেমন করছি, আমি কী করেছি তার একটি চিত্র তৈরি করতে চেয়েছিলাম, তবে আমি একটি 16 জিবি ফাইল পেয়েছি, যার শেষে 14 গিগা বিভাগবিহীন (পার্টিশনবিহীন এবং মুক্ত নয়) স্থান রয়েছে।

[আমি এখন উইন্ডোজ // Win32DiskImager ব্যবহার করেছি কারণ এখনই আরপিআইতে আটকাতে আমার কাছে কিছুই নেই]

আমি কি কেবল পার্টিশনযুক্ত জায়গার ঠিক পিছনে ইমেজ ফাইলটি ছাঁটাই করতে পারি এবং এরপরে অংশটি একটি ছোট কার্ডে স্থানান্তর করতে পারি?


2
আপনার যদি একটি লিনাক্স কম্পিউটারে অ্যাক্সেস থাকে dd if=/dev/path/to/SD/card of=~/SpecialImage.imgতবে চালান , তারপরে জিপিআরটি ইনস্টল করুন এবং রান করুন gparted ~/SpecialImage.img। একবার জিপিআর্ট আপনার .imgফাইল খুললে , পার্টিশনগুলিকে নিজের পছন্দ অনুসারে পুনরায় আকার দিন! (উভয় আদেশ, রুট হিসাবে চালাতে হবে sudo suআপনার যা প্রয়োজন আপনি পাওয়া উচিত। যখন $একটি পরিবর্তন #করছি রুট, হ্যাঁ আপনি। সাবধান থাকবেন, এই ঈশ্বরের লিনাক্স সমতুল্য।) GParted- র মূলত রহস্যময় partiton পরিচালনার জন্য একটি GUI ফ্রন্টএন্ড হয় সরঞ্জামগুলি আপনার প্রয়োজন হবে। জিপিআর্ট ব্যবহার করে সবকিছুকে এত সহজ এবং সার্থক করে তোলে সফল।
জেমস দ্য অসাধারণ ডুড

দয়া করে আমার প্রশ্নটি মনোযোগ সহকারে পড়ুন।
নিপ্পি

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

1
ঠিক আছে, তবে আমি নিরবিচ্ছিন্ন জায়গার কথা বলছি। এমনকি লিনাক্স ডিস্ক স্পেসে এমন কোনও ডেটা রাখবে না যা বিভাগবিহীন চিহ্নিত রয়েছে তবে পার্টিশন সারণীতে লিখিতভাবে ব্লকের মধ্যে থাকবে। আমার উদ্বেগটি চিত্র ফাইলের ফর্ম্যাটটির কারণে হয়েছিল: এটি হতে পারে যে চিত্রের ফাইলটি ফাইলের শেষে মেটাডেটা পড়ে আছে, তাই আমি ফাইলের তথ্য কেটে ফেলার বিষয়ে উদ্বিগ্ন ছিলাম। (আশা করি আমার আগের মন্তব্যটি খুব শক্ত
লাগেনি

ওহ, আপনি এখন যা বলছেন তা পেয়েছি। যদি আপনি কোনও দুর্ঘটনাক্রমে মুক্ত স্থানটি নিয়ে উদ্বিগ্ন হন তবে জিপিআর্টটি চিত্রটি কাটানোর পরে চালিয়ে যান। এটি সম্ভবত সর্বশেষ অঞ্চলটিকে "অবিকৃত" বা "দুর্নীতিগ্রস্থ" হিসাবে তালিকাভুক্ত করবে - সেই জায়গাতে একটি নতুন "অপরঠিত" পার্টিশন তৈরি করবে। তারপরে, আপনার কোনও সমস্যা হবে না। :)
জেমস theAwesomeDude

উত্তর:


33

অবশেষে আমি একটি সংস্থান পেয়েছি যা আমার প্রশ্নের ব্যাখ্যা দিচ্ছে।

http://softwarebakery.com/shrinking-images-on-linux

ছোটগল্প ঃ

হ্যাঁ, ছাঁটাই সম্ভব!

প্রক্রিয়াটির সংক্ষিপ্তসার:

ইমেজ থেকে পার্টিশন সম্পর্কিত তথ্য ব্যবহার করে fdisk:

$ fdisk -lu image.img
Disk image.img: 4096 MB, 4096000000 bytes, 8000000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000a1bc7

      Device Boot      Start         End      Blocks   Id  System
image.img1              2048     5872026     5869978    b  W95 FAT32

আমরা দেখতে পাচ্ছি, পার্টিশন এর 2,8Gb (5872026 * 512) সম্পর্কে, বাকি একটি আকার আছে পার্টিশন না করা

সুতরাং, পার্টিশন শেষ হওয়ার পরে সবকিছু মুছে ফেলা যায়।
এটি সরঞ্জাম দিয়ে করা হবে truncate। সেক্টরের সংখ্যাতে 1 যুক্ত করতে ভুলবেন না, কারণ ব্লক-সংখ্যা 0 থেকে শুরু হয় start

$ truncate --size=$[(5872026+1)*512] image.img


সম্পাদনা:

তাদের জন্য লিনাক্স স্যুইচ করতে খুব অলস হচ্ছে:
এছাড়াও সহ Windows উপর কাজ করে Cygwin এর fdisk.exeএবং truncate.exe!

সাইগউইন কী?

আমি উদ্ধৃতি দিতে পারি: "সাইগউইন: উইন্ডোজটিতে সেই লিনাক্স অনুভূতি পান" ( https://www.cygwin.com/ )।
এটি এক্সিকিউটেবলের একটি সেট যা উইন্ডোজের আওতায় চলতে পারে তবে লিনাক্স থেকে আপনি জানতেন এমন সমস্ত কমান্ড লাইন প্রোগ্রাম সরবরাহ করে। সাইগউইন ইনস্টল করার সময় প্রতিটি প্যাকেজ নির্বাচন করলে ইনস্টল করতে খুব বেশি সময় নিতে পারে, তবে এই উদাহরণটি অনুসরণ করার জন্য কেবল নিশ্চিত হয়ে নিন যে ডিফল্ট কনফিগারেশন ছাড়াও প্যাকেজ util-linux(fdisk) এবং coreutils(ট্রানসেট) নির্বাচিত রয়েছে are
আপনার পরিবেশের উপর নির্ভর করে আপনার নিজের ব্যক্তিকে যুক্ত করতে হবে /usr/binএবং /usr/sbinআপনার সাথে যুক্ত করতে হবে $PATH


1
পেতে আমার কী প্যাকেজ ইনস্টল করতে হবে fdisk.exeএবং truncate.exe?
পাইথননট

1
হাই @ পাইথননট, আমি আমার উত্তরটি উপরে আপডেট করেছি এবং প্রয়োজনীয় প্যাকেজগুলি যুক্ত করেছি: ও)
নিপ্পি

পার্টিশনের ডিস্কের আকার থাকলেও, যদি কম ব্যবহার করা হয়?
পাইগেমস

5

আমি জানি এই একটি পুরানো প্রশ্ন হল, কিন্তু আমি Mac এ এই প্রক্রিয়া কি করে করবেন, কারণ এটি যেমন সহজ নয় দেখানোর জন্য চাই: fdiskনেই -lবিকল্প, এবং truncateডিফল্ট ভাবে ইনস্টল করা নেই:

1. পদক্ষেপ 1: ম্যাক ওএস এক্সে কাটা কাটা ইনস্টল করুন :

এর জন্য আপনার ম্যাকপোর্টস বা হোমব্রু দরকার। আমি ম্যাকপোর্টগুলি ব্যবহার করি। আপনার যদি এর কোনও একটি না থাকে তবে এগিয়ে যান এবং সেগুলি প্রথমে ইনস্টল করুন। ম্যাকপোর্টে লিঙ্ক করুন

এখন, আমরা কাটা কাটা ইনস্টল করতে পারি । আপনার টার্মিনালটি খুলুন এবং টাইপ করুন:

sudo port install truncate

মিশ্রণ ইনস্টলেশন জন্য:

brew install truncate

এটি করা উচিত।

২.আমাদের আইএমজি মাউন্ট করার জন্য ডিস্ক ইউটিলিটিগুলি ব্যবহার করুন যাতে এটি ডিস্কটিটিল টার্মিনাল কমান্ডটি দৃশ্যমান হয় ।

আপনি কেন আমাদের এই পদক্ষেপের প্রয়োজন তা এক মুহুর্তের মধ্যে আপনি দেখতে পাবেন। ডিস্ক ইউটিলিটি অ্যাপটি খুলুন। দেখার জন্য ক্লিক করুন ফাইল (শীর্ষ দণ্ড দিকে) -> ওপেন ডিস্ক চিত্র এবং আপনার IMG ফাইল নির্বাচন করুন।

৩. আইএমজির পার্টিশন আকার এবং এটি কোথায় লাগানো হয়েছে তা পরীক্ষা করুন।

একটি টার্মিনালে, টাইপ করুন:

diskutil list

এবং এটি শেষের দিকে কোথাও এরকম কিছু দেখাতে হবে:

/dev/disk3 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        +16.0 GB    disk3
   1:             Windows_FAT_32 boot                    62.9 MB    disk3s1
   2:                      Linux                         3.9 GB     disk3s2

সুতরাং, আমরা দেখতে পাই যে প্রায় 12 গিগাবাইট বিভাজনযুক্ত are আমাদের সেগুলি কাটাতে হবে।

আমাদের এই কমান্ডটির প্রয়োজনীয়তাটি হ'ল ডিস্ক চিত্রটি কোথায় মাউন্ট করা হয়েছে তা পরীক্ষা করা। আমার ক্ষেত্রে, এটি: / dev / ডিস্ক 3 এর অধীনে

৪. প্রকৃত পার্টিশনের আকারটি সন্ধান করুন।

৩.৯ গিগাবাইট এবং .9২.৯ এমবি হ'ল মানগুলি যেগুলি কাটা কাটা দিয়ে কাজ করবে না। আমাদের বাইটে পার্টিশনের আকারগুলি খুঁজে পাওয়া দরকার।

5. চালান fdisk

আপনার টার্মিনালে এই কমান্ডটি চালান:

   fdisk /dev/diskX

পূর্ববর্তী ধাপে আপনি যে সংখ্যাটি খুঁজে পেয়েছিলেন তা এক্স Where এর ফলস্বরূপ এমন কিছু হওয়া উচিত:

         Starting       Ending
 #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
 1: 0C    0 130   3 -    8  40  32 [      8192 -     122880] Win95 FAT32L
 2: 83    8  40  33 -  478  79  49 [    131072 -    7553024] Linux files*
 3: 00    0   0   0 -    0   0   0 [         0 -          0] unused      
 4: 00    0   0   0 -    0   0   0 [         0 -          0] unused      

Tr . কেটে যাওয়ার সময় !

আপনার টার্মিনালে, cdআপনার ইমেজটি ডিরেক্টরিতে রয়েছে। তারপর লিখ:

truncate FILE SIZE

ফাইল অবশ্যই আপনার ফাইল।

সাইজ হ'ল বাইটের আকার। আমি কি করেছিল যোগ করতে হয় আকার কলাম fdiskকমান্ড শুরু 512. সুতরাং দ্বারা কলাম বৃদ্ধি আমার ক্ষেত্রে আকার হবে: 512 * (7553024 + 131072) 3934257152 = যা আনুমানিক 3.9 গিগাবাইট হয়।

আপনি করতে হবে শুরু এবং আকার এর শেষ পার্টিশন যে দ্বারা প্রদর্শিত হয় fdisk। (অগত্যা সবচেয়ে বড় নয়, তবে আইএমজি ফাইলের শেষে রয়েছে)

আমি কিছুটা পরীক্ষা-নিরীক্ষা করেছি এবং যখনই আমি 7553024 * 512 বা (7553024 + 1) * 512 বাইট প্রবেশ করেছি, আইএমজি ফাইলটি দূষিত ছিল। সুতরাং, কেবল নিশ্চিত হওয়ার জন্য, আমি উপরে বর্ণিত হিসাবে এটি করুন। এটি সম্ভবত প্রয়োজনের তুলনায় আরও যোগ করতে পারে তবে এটি একটি নিরাপদ বিকল্প।

(. (ptionচ্ছিক) আইএমজি দুর্নীতিগ্রস্থ না হলে সহজেই পরীক্ষা করুন।

ডিস্ক ইউটিলিটিতে আরও একবার যান এবং নতুন আইএমজি ফাইলটি আগের মতোই খোলার চেষ্টা করুন। এটি মাউন্ট করা থাকলে আপনি নতুন (ছোট) আকারও দেখতে পাবেন । যদি এটি মাউন্ট না হয় তবে কিছু ভুল হয়েছে। (সম্ভবত truncateকমান্ডের আকার বাড়ানোর চেষ্টা করুন )

এটি সেরা পরীক্ষা নয়, তবে নতুন আইএমজি দুর্নীতিগ্রস্থ কিনা তা যাচাই করার একটি নিশ্চিত উপায়। সুতরাং, সত্যিই এটির উপর নির্ভর করবেন না, তবে এটি চেষ্টা করার পক্ষে মূল্যবান ...

আমি আশা করি কেউ এই সহায়ক খুঁজে পেয়েছেন!


1
সুন্দর! জ্ঞান প্রসারিত করার জন্য ধন্যবাদ :) ভাল যে আপনি উল্লেখ করেছেন যে 512*(Size+1)এটি কাজ করে না। আপনি দেখতে পাচ্ছেন যে, আমি ব্যবহার করেছি Endএবং না Size, যেমন একটির বেশি থাকলে আপনার দুটি পার্টিশনই রাখতে হবে। সুতরাং, 7553024 + 131072( +1) ব্যবহার করা 100% সঠিক!
নিপ্পি

1

সাম্প্রতিক Win32DiskImager এর কাছে কেবলমাত্র ডিস্ক চিত্রের মধ্যে বরাদ্দকৃত পার্টিশন অন্তর্ভুক্ত করার বিকল্প রয়েছে। এটি এক ক্লিকে ছাঁটাই করবে।

এখানে চিত্র বর্ণনা লিখুন


দুর্দান্ত, উইন্ডোজে এটি অনেক সহজ করে তোলে!
নিপ্পি

0

আমি সম্প্রতি কিছু লক্ষ্য করেছি যেহেতু আমি আমার RPI চিত্রগুলি মোতায়েনের জন্য ব্যাক আপ করার জন্য এই Win32diskimg অপারেশনগুলি অনেকগুলি করি। আমি সম্প্রতি তাত্ত্বিক পরিধান সমতলকরণের জন্য ব্যবহৃত না হয়ে থাকা এসডি কার্ডের কিছু অংশ সাফ করার জন্য এসডি "ট্রিমিং" fstrim পরীক্ষা শুরু করেছি। এর প্রভাব কী হবে তা সম্পর্কে নিশ্চিত নয় তবে এর একটি পার্শ্ব প্রতিক্রিয়া ছিল যখন আমি 16 গিগাবাইট এসডি পার্টিশনটি ইমেজ করেছিলাম এবং তারপরে এটি সংকোচনের জন্য 7 জিপ ব্যবহার করি। আমি সাধারণ 16 জিবি থেকে 9.5 গিগাবাইটে চলেছি এখন 2.5 গিগাবাইট ফাইলে। আমি এখন যাচ্ছি না তা নিশ্চিত করার জন্য এখনই পরীক্ষা নিরীক্ষা করছি তবে দেখা যাচ্ছে যে অব্যবহৃত স্থানটিকে 0 এর হিসাবে চিহ্নিত করতে ট্রিম ব্যবহার করা চিত্রের সংকোচনের চেয়ে অনেক বেশি দক্ষ করে তোলে (যা বোঝায় না)। কেবল এটির প্রতিবেদন করতে চেয়েছিলেন এটি সম্পাদন করা অত্যন্ত সহজ এবং একাধিক পদক্ষেপ নেই।


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