बाहरी USB स्टिक / ड्राइव से बूट करें?


44

मुझे पता है कि बाहरी यूएसबी स्टिक / ड्राइव से सीधे बूट करना संभव नहीं है, लेकिन इसके बजाय आपको एसडी कार्ड से बूट करना होगा और फिर बाहरी डिवाइस को संभाल सकते हैं। इसे स्थापित करने का सबसे आसान और पसंदीदा तरीका क्या है, इसलिए SD कार्ड से बूट करें और फिर किसी बाहरी उपकरण को ले जाएं?

जवाबों:


37

यदि आपके पास पाई पर चलने वाला एक मौजूदा ओएस है, तो सबसे पहले यह जानना उपयोगी होगा कि क्या यूएसबी डिवाइस समर्थित है। आप इसे सामान्य की तरह बढ़ते हुए कर सकते हैं:

mount /dev/sda1 /mnt 

यदि वह विफल रहता है तो आप इसके लिए कर्नेल मॉड्यूल को सक्षम किए बिना USB डिवाइस को रूट विभाजन के रूप में उपयोग करने में सक्षम नहीं होंगे। और इसके लिए आपको अपना कर्नेल संकलित करना पड़ सकता है।

यदि यह आगे बढ़ जाता है तो यह बूट पैरामीटर के कुछ ट्विकिंग के साथ ठीक काम करना चाहिए जो कि Pi उपयोग करता है:

मौजूदा छवि पर, खुला cmdline.txt, जो बूट पार्टीशन पर पाया जा सकता है और निम्नलिखित पंक्तियों को दर्ज कर सकता है:

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 
root=/dev/sda1 rootfstype=ext4 rootwait text

आपको बस उस छवि को एसडी कार्ड में फ्लैश करना होगा और पाई को बूट करना होगा। यदि सब ठीक है, /dev/sda1तो पाई बूट होने पर यूएसबी ड्राइव का स्थान होना चाहिए, और इस प्रकार उस स्थान को रूट के रूप में उपयोग करने का प्रयास करना चाहिए। rootwaitपैरामीटर महत्वपूर्ण है क्योंकि यह बूट प्रक्रिया लटका जब तक यूएसबी ड्राइव में मान्यता प्राप्त है कर देगा है। इसके बिना पाई शिकायत कर सकती है कि स्थान मौजूद नहीं है।

मेरा सुझाव है कि आप एक रूट रास्पबेरी पाई छवि से रूट विभाजन को अपने यूएसबी ड्राइव में कॉपी करें और उस बूट से उपयोग करें।

अगर आपको और कोई जानकारी चाहिए तो मुझे बताएं।


+1 महान जवाब। console=...पहले से ही नहीं होना चाहिए ?
एलेक्स चैंबरलेन

2
इसके अलावा, क्या आप कमांड लाइन पर यूयूआईडी का उपयोग कर सकते हैं?
एलेक्स चैंबरलेन

हां मैंने पूरी फाइल प्रदान की है और आप कहां यूयूआईडी का उपयोग करने की बात कर रहे हैं?
Jivings

3
बहुत बहुत धन्यवाद Jivings, मैंने अपने USB स्टिक में आधिकारिक छवि को "फ्लैश" किया, फिर एफएटी पार्टिऑटन से एसडी कार्ड में सामान की प्रतिलिपि बनाई और cmdline.txt को समायोजित किया। मेरे मामले में रूट विभाजन तब / dev / sda2 है, क्योंकि / dev / sda1 USB स्टिक पर (अप्रयुक्त) बूट विभाजन है। मुझे अपने मामले में रूटवाइट की आवश्यकता नहीं थी, लेकिन इस पैरामीटर को जानने के लिए अच्छा है!
stefan.at.wpf

@ stefan.at.wpf (और Jivings) आप इसके बजाय UUIDs का उपयोग कर सकते हैं /dev/sdx- कम से कम /etc/fstab/- तो यह कोई फर्क नहीं पड़ता कि क्या xपरिवर्तन होता है।
एलेक्स चैम्बरलेन

4

इसे स्थापित करने का सबसे आसान तरीका बेरीबूट का उपयोग करना होगा । यह एक अच्छा GUI इंटरफ़ेस के माध्यम से बॉक्स से बाहर यूएसबी स्टिक (या एसडी कार्ड पर) पर एक या एक से अधिक छवियों को, या से, स्थापना का समर्थन करता है।

यह सब स्थापित करने के लिए आपको एक FAT32 स्वरूपित एसडी कार्ड पर फ़ाइलों की ~ 70MB की प्रतिलिपि बनाएँ, इसे अपने डिवाइस में डालें और बूट करें। यहां तक ​​कि इसमें पूर्व-निर्मित छवियों की एक सूची है जिसे यह आपके लिए ईथरनेट या वाई-फाई कनेक्शन पर स्वचालित रूप से डाउनलोड और इंस्टॉल कर सकता है।

फिर आप उस ओएस का चयन करें जिसे आप अपनी उपलब्ध छवियों से डिफ़ॉल्ट रूप से बूट करना चाहते हैं, और यदि आप नई छवियों को जोड़ना चाहते हैं या बाद की तारीख में डिफ़ॉल्ट को बदलना चाहते हैं तो आप बूट प्रक्रिया के दौरान दर्ज करने के लिए बस फिर से कॉन्फ़िगर करें!


छवि को एसडी कार्ड में स्थानांतरित करें? मुझे लगा कि हम इसे यूएसबी स्टिक पर स्थापित करना चाहते हैं?
सुहैब

जैसा कि ओपी ने कहा कि रास्पबेरी पाई पर सीधे यूएसबी स्टिक को बूट करना संभव नहीं है - आपको एक बूटलोडर के साथ एसडी कार्ड की आवश्यकता होती है जो एक बार संचालित होने पर किसी अन्य डिवाइस को प्रक्रिया सौंप सकती है।
नाथन डन

2

ठीक है, स्पष्ट करने के लिए -

@ जवाब के लिए आगे -

कई तरीके हैं जो आप fstab में एक डिस्क को संदर्भित कर सकते हैं। / Dev / sdXX का उपयोग करना हमेशा सुरक्षित नहीं हो सकता है, क्योंकि एससीआई डिस्क दिखाई देने वाले आदेश की गारंटी नहीं दी जा सकती है।

मैं नहीं जानता कि क्या है, अगर बूट विन्यास कुछ भी समझता है लेकिन बुनियादी उपकरण लेबल। "जड़ = / देव / sda1" हालांकि एक अमूर्त है, इसलिए सिद्धांत मूल में = LABEL = परीक्षण काम कर सकता है। मुझे जांच करने की जरूरत है।

मैं माफी मांगता हूं अगर मैं बहुत स्पष्ट नहीं हूं। मुझे स्पष्ट रूप से नए लोगों को लिनक्स समझाने में कुछ कौशल हासिल हुआ है।


1
Jivings: क्या आप अपनी कॉमांड लाइन उदाहरण में कुछ मापदंडों की व्याख्या कर सकते हैं? धन्यवाद।
माइकल मोरियार्टी

उन्होंने कभी भी फैस्टब का उल्लेख नहीं किया। लक्ष्य डिवाइस / विभाजन नाम कर्नेल पैरामीटर है। मेरा मानना ​​है कि UUID जैसे अन्य नामकरण परंपराएं आधुनिक गुठली के साथ संभव हैं, खासकर यदि उनके पास initrd / initrdfs मॉड्यूल हैं।
जिग्गंजेर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.