সংকুচিত ডিস্ক চিত্রটি কীভাবে মাউন্ট করবেন?


12

যদি আমি কোনও ডিস্ক চিত্র তৈরি করি এবং এটি জিজেপ / এক্সজেড / ইত্যাদি দিয়ে সংকুচিত করে তবে প্রথমে সঙ্কুচিত না করে সরাসরি মাউন্ট করার কোনও উপায় আছে?

বলুন আমি ব্যবহার করেছি

sudo dd if=/dev/sdc1 | gzip -9 > image1.dd.gz

প্রথমে একটি সঙ্কুচিত অনুলিপি তৈরি না করে আমি কীভাবে আসল চিত্রটি মাউন্ট করতে পারি?

বা আমি ব্যবহার করেছি

sudo dd if=/dev/sdc | gzip -9 > wholedisk.dd.gz

এবং ডিস্কের একাধিক পার্টিশন রয়েছে, এটি কি আরও শক্ত করে তুলবে?

একটি সম্পূর্ণ ডিস্কের সঙ্কুচিত চিত্রের সাথে তার পতাকা ব্যবহারের সাথে এর kpartxনতুন সংস্করণগুলি ব্যবহার করা বা প্রতিটি পার্টিশনের জন্য একটি লুপ তৈরি করা উচিত।losetup-P

তবে সঙ্কলিত চিত্রটি মাউন্ট / হার্টআপ / পড়ার কোনও উপায় আছে কি?

যদি এটি জিজিপ / এক্সজেডের জন্য কাজ করে না, তবে কোনও কম্প্রেশন পদ্ধতি কি এর জন্য কাজ করবে?


নকল প্রশ্নে নোট

বর্তমানে প্রস্তাবিত সদৃশ

সংকোচনের ব্যবহার করে না , এবং এটি একটি নকল নয়

mount একটি সঙ্কুচিত চিত্র নিজেই মাউন্ট করবে না।


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


1
@ ইউটিএফ -8 এটি উত্সাহজনক, ধন্যবাদ। এফওয়াইআই, মূল লক্ষ্যটি এমন ড্রাইভ / পার্টিশনের একটি ছোট ব্যাকআপ করা যা প্রায় খালি বা সহজেই সংকোচনযোগ্য ডেটা রয়েছে এবং এটি প্রচুর অতিরিক্ত ডেটা না লিখে বা এটি বের করার জন্য এক টন ফ্রি স্পেসের প্রয়োজন না পড়ে পড়তে সক্ষম হয়
Xen2050


2
@ বোধি.জাজেন ক্ষমা? সম্ভবত আমার স্পষ্ট করা উচিত, মাউন্টটি স্বয়ংক্রিয়ভাবে চিত্রগুলি সঙ্কুচিত করে না , সুতরাং এই প্রশ্নটি জিজ্ঞাসাবাবু / প্রশ্ন / 3৯৩6363 এর সদৃশ নয় (সম্ভবত আমি রসিকতাটি মিস করেছি, আশা করি
সঙ্কোচন করা

উত্তর:


10

আপনি squashfsডিস্ক চিত্রগুলি সংকোচনের জন্য ব্যবহার করতে পারেন এবং তারপরে এগুলি মাউন্ট করতে পারেন।

ডিস্ক চিত্র তৈরি করুন

আপনি যদি এখনও কোনও ডিস্ক চিত্র না পেয়ে থাকেন তবে ddএটি তৈরি করতে ব্যবহার করুন :

dd if=/dev/sda1 of=/tmp/sda1.img bs=4M

স্কোয়াশফ দিয়ে চিত্রটি সংকুচিত করুন

ইনস্টল করুন squashfs:

apt-get install squashfs-tools

চিত্রটি সংকুচিত করুন:

mksquashfs /tmp/sda1.img /tmp/sda1.squash.img

অথবা সংক্ষেপণ স্ট্রিম করুন (অস্থায়ী ডিডি ফাইলের প্রয়োজন নেই)

mkdir empty-dir
mksquashfs empty-dir squash.img -p 'sda_backup.img f 444 root root dd if=/dev/sda bs=4M'

থেকে অভিনঁদন UbuntuForums.org এ terminator14 । সংজ্ঞা / ব্যাখ্যা:

  • empty-dir- "উত্স" দির। মূলত আমাদের ক্ষেত্রে, mksquashfs এর ইনপুট আরগ ফর্ম্যাটটি পূরণ করার জন্য একটি খালি দির ir
  • squash.img - আউটপুট স্কোয়াশফ ফাইলের গন্তব্য এবং ফাইলের নাম
  • sda_backup.img - স্কোয়াশফ ফাইলটি ডিডি ব্যাকআপের নাম
  • f - নির্দিষ্ট করে যে sda_backup.img একটি নিয়মিত ফাইল (কোনও ডিরেক্টরি, ব্লক ডিভাইস বা চর ডিভাইসের বিপরীতে)
  • 444 - স্কোয়াশফের চিত্রের অভ্যন্তরে sda_backup.img ফাইলের অনুমতি
  • root root- স্কোয়াশফেস চিত্রের অভ্যন্তরে sda_backup.img ফাইলের জন্য ইউআইডি এবং জিআইডি। দশমিক সংখ্যা বা নাম দ্বারা নির্দিষ্ট করা যেতে পারে
  • dd if=/dev/sda bs=4M - ডিডি কমান্ডটি আমরা যে ডিভাইসটি ব্যাক আপ করতে চাই তা পড়তে ব্যবহৃত হত

ছবিটি মাউন্ট করুন

প্রথমে squashfsচিত্রটি মাউন্ট করুন :

mkdir /mnt/squash
mount /tmp/sda1.squash.img /mnt/squash

এটি আপনাকে মাউন্ট করার জন্য অ-সংক্ষেপিত ডিস্ক চিত্র উপস্থাপন করবে:

mkdir /mnt/sda1
mount /mnt/squash/sda1.img /mnt/sda1

অথবা যদি এটা একটি পূর্ণ ড্রাইভ ইমেজ এর (বিভক্ত) আপনি ব্যবহার করতে পারে losetupএকটি লুপ ডিভাইস (সম্ভবত ঐচ্ছিক) এবং তারপর DD চিত্র সংযুক্ত করতে kpartx -aবা partprobeখুঁজতে & পৃথক ডিভাইস পার্টিশন আলাদা করতে, অথবা এমনকি vgscan/ vgchange -ayআছে কিনা LVM- র।


2
অস্থায়ী প্লেইন ডিডি ফাইলের প্রয়োজন এড়াতে আমি ফ্লাই-অন স্কাইশফ সম্পর্কিত কিছু তথ্য যুক্ত করেছি। স্কোয়াশফের সাথে দুর্দান্ত উত্তর, কেবল আরও পাইপ-বান্ধব xz / gz ফর্ম্যাটগুলি করবেন না
Xen2050

এটি কি কোনওভাবে একাধিক পার্টিশনযুক্ত পূর্ণ ডিস্ক চিত্র নিয়ে কাজ করবে?
friederbluemle

পূর্ণ ডিস্কের জন্য এখানে দেখুন: unix.stackexchange.com/questions/31669/…
হ্যাকারবস

ফাইল সিস্টেমের ধরণের উপর নির্ভর করে মাউন্টিংয়ের জন্য ro,noloadবিকল্পগুলির প্রয়োজন হতে পারে :mount -o ro,noload /mnt/squash/sda1.img /mnt/sda1
হ্যাকারবস

7

আমি .gz বা .xz ফাইলের একটি সংক্ষেপিত সংস্করণ "পরিবেশন" করতে একটি এনবিডি সার্ভার পেতে সক্ষম হয়েছি। আমি নিশ্চিত না যে এটি সম্পূর্ণ সংক্ষেপিত ফাইলটি খুব প্রায়শই পড়তে হয় (শুধুমাত্র এতক্ষণে রামের ছোট ফাইলগুলির সাথে পরীক্ষা করা হয়) তবে কমপক্ষে এটি সম্পূর্ণ আন-সংকুচিত অনুলিপি ছাড়াই কাজ করে।

একটি জিজেড / এক্সজেড সংকুচিত ডিডি চিত্র "অন-ফ্লাই" দেখছেন

  1. এনবিডিকিট ও ক্লায়েন্ট ইনস্টল করুন

    apt install nbdkit nbd-client
    
  2. ডেমো "ডিডি" স্টাইল ফাইল তৈরি করুন - একটি এক্সট্রা ফাইল সিস্টেমের সাথে একটি খালি 50 এম ফাইল & এটি জিপ করুন (কেবলমাত্র পরীক্ষার জন্য ptionচ্ছিক )

    fallocate -l 50M 50m
    mkfs.ext3 -v 50m
    

    তারপরে gzip বা xz দিয়ে সংক্ষিপ্ত করুন

    gzip -vk9 50m
    xz -v9k 50m
    

    দ্রষ্টব্য: একটি xzবিকল্পের --block-size=16MiBআরও ভাল এলোমেলো অ্যাক্সেস পারফরম্যান্স দেওয়া উচিত, তবে কম সংক্ষেপণের ব্যয়ে (সম্ভবত 1%?)। দেখুন nbdkit এর ভাবে XZ লস প্লাগইন বিবরণ

  3. সংক্ষিপ্ত চিত্রটিতে সার্ভার চালান

    nbdkit -v --no-fork -i 127.0.0.1 /usr/lib/i386-linux-gnu/nbdkit/plugins/nbdkit-gzip-plugin.so file=~/Downloads/50m.gz
    

    বা এক্সজেডের জন্য

    nbdkit -v --no-fork -i 127.0.0.1 /usr/lib/i386-linux-gnu/nbdkit/plugins/nbdkit-xz-plugin.so file=~/Downloads/50m.xz
    

    --no-forkসার্ভার বলে "পটভূমি মধ্যে মাল না" সম্ভব ত্রুটি বার্তা এইজন্য & জন্য CTRL-সি দিয়ে হত্যা তাই একটু সহজ।

    -v বিশেষভাবে পড়ার সময় / প্রচুর স্থিতি বার্তাগুলি প্রদর্শন করবে।

  4. ক্লায়েন্ট চালান (অন্য টার্মিনাল / উইন্ডোতে)

    sudo nbd-client -nofork 127.0.0.1 10809 /dev/nbd0
    

    -noforkঅনুরূপ -no-forkউপরে, কিন্তু আমি পারতাম না জন্য CTRL-সি সঙ্গে ক্লায়েন্ট হত্যা, kill <pid>কিংবা sudo kill <pid>। সিটিআরএল-সি দিয়ে সার্ভারটি শেষ করা সার্ভার এবং ক্লায়েন্ট উভয়কেই থামিয়ে দিয়েছে।

  5. পর্যবেক্ষণ করুন যে /dev/nbd0এখন ইউএন-সংকুচিত চিত্র অনুরূপ

    $ sudo diff -s /dev/nbd0 ~/Downloads/50m
    Files /dev/nbd0 and /home/user/Downloads/50m are identical
    

    /dev/nbd0এখন কেবল সঙ্কুচিত চিত্রের মতো ব্যবহার করা যেতে পারে; মাউন্ট করা, পড়া / সঙ্গে কপি dd, বা ব্যবহারের kpartx, partprobe, vgscan/ vgchange, ইত্যাদি!

ইউনিক্স ও লিনাক্সের ক্রিস্টিয়ান সিউপিতুকে ধন্যবাদ , যদিও প্লাগইনটি খুঁজে পেতে এবং সমস্ত কিছু একসাথে পেতে আরও কিছুটা খনন করা লাগল।


nbdkit -v --no-fork -i 127.0.0.1 --filter=xz file ~/Downloads/50m.xz
ফেডোরায়

উবুন্টু জেনিয়াল ১ 16.০৪-তে এলটিএস nbdkit 1.1.11 পুরানো এনবিডি প্রোটোকল ব্যবহার করে যা নতুন এনবিডি প্রোটোকল থেকে পৃথক ব্যবহৃত হয় nbd-client 3.13, তবে আপনি ৩.১০ এর আগে এনবিডি -ক্লায়েন্ট সংস্করণ nbd-client 3.8 from Ubuntu precise 12.04 old LTSব্যবহার করেন , উদাহরণস্বরূপ [সুরক্ষার জন্য স্থানীয়ভাবে কেবল পুরানো সংস্করণ ব্যবহার করুন!)
ইউজার ১74৪২২২২

0

এখানে এটি করার আমার উপায়, এটির কনসোলের সমতুল্য জানতে নাও,

  • আইসোতে ফোল্ডারটি সংকুচিত করুন। এখানে চিত্র বর্ণনা লিখুন
  • এর .isoসাথে ফাইলটি মাউন্ট করুন Disk Image Mounterএখানে চিত্র বর্ণনা লিখুন
  • তদা আমি আনপ্যাক না করে সংক্ষেপিত আইসোটি খুলি। এখানে চিত্র বর্ণনা লিখুন

4
এই পদ্ধতিটি কি আসলে ডেটা সংকুচিত করে? দেখে মনে হচ্ছে এটি একটি সরল iso9660 চিত্র (ফাইল-রোলারের মাধ্যমে?) ব্যবহার করে, যা সংক্ষেপণ ব্যবহার করে না। আমি এটি সমস্ত শূন্যের ( dd if=/dev/zeroএবং ফাইল-রোলার) একটি 100 এমবি ফাইলে চেষ্টা করেছিলাম এবং এটি আসলে 362k ডেটা যুক্ত করে (আইসো ওভারহেড আমি মনে করি)। ধন্যবাদ যদিও, ধারণাটি সঠিক পথে রয়েছে
Xen2050

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