যারা FAT32 বুট পার্টিশনের মধ্যে কেবল স্ক্রিপ্টগুলি অন্তর্ভুক্ত সমাধানের পছন্দ করেন তাদের জন্য কীভাবে এটি করা যায় তা এখানে। [ সম্পাদনা করুন: ফাইলগুলি এখন একটি প্রকল্প পাই-বুট-স্ক্রিপ্টে উপলব্ধ ]
অন্যান্য উত্তরে বর্ণিত হিসাবে এটিতে কমান্ড-লাইন যুক্তি যুক্ত রয়েছে যার সাহায্যে লিনাক্স কার্নেল শুরু হয়েছিল। সেগুলি আর্গুমেন্টগুলি / বুট / সিএমডিলাইন.টিএসটিতে রয়েছে ।
আমি এটি রাস্পবিয়ান বুস্টার (v10.1) 2019-09-26 এ পরীক্ষা করেছি। এটি একটি নতুন ফ্লাশযুক্ত এসডি কার্ড বা ডাউনলোড করা .আইএমজি ডিস্ক চিত্রে কাজ করে, যা আপনি পরে কোনও সংখ্যক এসডি কার্ডে ফ্ল্যাশ করতে পারেন।
1. কার্নেল আর্গুমেন্টগুলি সম্পাদনা করুন
/Boot/Cmdline.txt পাঠ্য ফাইলটি খুলুন , init=
এটি থেকে যে কোনও অংশ সরিয়ে ফেলুন এবং লাইনের শেষে এটি যুক্ত করুন:
init=/bin/bash -c "mount -t proc proc /proc; mount -t sysfs sys /sys; mount /boot; source /boot/unattended"
এই লাইনের সর্বশেষ শব্দটি / sbin / init পরিবর্তে প্রথম প্রক্রিয়া (PID = 1) হিসাবে কার্নেল দ্বারা চালিত স্ক্রিপ্টের নাম । কার্নেল-আর্গুমেন্ট সহায়তা পৃষ্ঠা শুধুমাত্র আর্গুমেন্ট ছাড়া বলছেন .
Init সম্পাদনযোগ্যতা পাস পেতে, যাতে আপনি স্ক্রিপ্ট কল করতে পারবেন না unattended.sh বা যে ভালো জিনিস।
২. স্ক্রিপ্টটি বুট পার্টিশনে রাখুন
বুট পার্টিশনে নিম্নলিখিত / সংরক্ষণ না করে সংরক্ষণ করুন (আপনি কমান্ড লাইনে যে নামটি রেখেছেন):
# 1. MAKING THE SYSTEM WORK. DO NOT REMOVE
mount -t tmpfs tmp /run
mkdir -p /run/systemd
mount / -o remount,rw
sed -i 's| init=.*||' /boot/cmdline.txt
# 2. THE USEFUL PART OF THE SCRIPT
# Example:
[[ -d /boot/payload/home/pi ]] && sudo -u pi cp --preserve=timestamps -r\
/boot/payload/home/pi /home/ && rm -rf /boot/payload/home/pi # A
[[ -d /boot/payload ]] && cp --preserve=timestamps -r /boot/payload/* /\
&& rm -rf /boot/payload # B
ln -s /lib/systemd/system/one-time-script.service\
/etc/systemd/system/multi-user.target.wants/ # C
# 3. CLEANING UP AND REBOOTING
sync
umount /boot
mount / -o remount,ro
sync
echo 1 > /proc/sys/kernel/sysrq
echo b > /proc/sysrq-trigger
sleep 5
এই স্ক্রিপ্টটি কিছু প্রয়োজনীয় প্রস্তুতি (অধ্যায় 1) করে, তারপরে আপনি কিছু করতে চান (2) এবং তারপরে ক্লিনআপ এবং পুনরায় বুট করা (3)। আপনি যে আদেশগুলি চালাতে চান তাতে 2 এর নীচে স্টাফগুলি প্রতিস্থাপন করুন।
কিছু কনফিগারেশন কাজের জন্য আপনার সম্ভবত নেটওয়ার্কিং এবং অন্যান্য পরিষেবাগুলি আনার জন্য একটি সাধারণ বুট প্রয়োজন, সুতরাং এই সংস্করণে উদাহরণটি (নীচে বর্ণিত) কেবল পাই পুনরায় চালু হওয়ার পরে কেবল একটি সঠিক স্ক্রিপ্ট চালানোর জন্য প্রস্তুত করে।
৩. আপনার স্ক্রিপ্টের অন্য যে কোনও ফাইল বুট পার্টিশনে রাখুন
... স্পষ্টত।
উদাহরণ
আমার স্ক্রিপ্টের সাথে একসাথে, আমি বুট পার্টিশনে পেইলড / ফোল্ডার রেখেছি , যা লিনাক্স পার্টিশনে যেতে চাইলে ফাইলগুলি ধারণ করে। উপরে স্ক্রিপ্টে অবিরত ,
- লাইন এ ফাইলগুলি পাই-ব্যবহারকারীর ডিরেক্টরিতে নিয়ে যায়। যেমন পে-লোড / হোম / পাই / .bashrc /home/pi/.bashrc হিসাবে রুট ফাইল সিস্টেমে সরানো হয়েছে ;
- লাইন বি প্যাচসমূহ সহ লিনাক্স পার্টিশন, মধ্যে শিকড় মালিকানাধীন ফাইল পেলোড, / usr / local / bin / one-time-script.sh যা হয়ে /usr/local/bin/one-time-script.sh , এবং অনুরূপ পে লোড / lib / systemd / system / one-time -cript.service ;
- লাইন সি তার পরে শেষ ফাইলটিতে একটি সিমিলিংক তৈরি করে, তাই আমার কনফিগারেশন স্ক্রিপ্টটি ওয়ানটাইমসক্রিপশন.শ পরের বুটে চালানো হয়।
এই স্ক্রিপ্টটি আমার পছন্দ মতো বিভিন্ন কাস্টমাইজেশন রয়েছে: এটি অন্য একটি FAT32 পার্টিশন তৈরি করে এবং ফর্ম্যাট করে এবং এটি / etc / fstab এ যুক্ত করে যাতে পাই ব্যবহারকারী এটিতে লিখতে পারেন (অ্যাপ্লিকেশন লগের জন্য); ext4 পার্টিশন ও ফাইল সিস্টেমকে এসডি কার্ডের বাকী অংশে পুনরায় আকার দেয়; লোকেল, টাইমজোন, হোস্টনেম (সিপিইউ সিরিয়াল নম্বর ভিত্তিক), ওয়াইফাই দেশ পরিবর্তন করে; ওয়াইফাই নেটওয়ার্ক এবং পাসফ্রেজ সেট করে; এসএসএইচ চালু করে; এসএসএইচ সেশনের জন্য একটি ভাষা-সেটিংস সমস্যা সমাধান করে; অটো-লগইন ছাড়াই কনসোলে বুট করার কনফিগার করে; বুট পার্টিশনের একটি ফাইলের জন্য সিস্টেম সম্পর্কে কিছু তথ্য লিখে; এবং অবশ্যই এটি সেই সিমলিংকটিকে সরিয়ে দেয় যাতে এটি আর বুটে চলবে না।
বেশিরভাগ ব্যবহারকারীরা এটি অপ্রয়োজনীয় খুঁজে পাবেন এবং পাইব্যাকারি , পাই-ইন 2 বা কাস্টম এক্সট 4 চিত্র ব্যবহার করতে পছন্দ করবেন , যা দুর্দান্ত সমাধান। আমি এটি পছন্দ করি কারণ আমি এটি পুরোপুরি বুঝতে পারি এবং আমাকে অন্য সফ্টওয়্যার চালাতে হবে না। এবং এটিও কাজ করে: আমি আমার স্ক্রিপ্টগুলি .img ফাইলের সাথে রেখেছি, একটি এসডি কার্ড ফ্ল্যাশ করে + এটি একটি পাইতে রেখে + এটি নিজেই কনফিগার করতে চালাতে ting মিনিট সময় নেয়।
সূত্রটি আমি স্ক্রিপ্টের ধারণাটি init=
কার্নেল আর্গুমেন্ট হিসাবে পেয়েছি এবং mount
এটির জন্য প্রয়োজনীয় কমান্ডগুলি, init_resize.sh স্ক্রিপ্টে লিনাক্স পার্টিশনের আকার পরিবর্তন করতে ডিফল্টরূপে চালিত হয়।