কনসোল অ্যাক্সেস সহ একটি সিগেট ডকস্টার থাকার পরে, আমি এটিতে ডিবিয়ান স্কিজে ইনস্টল করেছি। এটি কেবল পঠনযোগ্য রুটে চালিত করার সূচনা পয়েন্ট হিসাবে, আমি জেফ ডুজানের এই দুর্দান্ত নিবন্ধটি 1 ব্যবহার করেছি। প্রাথমিক কৌশলটিতে একটি স্ক্রিপ্ট তৈরি করা জড়িত যা প্রতিটি বুটে, প্রয়োজনীয় লিখিত ডিরেক্টরিগুলি একটি tmpfs হিসাবে মাউন্ট করে। আমি এখানে জেফ 2 দ্বারা স্ক্রিপ্টটি উদ্ধৃত করেছি (জেফের কাছে কুডোস!)
#!/bin/bash
DIRS="/tmp /var/log /var/run /var/lock /var/tmp /var/lib/urandom /var/lib/dhcp /etc/network/run"
for DIR in $DIRS; do
echo "Mounting $DIR as tmpfs"
mount -n -t tmpfs tmpfs $DIR
if [ -d "$DIR-saved" ]; then
echo "Restoring $DIR-saved to $DIR"
tar -C "$DIR-saved" -cf - ./ | tar -C "$DIR" -xpf -
fi
done
echo "nameserver 4.2.2.1" > /var/tmp/resolv.conf
touch /var/lib/dhcp/dhcpd.leases
exec /sbin/init
উপরের রেখাগুলি আপনার টার্গেটের রুটফেসে / sbin / init-ro নামক স্ক্রিপ্ট হিসাবে সংরক্ষণ করুন এবং এটিকে সম্পাদনযোগ্য করে তুলুন।
chmod 755 /sbin/init-ro
বুট-সময় চলাকালীন এই স্ক্রিপ্টটি ব্যবহার করার জন্য, আপনাকে সিস্টেমের রুটফগুলি কিছুটা প্রস্তুত করতে হবে (সবগুলি জেফের স্ক্রিপ্ট 2 থেকে উদ্ধৃত হয়েছে ( $ROOT
আপনার মাউন্ট করা রুটগুলির আসল অবস্থানের সাথে মানিয়ে নিতে ))।
# Configure dhcp-client to write resolv.conf to /tmp instead of /etc
sed -i 's/\/etc\/resolv.conf/\/var\/tmp\/resolv.conf/' $ROOT/sbin/dhclient-script > /dev/null 2>&1
rm $ROOT/etc/resolv.conf
ln -s /var/tmp/resolv.conf $ROOT/etc/resolv.conf
# make /etc/network/run/ a symlink to /tmp/network/
rm -rf $ROOT/etc/network/run
ln -s /var/tmp/network $ROOT/etc/network/run
# Fixes from http://wiki.debian.org/ReadonlyRoot
rm $ROOT/etc/blkid.tab > /dev/null 2>&1
ln -s /dev/null $ROOT/etc/blkid.tab
rm $ROOT/etc/mtab > /dev/null 2>&1
ln -s /proc/mounts $ROOT/etc/mtab
rm $ROOT/etc/rcS.d/S12udev-mtab
rm -rf $ROOT/var/log/*
উপরের মত মূলগুলি প্রস্তুত করার পরে, আপনি / etc / fstab-এ কেবল পঠনযোগ্য মাউন্ট করতে পারেন ( আপনি যে ফাইল সিস্টেম ব্যবহার করছেন তার সাথে ext2 প্রতিস্থাপন করুন বা পরিবর্তে রুটফ ব্যবহার করুন)।
/dev/root / ext2 noatime,ro 0 1
অবশেষে, প্রকৃত / sbin / init ের আগে স্ক্রিপ্টটি চালানোর জন্য আপনাকে নিম্নলিখিত কার্নেল প্যারামিটারগুলিতে (যেমন রাস্পির উপর /boot/Cmdline.txt এ) যুক্ত করতে হবে । (নিম্নলিখিত মাত্র একটি উদাহরণ রুট এবং rootdelay প্যারামিটার আছে যে লাইন করা যোগ করা হবে গুরুত্বপূর্ণ অংশ। cmdline.txt হয় ।)init=/sbin/init-ro
root=/dev/mmcblk0p2 rootdelay=2 init=/sbin/init-ro
তবে সচেতন থাকুন যে কোনও সফ্টওয়্যারটির জন্য রুটফেসে রাইটিং অ্যাক্সেসের প্রয়োজন হয় আপনাকে উপযুক্ত টিএমপিএফ অবস্থানগুলি মাউন্ট করতে হবে বা বাহ্যিক স্টোরেজে লিখতে হবে।