जैसा कि पहले ही बताया जा चुका है, आपको अपने डिवाइस पर एआरएम-सक्षम चिरोट को स्थापित करना होगा और उस चुरोट में सभी आवश्यक पैकेजों को स्थापित करना होगा। हालांकि, अपने घर निर्देशिका में ऐसा करने से बहुत सारे मूल्यवान स्थान बर्बाद हो जाते हैं। इसके बजाय, यह एक उपयुक्त लिनक्स ओएस (लिनक्स मिंट 17 और उबंटू ट्रस्टी पर परीक्षण) पर चलने वाले कंप्यूटर का उपयोग करके आपके एसडी-कार्ड पर किया जा सकता है। जैसा कि मुझे इस बारे में कहीं और कोई जानकारी नहीं मिली, मैंने इसे एक पुराने प्रश्न के उत्तर के रूप में यहां रखा।
निम्नलिखित निर्देश मान लेते हैं कि आप निर्देशिका jessie में डेबियन जेसी चेरोट स्थापित करना चाहते हैं।
एक डेस्कटॉप कंप्यूटर पर छवि फ़ाइल बनाना और आबाद करना
एक खाली छवि फ़ाइल बनाना
वर्तमान कार्य निर्देशिका में IMAGE.img नामक 1GB की छवि बनाने के लिए, यह करें:
dd if=/dev/zero of=IMAGE.img bs=1G count=1
ध्यान दें कि GB में B को छोड़ दिया गया है। "अगर" "आउटपुट फाइल" के लिए "इनपुट फाइल", "आउटपुट फाइल" और "बी एस" के लिए "ब्लॉक साइज" है।
वहाँ अधिक कुशल कमांड हैं, लेकिन वे केवल कुछ प्रकार की फ़ाइल सिस्टम पर काम करते हैं, जहाँ तक मुझे पता है। यह भी एक एसडी-कार्ड या एक अस्थायी पर काम करता है। कृपया ध्यान दें कि / dev / शून्य के उपयोग और नहीं / dev / random या / dev / urandom के रूप में है कि बहुत अधिक समय लगेगा और बाद में डिवाइसों के बीच छवि को स्थानांतरित करने में बहुत अधिक समय लगेगा।
छवि पर एक फ़ाइल सिस्टम बनाना
फाइल सिस्टम के बिना, फोन छवि पर किसी भी डेटा को स्टोर करने में सक्षम नहीं होगा। एक फ़ाइल सिस्टम के बिना, आप अभी तक एक निर्देशिका को छवि को केवल एक ब्लॉक-डिवाइस पर माउंट नहीं कर सकते।
यह बैश-कमांड अगले खाली लूप डिवाइस को वेरिएबल में आउटपुट करेगा LOOP
:
$LOOP=$(sudo losetup -f)
अगला, छवि को एक ब्लॉक डिवाइस पर असाइन करें:
sudo losetup $LOOP IMAGE.img
इसके बाद, इस पर ext4 फाइल सिस्टम बनाएं:
sudo mkfs -t ext4 $LOOP
अगला, लूप डिवाइस से छवि को अलग करें:
sudo losetup -d $LOOP
यदि आपको कमांड नहीं मिली हैं तो त्रुटियां हैं, बस लापता प्रोग्राम इंस्टॉल करें।
इसे एक्सेस करने के लिए कंप्यूटर पर इमेज फाइल को माउंट करें
अब, कार्यशील निर्देशिका में एक अस्थायी निर्देशिका बनाएँ:
mkdir jessie
और छवि फ़ाइल IMAGE.img को इसमें माउंट करें:
sudo mount -o loop IMAGE.img $(pwd)/jessie
कमांड pwd
यह सुनिश्चित करेगी कि आप अपने वर्तमान वर्किंग डाइरेक्टरी को एक निरपेक्ष पथ प्रदान करें।
Qemu-debootstrap के साथ नए ऑपरेटिंग सिस्टम के साथ छवि को पॉप्युलेट करना
अगला कदम आवश्यक फ़ाइलों को डाउनलोड करने के लिए qemu-debootstrap का उपयोग करना होगा। यह आसान है अगर qemu-debootstrap उपलब्ध है जैसा कि उबंटू और व्युत्पन्न OSes पर है। यदि आपको कमांड निष्पादित करते समय त्रुटि नहीं मिली है
qemu-debootstrap --help
, तो उचित पैकेज को स्थापित करने का प्रयास करें, जिसे उबंटू में किया जा सकता है:
sudo apt-get install qemu-user-static
सभी आवश्यक फ़ाइलों को डाउनलोड करने और नया OS तैयार करने के लिए, निम्न कमांड चलाएँ:
sudo qemu-debootstrap --arch=armhf jessie ./jessie http://http.debian.net/debian
कृपया ध्यान दें कि पहला jessie
ओएस संस्करण jessie
के लिए खड़ा है जबकि दूसरा उस निर्देशिका के लिए है जहां फाइलें स्थापित की जाती हैं। अब आप छवि को अनमाउंट कर सकते हैं क्योंकि बाकी का काम फोन पर करना होगा। इसके माध्यम से ऐसा करें:
sudo umount $(pwd)/jessie
यदि आप qemu-debootstrap स्थापित नहीं कर सकते हैं, तो अगला भाग देखें।
Qemu-debootstrap के बिना नए ऑपरेटिंग सिस्टम के साथ छवि को पॉप्युलेट करना
यदि आपके पास qemu-debootstrap उपलब्ध है तो कृपया इस अनुभाग को छोड़ दें। हालांकि आपको वास्तुकला के लिए अभी भी एक देशी डेबस्ट्रैप की आवश्यकता होगी। यदि यह आर्महफ होता है, तो उपरोक्त कमांड लाइन का उपयोग करें लेकिन इसके qemu-debootstrap
द्वारा
प्रतिस्थापित करें debootstrap
। यदि नहीं, तो इस अनुभाग का पालन करें।
नए OS के लिए सभी आवश्यक फ़ाइलों को डाउनलोड करने के लिए, निम्नलिखित कमांड चलाएँ:
sudo debootstrap --arch=armhf --foreign jessie ./jessie \
http://http.debian.net/debian
अब आप इमेज को अनमाउंट कर सकते हैं क्योंकि बाकी का काम फोन पर करना होगा। इसके माध्यम से ऐसा करें:
sudo umount $(pwd)/jessie
छवि को फोन पर स्थानांतरित करें
अब इसमें से एक टार आर्काइव बनाएं जिसे आप अपने फोन में कॉपी करते हैं। इससे कोई फर्क नहीं पड़ता कि संग्रह एसडी-कार्ड या आंतरिक भंडारण पर रखा गया है। उपयोग करके डेस्कटॉप पर संग्रह बनाएं:
tar -cvzf jessie.tar.gz IMAGE.img
अब, अपने फोन पर, इमेज को कॉपी करने के लिए ssh सपोर्ट को ऑन करें। आप इसके बजाय USB- केबल का उपयोग भी कर सकते हैं। चूँकि ssh सर्वर हर रिबूट पर रीसेट है, इसलिए ssh सेवा को फोन पर शुरू करें:
sudo service ssh start
इसके बाद, इमेज को कॉपी करें:
scp jessie.tar.gz phablet@ubuntu-phablet:$COPYDIR
जहां चर COPYDIR
में वह निर्देशिका है जहां छवि संग्रहीत की जाएगी। यह आदेश मानता है कि फ़ोन पर आपका उपयोगकर्ता नाम phablet है और फ़ोन का होस्टनाम ubuntu-phablet है। आप जारी करके echo $USER
और echo $HOSTNAME
फोन पर, क्रमशः दोनों का पता लगा सकते हैं ।
अब आपको केवल संग्रह को निकालना होगा जहाँ आप चाहते हैं कि छवि निवास करे। उस निर्देशिका को मान लें जहां आप चाहते हैं कि छवि स्थित है, चर में संग्रहीत है IMAGEDIR
। बैश कमांड के माध्यम से वहां की छवि निकालें:
( cd $IMAGEDIR; tar -xvzf $COPYDIR/jessie.tar.gz; )
अब आप संग्रह को हटा सकते हैं:
rm $COPYDIR/jessie.tar.gz
फोन पर छवि को अंतिम रूप देना और उसका उपयोग करना
यदि आपने ssh सर्वर को फोन पर चालू नहीं किया है, तो अब इसके माध्यम से करें:
sudo service ssh start
इसके बाद, अपनी छवि को अपनी पसंद की निर्देशिका में माउंट करें (इस मामले में "जेसी"):
sudo mount -o loop $IMAGEDIR/IMAGE.img $(pwd)/jessie
अब, पहली बार के माध्यम से अपने chroot दर्ज करें:
ssh localhost "sudo chroot $(pwd)/jessie /bin/bash"
यदि आपके कंप्यूटर पर qemu-debootstrap उपलब्ध है, तो आप सभी काम कर सकते हैं। ऊपर के 2 कमांड्स का उपयोग अपने चिरोट से कनेक्ट करने के लिए करें। यदि नहीं, तो ओएस को ठीक से सेट करने के लिए, आपको अपने कमांड के अंदर एक बार निम्नलिखित कमांड को निष्पादित करना होगा:
/debootstrap/debootstrap --second-stage
चेरोट का उपयोग कैसे करें का सारांश
यदि आपने उपरोक्त चरणों का पालन किया है, तो आपको फोन पर इस सरल स्क्रिप्ट का उपयोग करके अपने चेरोट तक पहुंचने में सक्षम होना चाहिए:
#!/bin/bash
sudo service ssh start
ssh localhost "sudo chroot jessie /bin/bash"
आपको टर्मिनल ऐप के एपरमॉर प्रतिबंधों के कारण फोन से पहले अपने स्वयं के फोन में ssh करना होगा। टर्मिनल ऐप को केवल कुछ स्थानों पर बायनेरिज़ को निष्पादित करने की अनुमति है और न ही आपके घर की निर्देशिका और न ही एसडी कार्ड उन में से हैं। हालांकि, ssh सेवा में इस तरह के प्रतिबंध नहीं हैं।