পঠনযোগ্য / ইত্যাদি লেখার যোগ্য করুন


11

আমি এম্বেড থাকা লিনাক্সের সাথে কাজ করছি device এই ডিভাইসের নির্মাতারা এটি সেট আপ করেছেন যাতে এটি রুট ফাইল সিস্টেমটিকে কেবল পঠনযোগ্যভাবে লোড করে।

/ ইত্যাদি / এমতাব থেকে:

rootfs / rootfs rw 0 0
/dev/root / squashfs ro,relatime 0 0

এর অর্থ হল যে আমি / ইত্যাদি মধ্যে কোনও ফাইল সংশোধন করতে অক্ষম, যেমন একটি নতুন ব্যবহারকারী যুক্ত করতে to

আমি মূল ডিরেক্টরিটি পুনরায় গণনা করার চেষ্টা করেছি:

mount -o remount,rw -t squashfs /dev/root /

তবে আমি কেবল একটি ত্রুটি পেয়েছি

mount: cannot remount block device /dev/root read-write, is write-protected

আমি এই ত্রুটিটি দেখেছি এবং লোকেরা ব্লকদেব ব্যবহার করতে বলছে। সিস্টেমে ব্লকদেব ইনস্টল করা নেই, তাই আমি এটিকে সংকলন করে পেরিয়ে অনুলিপি করেছি। তখন আমি দৌড়ে গেলাম

blockdev --setrw rootfs

তবে আবার আমি একটি ত্রুটি পেয়েছি:

blockdev: cannot open rootfs: No such file or directory

এটি ইতিমধ্যে না থাকলে / ইত্যাদি লিখিতযোগ্য করা সম্ভব? আমার সিস্টেমে রুট অ্যাক্সেস রয়েছে তবে আমি ফাইল সিস্টেম 'অফলাইন' অ্যাক্সেস করতে পারছি না, সমস্ত পরিবর্তন বাশ কমান্ডের মাধ্যমে করতে হবে।

উত্তর:


19

squashfsকেবলমাত্র পঠনযোগ্য সঙ্কলিত ফাইল সিস্টেম। এটি তৈরি হয়ে যাওয়ার পরে এটির সংশোধন করার কোনও বিধান নেই। সুতরাং অন্তর্নিহিত ব্লক ডিভাইসটি লিখনযোগ্য করে তোলা যেতে পারে এমনকি আপনি এটিতে লিখতে পারেন নি। আপনার পরিবর্তনগুলি সহ পুরো ফাইল সিস্টেমের একটি নতুন স্কোয়াশফের চিত্র তৈরি করতে হবে এবং সেই ফাইল সিস্টেমটি সংরক্ষণ করা স্টোরেজ ডিভাইসে এটি পোড়াতে হবে, যা লাইভ সিস্টেম থেকে করা সমস্যাযুক্ত হবে।

অন্য বিকল্পটি হ'ল একটি ভিন্ন ফাইল সিস্টেম চালু করা /etc। এটি ইউনিয়ন মাউন্টের সাহায্যে কার্নেলের দ্বারা সমর্থিত হতে পারে, যা দুটি ফাইল সিস্টেমকে একত্রে একত্রে এক ফাইল সিস্টেমের সাথে কেবল একটি বেস পঠনযোগ্য ফাইল সিস্টেমে পরিবর্তন রেকর্ড করে।

কার্নেল কনফিগারেশনে AUFS_FS বা OVERLAY_FS এর জন্য সমর্থন পরীক্ষা করুন।

উদাহরণস্বরূপ ডিরেক্টরিতে ইউনিয়ন-মাউন্ট করার জন্য /tmp(যদি সম্ভবত tmpfsসিস্টেমে কোনও স্থায়ীভাবে লেখার যোগ্য স্টোরেজ না থাকে তবে আপনার ক্ষেত্রে মেমরির (সম্ভবত একটি রিবুট জুড়ে অবিচলিত নয়) লিখনযোগ্য)

mkdir -p /tmp/etc/work /tmp/etc/upper
mount -t overlay \
      -o lowerdir=/etc,upperdir=/tmp/etc/upper,workdir=/tmp/etc/work \
       overlay /etc

তারপরে /etcলিখনযোগ্য এবং আপনি যে পরিবর্তনগুলি করেন তা আসলে সংরক্ষণ করা হবে /tmp/etc/upper

বিকল্পভাবে, যদি এটি কেবলমাত্র কয়েকটি ফাইল আপনি সংশোধন করতে চান তবে আপনি লিখিতযোগ্য ফাইল সিস্টেমগুলিতে সঞ্চিত সংস্করণ থেকে এগুলি (হ্যাঁ আপনি যে কোনও ফাইলের মাউন্ট করতে পারেন, কেবল ডিরেক্টরিগুলিও নয়) বাঁধতে পারেন:

cp /etc/passwd /tmp
mount --bind /tmp/passwd /etc/passwd

তারপরে /etc/passwdলিখতে পারা যায়। অবশ্যই আপনি /etcপরিবর্তে পুরো জন্য এটি করতে পারেন । ( cp -a /etc /tmp && mount --bind /tmp/etc /etc)।


কিছু এম্বেড থাকা সিস্টেমগুলি /etcএনভিআরমে নির্দিষ্ট সেটিংয়ের ভিত্তিতে বুট সময়ে ফাইলগুলিকে ওভাররাইড করতে পারে । সুতরাং, আপনি /etcএকটি "যাদু" সিস্টেমের ভেরিয়েবল সেট করতে চান এমন কোনও ফাইল পরিবর্তন করতে এনভ্রামে প্রতিশ্রুতি দিন, তারপরে কনফিগারেশনটি পুনরায় লোড করুন বা পুনরায় বুট করুন। হোম রাউটারগুলির বিস্তৃত অংশ এটির মতো কাজ করে। তবে সঠিক পদ্ধতি এবং আদেশগুলি সিস্টেম-নির্দিষ্ট।
Sato কাতসুরা

পারফেক্ট! ডিভাইসটি ওভারলে মাউন্টগুলিকে সমর্থন করে না, তবে / ইত্যাদি ফাইলের উপর কাস্টম ফাইলগুলিকে বাঁধাই খুব ভালভাবে কাজ করেছে! আপনার সাহায্যের জন্য ধন্যবাদ.
জোশুয়া ওয়ালশ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.