चेरोट के प्रयास के दौरान, मुझे यह त्रुटि मिली: "चुरोट: कमांड '/ बिन / बैश' चलाने में विफल: प्रारूप प्रारूप त्रुटि"


20

मैं इस ट्यूटोरियल के निर्देशों का पालन कर रहा था HOWTO: लाइव सीडी से ग्रब 2 को रीबोर और रीइंस्टॉल करें , जब मुझे चरण 1 पर एक त्रुटि का सामना करना पड़ा, जैसा कि मैंने कमांड लॉन्च किया था

sudo chroot /mnt/temp

त्रुटि निम्नलिखित थी:

chroot: failed to run command `/bin/bash': Exec format error

वह कहां से आता है? मैं कैसे प्राप्त करूं?

जवाबों:


22

सत्यापित करें कि आप सही लाइव सीडी का उपयोग कर रहे हैं। उदाहरण के लिए, सत्यापित करें कि आप 64 बिट सीडी के बजाय 32 बिट सीडी का उपयोग नहीं कर रहे हैं। 64 बिट कोड को चलाने के लिए आपको 64 बिट कर्नेल की आवश्यकता होती है, इसलिए अपने आर्किटेक्चर की जांच करें।

मान लें कि आपने अपने सिस्टम को / मीडिया / sda1 में चिरोट किया जा सकता है , जो आपके द्वारा निर्धारित आर्किटेक्चर को निर्धारित करने के लिए किया है:

ls /media/sda1/*

यदि आप आउटपुट में lib64 देखते हैं, तो यह संभवतः 64 बिट सिस्टम है


लेकिन यह अभी भी
चेरोट

2

आर्महफ आर्क के लिए एक छवि बनाते समय मुझे यही समस्या थी। मुझे स्थापित करना था qemu-user-staticऔर फिर इसे बिन फ़ोल्डर को काट देना चाहिए।

sudo cp /usr/bin/qemu-arm-static /mnt/chroot/usr/bin

1

त्रुटि का मतलब है कि आपके जेल ( /mnt/temp) में बैश शेल नहीं है, या बैश शेल को चलाने के लिए आवश्यक लाइब्रेरी शामिल नहीं है।

यदि आपने कुछ इस तरह से अपना जेल बनाया है:

debootstrap --variant=buildd --arch i386 lucid /mnt/temp \
    http://archive.ubuntu.com/ubuntu/

आप शायद इसके बजाय यह करना चाहते थे:

debootstrap --variant=minbase --arch i386 lucid /mnt/temp \
    http://archive.ubuntu.com/ubuntu/

हालाँकि, आपकी समस्या के तकनीकी उत्तर के रूप में, कोशिश करें:

cp -r /bin /lib /mnt/temp

यह आपको सफलतापूर्वक चेरोट करने की अनुमति देनी चाहिए, जिस बिंदु पर आप अन्य चीजें कर सकते हैं।

हालांकि ऐसा करने में लगभग एक लाख चीजें गलत हैं, और लगभग निश्चित रूप से आप ऐसा नहीं करना चाहते हैं। जब आप अपना जेल बनाते हैं, तो मिनीबेस का उपयोग करें या एक रिक्त लक्ष्य (जैसे एक वर्चुअल मशीन) पर ubuntu स्थापित करें और पूरे सिस्टम का एक टार संग्रह बनाएं, जिसे आप तब डिकम्प्रेस करते हैं /mnt/temp


0

वास्तव में यह 64-बिट 32-बिट असंगति है।

यद्यपि के साथ

cp /bin/bash /mount/temp/tmp

( tmpनिर्देशिका में नई जड़ को 32-बिट निष्पादित करता है

chroot /mount/temp /tmp/bash

chrootठीक है, सभी कमांड अभी भी विफल हैं। आपको उन सभी को कॉपी करना होगा।


-1

मेरे मामले में, मैं लिनक्स के 64-बिट संस्करण में घूमने की कोशिश कर रहा था, लेकिन मेरा वर्तमान लिनक्स 32-बिट था।

मैंने एक डिस्क छवि (मास्टर छवि, कई मशीनों पर प्रतिकृति के लिए) घुड़सवार की थी।


@ GrandOxymore के ऊपर के रूप में एक ही जवाब।
कार्ल रिक्टर

@ कर्लरिचटर समान लेकिन समान नहीं। 64 बिट ओएस में 32 बिट प्रोग्राम चलाना (64 बिट वर्चुअल वातावरण (या ओएस) में 32 बिट प्रोग्राम चलाने के समान नहीं है। मैं एक 32bit अतिथि ओएस चला सकता था और यह ठीक चलता था।
azuer88

-2

मुझे लगता है कि एक BUG है।

`/ Bin / bash '

लेकिन नहीं

'Bin / bash'

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.