বুট করার সময় কীভাবে একটি লুপ ডিভাইস সেটআপ করবেন?


14

বুট করার সময় আমি একটি লুপ ডিভাইস সেট আপ করতে চাই। আমি ভাবছি এটি করার সর্বোত্তম উপায়টি কী what

আমি এটি গুগলে অনুসন্ধান করেছি। কেউ কেউ বলছেন একটি ওদেব নিয়ম যুক্ত করে, কেউ বলেন স্ক্রিপ্টগুলি putting /etc/init.dুকিয়ে দেওয়া, কেউ কেউ এমনকি থ্রাইমারফগুলি সংশোধন করে।

তাহলে এটি করার সর্বোত্তম বা সঠিক উপায় কী? আপনি দয়া করে কিছু বিশদ (কীভাবে করবেন) দিতে পারেন?

ধন্যবাদ.


আমি সাথে যাব /etc/init.d/something, বা /etc/rc.local, তবে আমি যে পদ্ধতিতে কাজ করে তার সাথে থাকার পরামর্শ দিই।
এনজোটিব

6
কিসের জন্য? আপনি যদি বুট করার সময় কোনও ফাইল মাউন্ট করতে চান তবে লুপ বিকল্পের সাহায্যে এটিকে / etc / fstab এ যুক্ত করুন এবং মাউন্ট আপনার জন্য লুপব্যাক ডিভাইস কনফিগার করার জন্য যত্ন নেবে।
psusi

@ পিপুসি: আপনার পরামর্শের জন্য আপনাকে ধন্যবাদ, তবে আমার উদ্দেশ্যটির জন্য, মাউন্ট করা যথেষ্ট নয় এবং বাস্তবে ফাইলটি কেবল মাউন্ট করা যায় না। এটি একটি বিভাজনের চিত্রের চেয়ে একটি ডিস্ক চিত্র। এবং ভার্চুয়ালবক্সে ভার্চুয়াল ডিস্ক তৈরি করতে লুপ ডিভাইসটির সঠিক নামটি জানতে হবে। (আমি ভার্চুয়াল ডিস্ক চিন্তা এই ধরনের ভার্চুয়াল মেশিন এবং হোস্ট মেশিনের মধ্যে ফাইল ভাগ করা সহজ করতে বিল্ট-ইন ভাগ করা ফোল্ডার আছে কিছু অ্যাপ্লিকেশনের জন্য কাজ না।।)
Roun

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

@ রউন: ফাইলের পার্টিশনগুলি এখনও মাউন্ট করা যেতে পারে, যদিও আপনাকে ফাইলের শুরু থেকেই পার্টিশনের অফসেটটি নির্দিষ্ট করতে হবে (যেমন mount /disk.img /mnt -o loop,offset=2048প্রথম পার্টিশনের জন্য)। লুপ ডিভাইসটি সেট আপ হয়ে গেলে অফসেটগুলি পার্টড বা এফডিস্ক ব্যবহার করে পাওয়া যাবে (এর জন্য আমার উত্তরটি দেখুন)।
জানফুর

উত্তর:


7

উবুন্টুতে প্রারম্ভকালীন কাজগুলি করার জন্য কমপক্ষে তিনটি "যথাযথ" উপায় রয়েছে (ধরে নেওয়া যায় আপনি কেবল এটি মাউন্ট করতে চান না), পছন্দের ক্রমহ্রাসমান ক্রমে এখানে তালিকাভুক্ত:

  1. /etc/init/*.conf (ভুঁইফোড়)
  2. /etc/init.d/* (Sysvinit)
  3. /etc/rc.local (রানলেভেল পরিবর্তন স্ক্রিপ্ট)

উদেব বিধি ব্যবহারের সম্ভাবনাও রয়েছে তবে এটি বিশৃঙ্খল হবে। আমি এর বিরুদ্ধে সুপারিশ করছি। সিসভিনিট স্ক্রিপ্টটি এত ছোট একটি জিনিসের জন্য ওভারকিল, তাই আমি অন্য দুটি বিকল্পের দিকে মনোযোগ দেব। রানলেভেল পরিবর্তন স্ক্রিপ্টটি সবচেয়ে সহজ (যদিও কমপক্ষে পছন্দসই), তাই আমি সেখানেই শুরু করব।

/etc/rc.localফাইল কেবল দ্বারা মৃত্যুদন্ড কার্যকর করা হয় /etc/init.d/rc.localsysvinit স্ক্রিপ্ট, যা (ডিফল্ট অনুসারে) হয় রান-লেভেল "-এ" কোনো স্বাভাবিক স্যুইচ উপর গত মৃত্যুদন্ড কার্যকর (যখন যেমন আপনি সাধারণত বুট, কিন্তু আপনি নিচে না বন্ধ বা পুনরুদ্ধারের মোডে যেতে যখন)। বুট ডিভাইস সেটআপ কার্যকর করতে /etc/rc.local, আপনার ফাইলটি ডাকা হয়েছে /srv/diskimageএবং আপনি /dev/loop0লুপ ডিভাইস হিসাবে ব্যবহার করতে চান তা ধরে নিয়ে এইটিকে শেষে এইটি যুক্ত করুন :

losetup /dev/loop0 /srv/diskimage

সত্যিই এটি আছে। অবশ্যই, আপনার সেটআপে সবচেয়ে ভাল কাজ করে এমন ফাইলের নামগুলি প্রতিস্থাপন করুন।

আপনি যদি এটি সম্পর্কে আরও কিছুটা সুনির্দিষ্ট হতে চান তবে আপনি এটির জন্য একটি আপস্টার্ট কাজ তৈরি করতে পারেন যা ফাইল সিস্টেমটি এটির মাউন্ট হয়ে গেলে এটি সেট আপ করে দেয়। উদাহরণস্বরূপ নিম্নলিখিতটি /srvহ'ল এটি ধরে নেওয়া হবে যে এটি আপনার diskimageফাইল সহ মাউন্ট পয়েন্ট ছিল :

description     "Setup loop devices after filesystems are mounted"

start on mounted MOUNTPOINT=/srv
task
exec losetup /dev/loop0 /srv/diskimage

ধারণাটি অনুসরণ করার জন্য এটি যথেষ্ট সহজ হওয়া উচিত: প্রথম লাইনটি হ'ল মানব পাঠকদের জন্য একটি মন্তব্য এবং /srvফাইল সিস্টেমটি মাউন্ট না হওয়া অবধি অপেক্ষার জন্য আপস্টার্টকে নির্দেশনা দেওয়া , লসআপআপ প্রক্রিয়াটি সম্পাদন করা এবং প্রক্রিয়াটি সফলভাবে প্রস্থান করার সময় নিজেকে সমাপ্ত বিবেচনা করা উচিত (একটি " টাস্ক ", অবিচ্ছিন্ন একটি পরিষেবার বিপরীতে)। এই লিখিত সামগ্রীগুলিকে কেবল একটি ফাইল মেলানোতে রাখুন /etc/init/*.conf। আমি নিজেই বেছে /etc/init/losetup.confনেব

/etc/rc.localজাতীয় কোনও সাধারণ কাজের জন্য আপস্টার্ট কাজের সুবিধাগুলি ছোট তবে গুরুত্বপূর্ণ। প্রথমত, /etc/rc.localঅবহেলা করা হয়েছে এবং কেবলমাত্র "জিনিসগুলি সম্পন্ন করার জন্য অগোছালো স্যান্ডবক্স" হিসাবে এর ব্যবহার আজকাল বেশ কিছু লোকের দ্বারা প্রত্যাখাত। এর ব্যবহারকে অস্বীকার করার অন্যান্য কারণগুলির মধ্যে কিছু ফাইল যা এই ফাইলটি ব্যবহার করে সেগুলি কেবল বিষয়বস্তুগুলিকে ওভাররাইট করে দেবে এবং একই স্ক্রিপ্টগুলিতে একই ফাইলের মধ্যে যেতে হবে এমন বিভিন্ন স্ক্রিপ্টগুলির পুনর্মিলন করা কঠিন। দ্বিতীয়ত, আপস্টার্ট আসলে আপনার জন্য নির্ভরতা যাচাই পরিচালনা করে (ফাইল সিস্টেমটি প্রথমে মাউন্ট করা হয়েছে কিনা তা নিশ্চিত করে), সুতরাং যদি ফাইল সিস্টেমটি মাউন্ট করতে সমস্যা হয় তবে তা হবে নালুপ ডিভাইস সেটআপ করার চেষ্টা করুন .... তবে একবার সমাধান হয়ে গেলে এবং মাউন্ট করে নেবে। তৃতীয়, আপস্টার্টটি অনেক বেশি নমনীয়: উদাহরণস্বরূপ, আপনি অব্যবহৃত লুপ ডিভাইসটি সন্ধান করতে যথেষ্ট স্মার্ট হতে পারেন এবং অন্যান্য আপস্টার্ট কাজের ক্ষেত্রে লুপ ডিভাইসটি "নির্গত" করতে পারেন, যেমনটি আমরা "MOUNTPOINT" ভেরিয়েবলটি ব্যবহার করেছি উপরে এই উদাহরণে।


/Etc/init/losetup.conf কীভাবে আবেদন করেছিল ??? এটি আমার পক্ষে কাজ করছে না ...
ইমরান

1

@ পিপুসী যেমন উল্লেখ করেছেন, সহজ উপায় হ'ল আপনার /etc/fstabফাইলটিতে নিম্নলিখিত লাইনটি যুক্ত করা

/path/to/loop/device       /path/to/mount/point       auto       loop       0 0

এখন রিবুট করুন বা mount -aরুট হিসাবে চালান । তারপরে ডিভাইসটি মাউন্ট করা উচিত। আপনি এটি দিয়ে পরীক্ষা করতে পারেন lsblk

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