आप आमतौर पर एक (माइक्रो) एसडी कार्ड से रास्पबेरी पाई शुरू करते हैं। लेकिन कभी-कभी यह इतना सुविधाजनक नहीं होता है। हाल ही में, मिनीकंप्यूटर परिवार के डेवलपर्स ने दो नए बूट मोड जोड़े हैं: यूएसबी और नेटवर्क। यूएसबी मोड के साथ, आप यूएसबी स्टिक या हार्ड ड्राइव पर एक ऑपरेटिंग सिस्टम से रास्पबेरी पाई शुरू करते हैं जिसे आप यूएसबी के माध्यम से कनेक्ट करते हैं।
नेटवर्क मोड के साथ, आपको स्थानीय स्टोरेज डिवाइस की भी आवश्यकता नहीं है: रास्पबेरी पाई दूसरे कंप्यूटर से नेटवर्क पर अपने ऑपरेटिंग सिस्टम को डाउनलोड करती है। इस तरह आप आसानी से एक केंद्रीय कंप्यूटर पर एक ऑपरेटिंग सिस्टम के माध्यम से कई रास्पबेरी पाई को बूट कर सकते हैं। यदि आप उस केंद्रीय ऑपरेटिंग सिस्टम को अपडेट करते हैं, तो आपके सभी रास्पबेरी पाई स्वचालित रूप से नवीनतम संस्करण चलाएंगे।
01 प्रायोगिक बूट मोड
रास्पबेरी पाई 3 के लिए नए बूट मोड प्रयोगात्मक और विकसित किए गए हैं। इसके लिए आवश्यक बूट कोड BCM2837 में है: रास्पबेरी पाई 3 का प्रोसेसर। यदि आपके पास रास्पबेरी पाई 1, 2 या ज़ीरो है, तो आप यह भी कर सकते हैं नए बूट मोड का उपयोग करें, लेकिन एक गोल चक्कर में: fat32 के साथ एक एसडी कार्ड प्रारूपित करें, फ़ाइल bootcode.bin को कार्ड में कॉपी करें और इस कार्ड से अपना पीआई बूट करें। वह एसडी कार्ड के बिना पूरा नहीं हो सकता है, लेकिन आप अपने पीआई को यूएसबी या नेटवर्क से बूट कर सकते हैं।
02 यूएसबी के साथ संभावित समस्याएं
USB से बूट करना हमेशा काम नहीं करता है। उदाहरण के लिए, कुछ USB स्टिक बहुत धीरे-धीरे चालू होते हैं। बाहरी हार्ड ड्राइव भी हमेशा दो सेकंड के भीतर प्रतिक्रिया नहीं देते हैं, वह समय जब बूट कोड डिफ़ॉल्ट रूप से प्रतीक्षा करता है। आप उस टाइमआउट को पांच सेकंड तक बढ़ा सकते हैं, लेकिन कुछ ड्राइव अभी तक तैयार भी नहीं हैं। अन्य USB स्टिक्स में संचार प्रोटोकॉल के लिए बहुत विशिष्ट आवश्यकताएं होती हैं, जो कि Raspberry Pi 3 बूट कोड (32 kB ROM तक सीमित) को पूरा नहीं करता है। तो आपको कुछ डिस्क को आज़माना पड़ सकता है।
03 फर्मवेयर अपग्रेड
हम मानते हैं कि आप अपने रास्पबेरी पाई पर रास्पियन चला रहे हैं। यदि नहीं, तो एक छवि डाउनलोड करें और इसे Win32DiskImager प्रोग्राम के साथ एक एसडी कार्ड पर रखें और इससे पाई को बूट करें। सबसे पहले, सभी रिपॉजिटरी को रिफ्रेश करें सुडो एपीटी-अपडेट प्राप्त करें. यदि आप रास्पियन लाइट (एक ग्राफिकल इंटरफ़ेस के बिना संस्करण) चला रहे हैं, तो पहले रन करें sudo apt-rpi अद्यतन स्थापित करें क्योंकि रास्पियन के उस न्यूनतम संस्करण में आरपीआई-अपडेट पैकेज नहीं है। फिर फर्मवेयर को ' से अपडेट करें।अगली' शाखा सुडो शाखा के साथ = अगला आरपीआई-अपडेट.
04 यूएसबी मोड सक्षम करें
इसके साथ बूट कॉन्फ़िगरेशन फ़ाइल खोलें सुडो नैनो /boot/config.txt और कमांड जोड़ें program_usb_boot_mode=1 अंत की ओर। फ़ाइल को Ctrl+O से सहेजें और नैनो से Ctrl+X से बाहर निकलें। अपने पाई को पुनः आरंभ करें सुडो रिबूट, और रीबूट के बाद, सुनिश्चित करें कि यूएसबी मोड सक्षम है। आप इसे कमांड के साथ करते हैं vcgencmd otp_dump | ग्रेप 17:, जो समाप्त होने वाली संख्या को वापस करना चाहिए 0x3020000a. फिर बूट कॉन्फ़िगरेशन फ़ाइल को फिर से खोलें और कमांड को हटा दें program_usb_boot_mode=1, इसलिए आप गलती से किसी अन्य पाई पर यूएसबी बूट मोड को सक्षम नहीं करते हैं जिसमें आप इस एसडी कार्ड को डालते हैं।
05 USB संग्रहण का विभाजन
अब अपने USB स्टोरेज डिवाइस को अपने Pi से कनेक्ट करें। इस डिवाइस को इसके साथ विभाजित करें सुडो जुदा / देव / sda. के साथ एक नया विभाजन तालिका बनाएँ एमकेटेबल msdos और पुष्टि करें हां कि आप डिस्क के सभी डेटा को नष्ट करना चाहते हैं। फिर इसके साथ 100 मेगाबाइट fat32 विभाजन बनाएं एमकेपार्ट प्राथमिक वसा32 0% 100M और एक ext4 विभाजन जो शेष डिस्क पर कब्जा करता है एमकेपार्ट प्राथमिक ext4 100M 100%. प्रिंट के साथ परिवर्तन देखें और इसके साथ बंद करें छोड़ना. फिर बूट फाइल सिस्टम बनाएं sudo mkfs.vfat -n बूट -F 32 /dev/sda1 और रूट फाइल सिस्टम के साथ sudo mkfs.ext4 /dev/sda2.
06 रास्पियन कॉपी
प्रोग्राम को rsync के साथ स्थापित करें sudo apt-rsync स्थापित करें. फिर के साथ एक नई निर्देशिका बनाएं सुडो एमकेडीआईआर / एमएनटी / यूएसबी और उस पर यूएसबी स्टोरेज के ext4 फाइल सिस्टम को माउंट करें सुडो माउंट / देव / एसडीए 2 / एमएनटी / यूएसबी /. फिर इसके साथ एक बूट डायरेक्टरी बनाएं सुडो एमकेडीआईआर / एमएनटी / यूएसबी / बूट और इसके साथ बूट फाइल सिस्टम को माउंट करें सुडो माउंट / देव / एसडीए 1 / एमएनटी / यूएसबी / बूट /. अब रास्पियन सिस्टम को कॉपी करें जिसे आप एसडी कार्ड से अपने यूएसबी स्टोरेज पर फाइल सिस्टम में चला रहे हैं। आप इसे कमांड के साथ करते हैं sudo rsync -ax --progress / /boot /mnt/usb. कृपया धैर्य रखें क्योंकि इसमें कुछ समय लग सकता है।
07 चुरोट
USB संग्रहण में अब आपके चल रहे रास्पियन की एक प्रति है, लेकिन सब कुछ समान नहीं होना चाहिए। उदाहरण के लिए, नई प्रणाली को विभिन्न ssh कुंजियों की आवश्यकता होती है। इसलिए, यूएसबी स्टोरेज के साथ जाएं सीडी / एमएनटी / यूएसबी और कुछ विशेष फाइल सिस्टम को माउंट करें सुडो माउंट - बाइंड / देव देव, सुडो माउंट - बाइंड / एसआईएस एसआईएस और सुडो माउंट - बाइंड / प्रोक. फिर एक दर्ज करें क्रोम (रूट बदलें) के साथ बाहर सुडो चुरोट .. अब आपके द्वारा निष्पादित सभी कमांड यूएसबी स्टोरेज पर सिस्टम में निष्पादित होंगे, एसडी कार्ड पर सिस्टम में नहीं।
08 नई ssh कुंजियाँ
अब आप क्रोट में रूट यूजर हैं। सबसे पहले, मौजूदा ssh कुंजियों को हटा दें क्योंकि वे वही हैं जिन्हें हमने sd कार्ड के सिस्टम से कॉपी किया था। आप इसके साथ करते हैं आरएम / आदि / एसएसएच / एसएसएच_होस्ट *. फिर ओपनएसएसएच सर्वर को फिर से कॉन्फ़िगर करके नई एसएसएच कुंजी उत्पन्न करें डीपीकेजी-पुन: कॉन्फ़िगर करें ओपनश-सर्वर. फिर क्रोट से बाहर निकलें बाहर जाएं. अब आपके द्वारा निष्पादित सभी आदेश एसडी कार्ड पर सिस्टम में फिर से निष्पादित किए जाएंगे। फिर विशेष फाइल सिस्टम को अनमाउंट करें सुडो उमाउंट देव, सुडो उमाउंट सिस तथा sudo umount proc.
09 रूट फाइल सिस्टम को अनुकूलित करें
अब सुनिश्चित करें कि पीआई एसडी कार्ड के बजाय यूएसबी स्टोरेज पर रूट फाइल सिस्टम का उपयोग कर रहा है। उसके लिए आप फ़ाइल को संशोधित करें /बूट/cmdline.txt साथ पर sudo sed -i "s,root=/dev/mmcblk0p2,root=/dev/sda2," /mnt/usb/boot/cmdline.txटी। फ़ाइल में भी ऐसा ही करें /etc/fstab: sudo sed -i "s,/dev/mmcblk0p,/dev/sda," /mnt/usb/etc/fstab. फिर सीडी के साथ अपने होम डायरेक्टरी में जाएं, यूएसबी स्टोरेज से फाइल सिस्टम को अनमाउंट करें सुडो उमाउंट / एमएनटी / यूएसबी / बूट तथा सुडो उमाउंट / एमएनटी / यूएसबी और पाई को बंद कर दें सुडो पावरऑफ. पावर केबल को अनप्लग करें, एसडी कार्ड निकालें और पावर केबल को वापस प्लग इन करें। अगर सब कुछ ठीक रहा, तो आपका पाई अब आपके यूएसबी स्टोरेज से बूट हो जाएगा।