chrootকমান্ডটি চালানোর সময় একটি ত্রুটি দেওয়া হয়:
failed to run command ‘/bin/bash’: No such file or directory
chrootকমান্ডটি চালানোর সময় একটি ত্রুটি দেওয়া হয়:
failed to run command ‘/bin/bash’: No such file or directory
উত্তর:
এই ত্রুটির অর্থ ক্রুটের অভ্যন্তরে কোনও /bin/bashডিরেক্টরি নেই । আপনি যেখানে (বা অন্যান্য শেল এর) এক্সিকিউটেবল ডিরেক্টরিতে এটি নির্দেশ করেছেন তা নিশ্চিত করুন ।bashchroot
আপনি যদি /mnt/somedir/usr/bin/bashতারপর মৃত্যুদন্ড কার্যকরchroot /mnt/somedir /usr/bin/bash
/root/.bashrcবা /root/.bash_profileআপনার মধ্যে কিছু ব্যর্থ কমান্ড / লাইন দ্বারা সৃষ্ট হতে পারে chroot। আপনি কি এই ফাইলগুলিকে সাময়িকভাবে নাম পরিবর্তন করতে পারবেন? এছাড়াও আপনি নিশ্চিত করতে পারেন যে bashএটি কার্যকর ( chmod +x /chroot/bin/bash)?
আমার /bin/bashক্রোয়েটেড ডিরেক্টরি ভিতরে ছিল তবে এর মধ্যে আমার / লিব এবং / লিব 64 নেই। ক্রুট থেকে প্রাপ্ত বার্তাটি আরও বর্ণনামূলক হতে পারে। "এই জাতীয় কোনও ফাইল বা ডিরেক্টরি" এর অর্থ আসলে "আমি এটি চালাতে পারি না ..."।
/bin/bashlibc, ld-linux, libdl ইত্যাদির উপর অবশ্যই নির্ভর করে আপনি ldd /bin/bashকোন লাইব্রেরি প্রয়োজন তা দেখতে আপনি এটি ব্যবহার করতে পারেন।
1) আপনি mount -o bindchroot এর অধীনে এই ডিরেক্টরিগুলি করতে পারেন 2) বা আপনি এই লাইব্রেরিগুলিকে chroot এ অনুলিপি করতে পারেন, যদি আপনি ক্রোটেড এনভির উপর বিশ্বাস না রাখেন যে তাদেরকে দুর্নীতিগ্রস্ত করবেন না, যেমন:
cp -a /usr rootfs/
cp -a /lib rootfs/
cp -a /lib64 rootfs/
chrootআপনার $SHELLপরিবেশ পরিবর্তনশীলে সেট করা শেলটি ডিফল্টরূপে শুরু করার চেষ্টা করে তবে এটি এটি আপনার নতুন রুট ডিয়ারে সন্ধান করে যা /bin/bashএটি ধারণ করে না বলে মনে হয় , সুতরাং এটি আরম্ভ করতে পারে না।
আপনি ক্রোটকে প্যারামিটার হিসাবে যুক্ত করে নতুন রুটের ভিতরে অন্য প্রোগ্রাম শুরু করতে বলতে পারেন:
chroot /your/new/root /bin/foo --options...
নোট করুন যে কমান্ডের পাথটি আপনার নতুন রুটের অভ্যন্তরে ব্যাখ্যা করা হয়েছে , সুতরাং এই উদাহরণে বলা প্রোগ্রামটি আসলে ইন-হ'ল/your/new/root/bin/foo
রিমোট সার্ভারে ক্রোয়েটেড অ্যাকাউন্টে ssh করার চেষ্টা করার সময় আমি একই ত্রুটি পেয়েছিলাম। আমার ক্ষেত্রে, আমি রিমোট lib64 ডিরেক্টরিতে নিম্নলিখিত ফাইলটি অনুপস্থিত। সার্ভারটি Centos6.9
ld-linux-x86-64.so.2
নিম্নলিখিতটি কার্যকর করে এটি স্থির করা হয়েছিল:
cp /lib64/ld-linux-x86-64.so.2 /secure/jail/lib64/
cp -r /lib /lib64 /secure/jaillib এবং lib64 উভয়েরই কিছু দরকার ছিল এবং আমি ঠিক কী খুঁজে বের করতে বিরক্ত করিনি। (সম্ভবত আমি
আপনি যদি ক্রস সংকলন করছেন তবে আপনাকে কেমু সিমুলেটর ব্যবহার করতে হবে যা একবার / মেন্ট / সামিডির / বিন / বাশ চালাতে পারবেন যখন আপনি কেমু-আর্ম-স্ট্যাটিক (আমি এই কাজটি আর্ম্ফের জন্য করছি) / mnt / somedir / usr তে অনুলিপি করেন / বিন আপনি ক্রুট করতে সক্ষম হবেন।
এই আরো বিস্তারিত জানার জন্য পরীক্ষা করে দেখুন: https://blog.lazy-evaluation.net/posts/linux/debian-armhf-bootstrap.html