কিভাবে partprobe কাজ করে?


12

আমি একটি উপায় SCSI বাস (নাকি অন্য কোন বাস, যে বিষয়টি জন্য) রিফ্রেশ করতে আমার কার্নেল (সেন্টওএস 5.5 উপর 2.6.18-194-el5) একটি ড্রাইভে পার্টিশন সম্পর্কে জানতে সম্ভব হবে খুঁজছেন ছিল, এবং আমি পারিনি 'টি একটি উপায় খুঁজে বের। পার্টপ্রোব তাত্ক্ষণিকভাবে এটি করেছে। কিভাবে?

যেহেতু এটা গুরুত্বপূর্ণ, এখানে আমি কি করছেন দেওয়া হল:

আমি মাপ করা MBR ব্যাক আপ এবং এটি পুনরূদ্ধার, ইত্যাদি মত পার্টিশন-নির্দিষ্ট কিছু কিছু অনুশীলন পেতে চেয়েছিলেন। আমি / dev / sdb, MBR- এ ব্যাক আপ একটি 20GB পার্টিশন তৈরি করেছে:

dd if = আপনার / dev / = sdb.mbr BS = 512 গণনা = 1 এর sdb

তারপর আমি fdisk ঢুকে পার্টিশন মোছা হয়েছে, এটা লিখেছে, এবং প্রস্থান করেছে।

এলএস / দেব / এসডিবি *

দেখিয়েছেন কোন পার্টিশন ছিল, এবং

fdisk -l / dev / sdb '

মিলছে, তাই আমি অনুভব করেছি যে আমি ভাল আছি।

আমি তখন ডিডিটি উল্টে দিয়েছি:

DD যদি = = / dev / sdb BS = 512 গণনা sdb.mbr = 1

অবশ্যই, আমি যে সময়ে কিছু করিনি, তাই

এলএস / দেব / এসডিবি *

কোনও পার্টিশন তালিকাভুক্ত করেনি, তবে

fdisk -l

পার্টিশনটি সম্ভবত প্রদর্শিত হয়েছিল কারণ এটি ডিস্কে প্রথম 512 বাইট পড়ে এবং কার্নেলের উপর নির্ভর করে না। আমি জানতাম যে আমাকে বাসটি রিফ্রেশ করতে হবে, তাই আমি / সায়স / ক্লাস / স্ক্সি_হোস্ট / হোস্ট 1 এ andুকেছি এবং

প্রতিধ্বনি -> স্ক্যান "- -"

এবং করছেন

ম / dev / sdb

নতুন কিছু দেন না, তাই তারপর আমি / sys / বাস / SCSI / ডিভাইস গিয়ে তালিকাভুক্ত ডিভাইসগুলি প্রত্যেকের জন্য, আমি করেছি

প্রতিধ্বনি 1> পুনরায় স্ক্যান

এবং যে কাজ করে নি।

আমি তখন সমস্যা সম্পর্কে আরো গবেষণা করেছিলেন, এবং 'partprobe', যা বিভক্ত দিয়ে আসে জুড়ে এসেছিল। আমি এটা দৌড়ে এবং এটি ঝটপটভাবে কাজ করেন।

যদি আমি একটি সম্ভবত উত্তর এখানে পাবেন না, আমি সম্ভবত শুধু যেতে উৎস পেতে এবং কীভাবে এটি দেখার যাচ্ছি, কিন্তু আমি চিন্তা সেখানে উইজার্ড এখানে আমার বহির্ভূত তাই আমি চিন্তা আমি আপনি সব আপীল চাই।

উত্তর:


12

Partprobe আহ্বান BLKRRPARTioctl, যা, মধ্যে নথিভুক্ত করা মাত্রই ভুল করে, include/linux/fs.hএবং তার পরেও যে কার্নেল উৎস (মাংস হয় rescan_partitions()):

#define BLKRRPART  _IO(0x12,95) /* re-read partition table */

সহজতম উপায়টি হ'ল এই খুঁজে বের করতে চালানো হয় strace -e raw=ioctl -e open,ioctl partprobe /dev/sdb

আমি মনে করি আপনি যা চেষ্টা করেছেন /sys/*/*scanতা কার্নেলকে ড্রাইভের কোনও পরিবর্তন হয়েছে কিনা তা পরীক্ষা করতে বলে। সাহায্য যে যদি না ড্রাইভ পরিবর্তন হয়নি (অথবা একটি উপায় যে কার্নেল শনাক্ত করতে পারছে না? মধ্যে hotswapped হয়েছে) কিন্তু এটা পার্টিশন গঠন পরিবর্তিত হয়েছে না।

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