কেবলমাত্র পঠন মোডে একটি ব্যস্ত ডিস্কটিকে পুনরায় সীমাবদ্ধ করুন


19

আমি কেবল ডিস্ক বিভাজনকে কেবল মোডে পড়তে বাধ্য করতে এবং এটিকে কেবল 30 মিনিটেরও বেশি সময় ধরে পঠন করতে চাই।

আমি যা চেষ্টা করেছি:

  1. mount -o remount,ro (partition-identifier) (mount-point) -t (filesystem)

    সমস্যা : কিছু প্রক্রিয়া পার্টিশনটি ব্যবহার করায় এটি ডিভাইসকে ব্যস্ত ত্রুটি দিয়েছে। আমি ডিস্ক ব্যবহার করে প্রক্রিয়াগুলি মেরে ফেলতে চাই না। আমি যখন ডিস্কগুলি হঠাৎ কেবল পঠনযোগ্য তখনই প্রসেসগুলি এটির ব্যবহার করে অনুকরণ করতে চাই।

  2. নিচের মতো ম্যাজিক সিসারকি কী ব্যবহার করা হয়েছে

    echo u > /proc/sysrq-trigger
    

    সমস্যা : এটি সমস্ত ডিস্ক পার্টিশনগুলি কেবল পঠনযোগ্য করে তুলবে (যদিও ডিভাইস ব্যস্ত থাকে)। তবে 20-30 মিনিটের পরে মেশিনটি নিজেই রিবুট হচ্ছে। এই কমান্ডটি কার্যকর হওয়ার সাথে সাথে কিছু মেশিন তত্ক্ষণাত রিবুট হয়। এখনও এই রিবুটটির কারণ কী তা নিশ্চিত নয় Not আমি চাই না যে মেশিনটি নিজেই পুনরায় বুট হয় এবং 30+ মিনিটের জন্য কেবল ডিস্কটি কেবল পঠন মোডে রাখা দরকার।

প্রশ্ন : আমি কোনও একক ডিস্ক পার্টিশনকে কেবলমাত্র পঠনযোগ্যভাবে পড়তে বাধ্য করতে পারি এবং এ অবস্থায় আধা ঘন্টা ধরে এটি বজায় রাখতে পারি এবং প্রক্রিয়াটিতে কোনও রিবুট না ঘটিয়ে পুনরায় পঠন-লিখন মোডে আনতে পারি?


3
আপনি বিবেচনা করেছেন fsfreeze -f? এটি কেবল পঠনযোগ্য ফাইল সিস্টেমটিকে পুনঃনির্মাণ করে না। পরিবর্তে, এটি সমস্ত লেখককে অবরুদ্ধ করে fsfreeze -u। তবে এটি একই রকম ...
সেলেদা

ধন্যবাদ সেলাদ! এটি একটি ভাল ধারণা! .. এখনই আমার মেশিনে fsfreeze কাজ করছে না তবে আমি এটি চেষ্টা করব।
AdithyaCS

আমি চেষ্টা করেছি fsfreeze -fএবং এটি আমার ক্ষেত্রে এটি আরও বেশি "ওএস ফ্রিজ" ছিল। কারণ লেখাগুলি বাতিল হওয়ার পরিবর্তে অবরুদ্ধ ছিল?
পাইওটার ফাইন্ডসেন

fsfreezeআমার সিস্টেমটিকে অ্যাক্সেসযোগ্য করে তুলেছে এবং আমি টার্মিনালে ফিরে যেতে সক্ষম না হওয়ায় আনফ্রিজ কমান্ডটি প্রবেশ করতে পারিনি এবং আমার মেশিনটিকে হার্ড-রিবুট করতে হয়েছিল। সুতরাং সাবধান ! :)
অ্যালেক্স

উত্তর:


16

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

আপনি umount -lমাউন্ট পয়েন্টটি ছেড়ে দিতে এবং আরও ফাইল খুলতে বাধা দিতে ব্যবহার করতে পারেন , তবে ফাইল সিস্টেমটি মাউন্ট রাখুন এবং ইতিমধ্যে ফাইলগুলি সাধারণভাবে চালু থাকা প্রক্রিয়াগুলি রাখুন।

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

echo 1 >/sys/block/dm-4/ro
echo 1 >/sys/block/sda/sda2/ro

echo u > /proc/sysrq-triggerরিমাউন্টিংকে কেবল পঠনযোগ্য হিসাবে বাধ্য করার এক চরম উপায়, কারণ এটি সমস্ত ফাইল সিস্টেমকে প্রভাবিত করে। এটি রিবুট করার ঠিক আগে ফাইল সিস্টেমটিকে একটি পরিষ্কার অবস্থায় রেখে যাওয়ার জন্য সর্বশেষ-ডাচ পদ্ধতি হিসাবে বোঝানো হয়েছিল।

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


2
দুর্ভাগ্যক্রমে, এটি বহনযোগ্য সমাধান নয়। রাস্পবেরিতে আমি পেয়েছি: আমি যখন চালিত করি তখন "অনুমতি অস্বীকার"echo 1 | sudo tee /sys/block/mmcblk0/mmcblk0p2/ro
পাইওটর ফাইন্ডেন

.. এবং echo u > /proc/sysrq-triggerএটি কেবল চরম নয়, আপনি যদি আরডাব্লু পুনঃনির্মাণ করতে চান তবে আপনাকে পুনরায় বুট করতে বাধ্য করতে পারে। যখন আমি এটি চেষ্টা করেছি এবং তারপরে পুনঃমাউন্টটি (দিয়ে mount..) dmesgবলেছিল "অনাথিত অনাথ ইনোড তালিকার কারণে আরডিডাব্লুআরটিকে পুনঃনির্মাণ করা যায়নি instead পরিবর্তে অনুগ্রহ করে অনুগ্রহ করে /
পুনরুদ্ধার করুন

@ পাইট্রফিন্ডেইসেন আপনি কি এটিকে মূল হিসাবে চালিত করেছেন?
হানশেনেরিক

@হানশেরিক আমার ধারণা তাই
পাইওটর ফাইন্ডেইন

4

mountবল প্রয়োগের বিকল্পটি ব্যবহার করুন (ধরে mountনিলে আপনার মাউন্টটির একটি রয়েছে; জিএনইউ নেই, তবে বিএসডি এবং ম্যাকোস উদাহরণস্বরূপ রয়েছে):

mount -f -o remount,ro /mount/point

অবশ্যই, আপনার মাইলেজটি প্রকৃত ফাইল সিস্টেম, কার্নেলের সংস্করণ এবং পরিস্থিতির উপর নির্ভর করে পরিবর্তিত হতে পারে , সুতরাং এটি কেবলমাত্র উচ্চ স্তরের বিকল্প যা অন্যান্য নিম্ন স্তরের কৌশলগুলি ব্যবহার করে যেমন @ গিলিস উল্লেখ করেছেন।


1
@ পিপুসি নং এটি আমার ext4 /পার্টিশনটিকে পুনরায় মাউন্ট করার অনুমতি দিয়েছে ।
পাইওটর ফাইন্ডেন

2
দেখা যাচ্ছে যে আমি ভাবছিলাম umount -f, কিন্তু আমি কেবল রো-র পুনঃনির্ধারণের চেষ্টা করেছি, এবং যখন -f কমান্ডটি ত্রুটি ফিরিয়ে দেয় না, ফাইল সিস্টেমটি আসলে, কেবল পঠনযোগ্য নয়।
psusi

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

13
মানুষ মাউন্ট বলছেন -fহয় --fake। উদ্ধৃতি: "প্রকৃত সিস্টেম কল ব্যতীত সবকিছু করার কারণ ঘটায়; যদি এটি সুস্পষ্ট না হয় তবে ফাইল সিস্টেমটি মাউন্ট করে এই '' নকল '' the মাউন্ট কমান্ড কী চেষ্টা করছে তা নির্ধারণ করার জন্য এই বিকল্পটি -v পতাকার সাথে একযোগে কার্যকর এটি ব্যবহার করে ডিভাইসগুলির জন্য এন্ট্রি যুক্ত করতে ব্যবহার করা যেতে পারে যা -n বিকল্পের সাথে আগে মাউন্ট করা হয়েছিল Thef বিকল্পটি / etc / mtab এ বিদ্যমান রেকর্ডের জন্য পরীক্ষা করে এবং রেকর্ডটি ইতিমধ্যে উপস্থিত থাকলে ব্যর্থ হয় (নিয়মিত নন-জাল মাউন্ট সহ, এই চেকটি কার্নেল দ্বারা সম্পন্ন করা হয়) "।
উইল ম্যানলে

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