কেন একেবারে লুপ ডিভাইসের প্রয়োজন?


15

আমি পূর্বে ব্যবহার ইমেজ ফাইল তৈরি করতে ব্যবহার করা ddব্যবহার তাদের উপর ফাইলসিস্টেম সেট আপ mkfsএবং mountযেমন মাউন্ট পার্টিশন তাদের এগুলি অ্যাক্সেস করতে। পরে, আমি ইন্টারনেটে দেখেছি যে অনেকগুলি উদাহরণ losetupআগেও লুপ ডিভাইসটির নিচে প্রবেশ করতে /devএবং তারপরে মাউন্ট করতে ব্যবহার করে। আমি বলতে পারি না যে লুপ ডিভাইস হিসাবে আচরণ করার জন্য কারও ব্যবহারিকভাবে একটি চিত্রের ফাইলের প্রয়োজন হবে এবং তার নিজস্ব /devপ্রবেশ রয়েছে যখন সমস্ত ঝামেলা ছাড়াই একই আচরণ পাওয়া যায়।

সংক্ষিপ্তসার: বাস্তব জীবনের দৃশ্যে, কেন আমরা /dev/loopXএফএস চিত্রটি ছাড়া এটি কেবল মাউন্ট করতে পারি, কেন আমাদের উপস্থিতির জন্য একেবারে উপস্থিতি দরকার? লুপ ডিভাইসের ব্যবহার কী?


9
"... যদিও একই ঝামেলা সব ঝামেলা ছাড়াই পাওয়া যায়।" - তুমি ভুল আছে;) - লিনাক্স, একটি ফাইল করতে পারবে না একটি লুপ ডিভাইসের "ঝগড়া" ছাড়া মাউন্ট করা হবে। আজকাল mountআপনার পক্ষে ঝামেলা করার পক্ষে যথেষ্ট চালাক It's (যেমনটি স্টিফেন হ্যারিস তার উত্তরে দেখায়)
মার্সেলেম

উত্তর:


22

মাউন্টস, সাধারণত, ব্লক ডিভাইসে করা আবশ্যক। লুপ ড্রাইভারটি আপনার ডেটা ফাইলে একটি ব্লক ডিভাইসকে সামনের দিকে রাখে।

আপনি যদি একটি লুপ মাউন্ট না করে থাকেন losetupতবে ওএস ব্যাকগ্রাউন্ডে একটি করে।

যেমন

$ dd if=/dev/zero of=/tmp/foo bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.0798775 s, 1.3 GB/s
$ mke2fs /tmp/foo
mke2fs 1.42.9 (28-Dec-2013)
....


$ losetup    
$ mount -o loop /tmp/foo /mnt1    
$ losetup
NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE
/dev/loop0         0      0         1  0 /tmp/foo
$ umount /mnt1
$ losetup
$ 

losetupআপনার ফাইলের ছবিতে এতে পার্টিশন এম্বেড থাকলে আপনার সরাসরি কল করতে হবে।

যেমন যদি আমার এই চিত্রটি থাকে:

$ fdisk -l /tmp/foo2      

Disk /tmp/foo2: 104 MB, 104857600 bytes, 204800 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 label type: dos
Disk identifier: 0x1f25ff39

     Device Boot      Start         End      Blocks   Id  System
/tmp/foo2p1            2048      204799      101376   83  Linux

আমি সরাসরি এটি মাউন্ট করতে পারি না

$ mount -o loop /tmp/foo2 /mnt1
mount: /dev/loop0 is write-protected, mounting read-only
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
       missing codepage or helper program, or other error

তবে আমি যদি ব্যবহার করি losetupএবং kpartxতারপরে আমি পার্টিশনগুলি অ্যাক্সেস করতে পারি:

$ losetup -f /tmp/foo2
$ losetup
NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE
/dev/loop0         0      0         0  0 /tmp/foo2
$ kpartx -a /dev/loop0
$ mount /dev/mapper/loop0p1 /mnt1
$

আপনার সুস্পষ্ট প্রয়োজন নেই losetup, কেবল ব্যবহার করুন mount -o loop,offset=$((512*2048)), 512ক্ষেত্রের আকার কোথায় এবং পার্টিশন হিসাবে 2048যা fdiskদিয়েছেন Start
Ruslan

হ্যাঁ, এটি কেবল ব্যবহারের উদাহরণ ছিল। এই নির্দিষ্ট উদাহরণে এটা অফসেট গণনা করতে সহজ হবে না ঠিকই কিন্তু ব্যবহারের ক্ষেত্রে (যেমন একাধিক পার্টিশন আপনি একই সময়ে মাউন্ট করতে চান) যেখানে এটি মাত্র করা আরো সহজ হতে পারে হতে পারে losetupএবং kpartx। সরঞ্জামগুলি কঠোর পরিশ্রম করতে দিন :-)
স্টিফেন হ্যারিস

18

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

অনেক ক্ষেত্রে চিত্র মাউন্ট করার সময় লুপ ডিভাইসগুলি বিবেচনা করার প্রয়োজন নেই কারণ mountআপনার জন্য সমস্ত কিছুর যত্ন নেয়; লুপ ডিভাইসগুলি এখনও জড়িত। losetup -l -aতাদের দেখাতে হবে।

মাউন্ট এবং মাউন্ট-লুপের মধ্যে পার্থক্য কী তাও দেখুন ।


সুতরাং ব্লক ডিভাইস-আইজেশন নিখুঁতভাবে পরিচালিত হয় mount?
কর্সেল

2
হ্যাঁ, যোগ করে, ইত্যাদি mountযত্ন losetupকরে-o loop
স্টিফেন কিট

@ কর্সেল, বেশিরভাগ ক্ষেত্রে আপনার জন্য মাউন্ট কল লসআপ করা ভাল কাজ করে তবে ডিস্ক চিত্র থেকে একাধিক পার্টিশন মাউন্ট করার মতো ব্যতিক্রম রয়েছে।
hildred

11

আপনি লিনাক্সে রয়েছেন বলে মনে হয় এবং লিনাক্স সেই বৈশিষ্ট্যের জন্য একটি ভুল নাম ব্যবহার করে।

আমি 1988 সালে fbkসুনোস -৪.০ এ সেই বৈশিষ্ট্যটি আবিষ্কার করেছি এবং আমি সেই বৈশিষ্ট্যটি কল করি - ফাইল ব্লক ডিভাইসকে এমুলেট করে।

পটভূমিটি হ'ল ডিভাইস ড্রাইভারটি একটি সাধারণ ফাইলের শীর্ষে একটি ব্লক ডিভাইস এমুলেট করে। আপনার এটি দরকার কারণ একটি ফাইল সিস্টেম কোনও প্লেইন ফাইল কোনও ফাইল সিস্টেমের জন্য পটভূমি স্টোরেজ হিসাবে ব্যবহার করতে পারে না। এটির পরিবর্তে একটি ব্লক ডিভাইস প্রয়োজন এবং এটিই fbkঅনুকরণ করে।

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


3
আপনি আপনার প্রোফাইলে খুব চিত্তাকর্ষক সিভি পেয়েছেন। শ্রদ্ধা ...
কর্সেল

11
আপনার পোস্টটি কিছুটা অভিজাত হিসাবে এসে গেছে। আপনি প্রথম প্রয়োগটি লিখে থাকতে পারেন, তবে লিনাক্স পৃথক বাস্তবায়ন ব্যবহার করে, তাই এটি 'ভুল' নামটি ব্যবহার না করে, আপনার প্রয়োগের জন্য যা বেছে নিয়েছিল তার থেকে আলাদা।
অস্টিন হেমেলগারন

4
আমি কখনই বলিনি যে তারা সঠিক নামটি ব্যবহার করেছে, আমি কেবল বলেছি যে এটি ভুল বলে দাবি করা আপনাকে মতামত সম্পন্ন অভিজাতদের মতো করে তোলে।
অস্টিন হেমেলগার্ন

9
"লুপ" নামটি "লুপব্যাক" এর জন্য সংক্ষিপ্ত এবং এটি ব্লক ডিভাইসে অপারেশনগুলিকে ভিএফএসে "লুপড ব্যাক" করার পদ্ধতি বোঝায়। সোলারিস 8 একটি lofi("লুপব্যাক ফাইল") ডিভাইস চালু করেছিল যা একইভাবে কাজ করেছিল; বিএসডি তাদের vnd("ভনোড ডিস্ক") নামে পরিচয় করিয়ে দিয়েছিল তাই বছরের পর বছর ধরে ধারণার বিভিন্ন নাম রয়েছে।
ক্যাফে

2
সিএসের দুটি কঠিন সমস্যা: ক্যাশে সমন্বয়, সনাক্তকারী নামকরণ এবং একের পর এক ত্রুটি।
জেনস

1

ফাইলগুলি থেকে ফাইল সিস্টেমগুলি মাউন্ট করার জন্য যদি এটি পটভূমিতে প্রয়োজন না হয়, তবুও আপনার চালক বা প্রোগ্রাম ব্যবহার করে যে কোনও সেটআপের জন্য এটি প্রয়োজন যা একেবারে একটি ব্লক ডিভাইস প্রত্যাশা করে। এনবিডি (নেটওয়ার্ক ব্লক ডিভাইস) সার্ভারগুলি, কমপ্লেড ব্লক ডিভাইস ড্রাইভারদের যেমন এমড্রয়েড, এলভিএম ইত্যাদি চিন্তা করুন ...

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