USB हार्ड डिस्क से बूट?


44

क्या यूएसबी पोर्ट के माध्यम से डिवाइस से जुड़े बाहरी हार्ड ड्राइव से बूट करने का एक तरीका है (एसडी कार्ड से बूटिंग के विपरीत)?


1
यह केवल वास्तविक ट्यूटोरियल की एक कड़ी है, इसलिए मैं इसे एक टिप्पणी के रूप में छोड़ देता हूं: blog.krastanov.org/2014/01/30/booting-pi-reliably-from-usb
Krastanov

जवाबों:


8

अब, लेखक द्वारा मूल रूप से यह प्रश्न पूछे जाने के लगभग पांच साल बाद,
रास्पबेरी पाई आधिकारिक तौर पर USB मास स्टोरेज डिवाइस से बूटिंग का समर्थन करता है

हालाँकि, यह केवल रास्पबेरी पाई 3 के लिए समर्थित है । यहाँ पर क्यों:

क्या MSD का उपयोग करके Pi 1 या Pi 2 को बूट करना संभव होगा?

दुर्भाग्य से नहीं। बूट कोड केवल BCM2837 डिवाइस में संग्रहीत है, इसलिए Pi 1, Pi 2 और Pi Zero सभी को SD कार्ड की आवश्यकता होगी।


28

शब्द के सही अर्थों में सीधे USB से RPi को बूट करना संभव नहीं है। हालांकि किसी को मिनी-डिस्ट्रो बनाने से रोकने के लिए कुछ भी नहीं है जिसमें बूट / बूट और किसी प्रकार का बूट मैनेजर होगा। यह तब USB से बूटिंग या यहां तक ​​कि पीएक्सई शैली के वातावरण को लागू कर सकता है। यह एक छोटे एसडी कार्ड पर फिट हो सकता है - 64 एमबी कार्ड अब पेनीज़ के लिए उपलब्ध हैं। मैं उम्मीद कर रहा हूं कि कोई इसके लिए एक वितरण रोल करेगा - लेकिन आज तक एक नहीं मिला है।

इस बीच आप तेजी से बूट समय प्राप्त करने के लिए हार्ड डिस्क पर अपने स्वयं के रूट विभाजन को स्थानांतरित कर सकते हैं, लेकिन यह कुछ हद तक शामिल है क्योंकि आपको एक कर्नेल प्राप्त करने की आवश्यकता होगी जो यूएसबी स्टोरेज का समर्थन करता है। इसे कैसे किया जा सकता है, इस बारे में अच्छे निर्देश: http://mitchtech.net/raspberry-pi-root-fs-on-usb-drive/


3
यह एक अच्छा विचार है।
जीव

अद्यतन: USB को सीधे बूट करने के लिए अब प्रायोगिक समर्थन है ; प्रारंभिक सेटअप के बाद कोई sdcard आवश्यक नहीं है।
हाइड्रैक्सन

21

से रास्पबेरी पाई पूछे जाने वाले प्रश्न :

आपको SD से बूट करना होगा लेकिन एक USB HD शुरुआती बूट के बाद "टेक ओवर" कर सकता है। आप बिना एसडी कार्ड के बूट नहीं कर सकते।


1
क्या इसका मतलब यह है कि हार्डिस्क के बाद फिर से मेमोरी कार की कोई आवश्यकता नहीं है?
सुहैब

5

वास्तव में, यदि आप सिर्फ SD MS-DOS पार्टीशन (/ बूट) के साथ रह सकते हैं जहाँ कर्नेल रहता है, तो आपके पास बाहरी डिवाइस पर / रूट और बाकी सब कुछ हो सकता है। USB मेमोरी कार्ड या एक भौतिक हार्ड ड्राइव माध्यमिक ड्राइव के रूप में ठीक है। अच्छी बात यह है कि जब तक आप गलत स्थान पर 'dd' नहीं करते हैं, यह एक गैर-विनाशकारी प्रक्रिया है: एक संपादित करता है और आप मूल में वापस जाते हैं,

सेटअप करने के लिए यह विन्यास बहुत आसान है। आप अपनी स्थापना को हमेशा की तरह कॉन्फ़िगर करते हैं और बाहरी ड्राइव पर EXT4 विभाजन को स्थानांतरित / कॉपी करते हैं।

fdiskअपने चयनित माध्यमिक ड्राइव के ' ' विभाजन का उपयोग करते हुए , अपने वर्तमान mmcblk0p2 (या mmcblk0p5) की तुलना में समान या बड़े आकार का एक विभाजन बनाएं। नया कॉन्फ़िगरेशन सहेजें।

विभाजन का नाम ढूंढें, इस नमूने में, '/ dev / sda5' हालांकि, यह विभाजन आपके कॉन्फ़िगरेशन पर निर्भर करेगा।

रनिंग पार्टीशन को कॉपी करें (नोट: रनिंग पार्टीशन को कॉपी करने के लिए अच्छा सलाह नहीं है, कुछ फाइलें 'अस्थिर' या ओपन स्टेट में हैं, हालांकि, वर्क फाइन):

dd if=/dev/mmcblk0p2 of=/dev/sda5 bs=10M

अब, /boot/cmdline.txt फ़ाइल पर निम्न पंक्ति को संपादित करें और 'रूट' स्थान को संशोधित करें:

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

इस नई लाइन के लिए।

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/sda5 rootfstype=ext4 elevator=deadline rootwait

ध्यान दें कि बूट विभाजन MS-DOS है, इसलिए यदि आपको ठीक करना है तो आप SD को कहीं और माउंट कर सकते हैं और संपादित कर सकते हैं। यदि बूट विफल रहता है, लोडर आपके (एचडीएमआई) स्क्रीन पर उपलब्ध बढ़ते बिंदुओं को दिखाएगा।

यह सेटअप माउंट ऑर्डर के लिए आकस्मिक है। यदि डिवाइस किसी अन्य स्लॉट पर माउंट किया गया है तो विभाजन संख्या बदल सकती है; आप निम्नानुसार इस स्थान को स्वतंत्र बना सकते हैं।

डिवाइस 'UUID' खोजें

blkid /dev/sda5
/dev/sda5: UUID="13d368bf-6dbf-4751-8ba1-88bed06bef77" TYPE="ext4"

या एक नया बनाएँ

tune2fs -U random /dev/sda5

और नया असाइन किया गया नाम प्राप्त करें

blkid /dev/sda5
/dev/sda5: UUID="25b6aa72-ddc4-485e-8044-900ac24d662b" TYPE="ext4"

फिर पहले से संशोधित cmdline.txt रूट स्थान को बदलकर इसे संपादित करें:

root=UUID=25b6aa72-ddc4-485e-8044-900ac24d662b

नए कॉन्फ़िगरेशन को बूट करने के बाद, fstab को संपादित करें, पुराने / mmcblk0p2 नोट को हटा दें: यह एक फाइल है जो 'नए' / रूट डिवाइस पर होगी /
बदलें / dev / mmcblk0p% (% लाइनर विभाजन है)

nano /etc/fstab
UUID=25b6aa72-ddc4-485e-8044-900ac24d662b ...

2

रास्पियन में, बस उस rootझंडे को बदल /boot/cmdline.txtदें root=/dev/sdaXजहां Xउपयुक्त विभाजन की संख्या है।

अपने usb इत्यादि पर रास्पियन प्राप्त करने के तरीके के विवरण के लिए, आप यहाँ देख सकते हैं http://blog.krastanov.org/2014/01/30/booting-pi-reliably-from-usb/


1

मैंने इसके बजाय निर्माण के 100% के लिए विंडोज़ का उपयोग किया।

मैंने 'मिनीटेल विभाजन प्रबंधक' का इस्तेमाल किया (मुफ्त) और बस बूट को मेरे सबसे छोटे एसडी कार्ड में स्थानांतरित कर दिया, जिसे स्वचालित रूप से विभाजन प्रबंधक के साथ विस्तारित किया जा सकता है। को खोलें cmdline.txtऔर बदल दें root=/dev/sda5

समान विभाजन प्रबंधक मुझे ext4 को मेरे पोर्टेबल 1TB (FYI को ड्राइव से सभी विभाजनों को हटाने से पहले कॉपी करने देता है ताकि आपके पास स्थानांतरित करने से पहले अप्रकाशित स्थान हो)। वाला - बूट किया हुआ। मैं मानक एचडीडी के साथ देख रहा हूं, एक्सेस समय में थोड़ी कमी है, भले ही उनके पास अधिकांश एसडी कार्ड की तुलना में बहुत तेज आर / डब्ल्यू गति हो।

केवल एक समस्या जो मैं अब कर रहा हूं वह मूल 32GB (मेरे मूल एसडी कार्ड) से ext4 (रूट) विभाजन का विस्तार कर रही है। इसलिए मेरे पास वर्तमान में केवल 1 टीबी का 32 जीबी है। हम्म। मैं केवल टर्मिनल के साथ एक नौसिखिया हूँ और इसके कमांड ताकि लिनक्स में विभाजन थोड़ा चकराता है, लेकिन इस गाइड ने बहुत अच्छी तरह से मदद की।


क्षमा करें, क्या मार्गदर्शक?
बेक्स

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