केवल पढ़ने के लिए एसडी कार्ड पर चल रहा है


20

मेरे पास XBMC को चलाने के लिए रास्पबेरी पाई सेटअप है, और मैं चाहता हूं कि यह हमेशा एसडी कार्ड पर एक प्लेलिस्ट और फ़ाइलों को चलाने के लिए बूट हो। मैंने Raspbmc स्वचालित अद्यतन बंद कर दिया है। यह तब भी ठीक होता है जब मैं एसडी कार्ड को "लॉक" स्थिति में स्विच करता हूं। अब मेरे प्रश्न हैं:

  1. क्या "रीड-ओनली" एसडी कार्ड सिस्टम मेरे आवेदन में हर समय काम करेगा?

  2. चूंकि एसडी कार्ड हमेशा रीड-ओनली मोड में होता है, अगर मैं शटडाउन कमांड का उपयोग नहीं करता हूं, और पावर स्विच को बंद कर देता हूं, तो क्या यह मेरे सिस्टम को नुकसान पहुंचाएगा?

  3. यहां तक ​​कि अगर यह विश्वसनीय रूप से काम करता है, तो यह हमेशा "रास्पबामक ठीक से बंद नहीं हुआ" संदेश को पॉप-अप करेगा। क्या इस संदेश को अक्षम करने का कोई तरीका है जब पाई शक्तियां ऊपर हैं?


1
यदि आप चाहते हैं कि यह मज़बूती से काम करे तो आपको यह सुनिश्चित करना होगा कि उपयुक्त फाइल सिस्टम भी केवल पढ़ने के लिए मुहिम शुरू की जाए।
जीविका

जवाबों:


14

मेरा एक समान उपयोग था। मैं एक भवन प्रवेश द्वार में वेब-पृष्ठों को संकीर्ण करने के लिए पाई का उपयोग कर रहा हूं। टीवी पर यूएसबी-पोर्ट के माध्यम से पाई को पावर करना।

माउंट / केवल पढ़ने के लिए।

इसे पॉवरलॉस प्रूफ बनाने के लिए मैंने एक लाइन को बदलकर माउंट / रीड-ओनली किया /etc/fstab

/dev/mmcblk0p2  /               ext4    defaults,noatime,ro  0       1

बहुत साधारण। लेकिन एक कार्यात्मक मशीन पर कुछ प्रक्रियाओं को लिखने की आवश्यकता है।

स्मृति में माउंट / tmp।

बहुत सी चीजें लिखता /tmpहूं इसलिए मैंने एक पंक्ति में जोड़कर स्मृति में रखा है/etc/fstab

tmpfs           /tmp            tmpfs   defaults,size=30M    0       0

मेरे पास एक 512MB पाई उपलब्ध थी इसलिए मैंने 30M बड़ा / tmp बनाया।

उन सेवाओं को अक्षम करें जिनकी मुझे लिखने की आवश्यकता नहीं है।

मैं rsyslogइसे लॉगिंग से रोकने के लिए अक्षम हो गया और dphys-swapfileक्योंकि इसमें लिखने के लिए कोई वास्तविक जगह नहीं है। बिना स्वैप के दौड़ने से समस्याएँ आएंगी यदि आप हैवी लिफ्टिंग करते हैं जो कि मेमोरी सघन है। मेरे मामले में एक दिन के लिए एक ही midori प्रक्रिया चल रही है, नहीं है। cat /etc/rc2.d/READMEकैसे करना है पर अपने पाई पर। (रास्पेलियन रनवेल 2 में डिफ़ॉल्ट रूप से शुरू होता है, रास्पबेक भिन्न हो सकता है)

सेवाओं मैं चलो करते जरूरत छद्म-लिखने।

आप जिस तरह से एक लाइव-सीडी इसे करते हैं, वह मेमोरी में एक फाइल सिस्टम तक पहुंच प्रदान कर सकता है; एक संघ माउंट के साथ । लेकिन मुझे यूनियनफस या बाद के औफ्स के लिए अपने स्वयं के कर्नेल को पार करने की संभावना पसंद नहीं थी । सौभाग्य unionfs-fuseसे प्रीबिल्ट उपलब्ध है। यह माउंट नहीं कर सकता /, लेकिन क्या मुझे वास्तव में इसकी आवश्यकता है?

रनिंग मिडोरी मुझे काम करने के लिए एक्स की जरूरत है। X /home/piको मैं ऑटोलॉगिन के रूप में पी के रूप में लिखना चाहता हूं और /varमैंने उन स्थानों में से एक में संघों का उपयोग करके उन स्थानों को माउंट करने का फैसला किया है।

# move original /var and /home aside
mkdir /ro
mv /var /ro
mv /home /ro
# create mount points
mkdir /var /home

और 2 लाइनों को जोड़ा /etc/fstab

unionfs-fuse#/tmp=rw:/ro/var=ro  /var  fuse   cow,allow_other,nonempty
unionfs-fuse#/tmp=rw:/ro/home=ro  /home  fuse   cow,allow_other

यह बहुत बुरा है, जैसा कि / var, / home और / tmp सभी एंडअप / tmp में लिखते हैं। लेकिन मुझे केवल 8 से 10 घंटे तक चलने के लिए अपनी मशीन की आवश्यकता है, और फिर बिजली कटऑफ हो जाती है। तो यह करेंगे।

सामान लिखते समय पढ़ने-लिखने की सुध

जब मैंने नेटवर्क बदले, तो /etc/resolv.confउस घिसा-पिटा ने काम नहीं किया।

$ sudo mount / -o remount,rw
$ ifdown eth0; ifup eth0
$ sudo reboot

सफाई से बंद करने के लिए मत भूलना, या आरडब्ल्यू रिमाउंटिंग के बाद रीमाउंटिंग आरओ।

पुनश्च

यदि आप जर्मन पढ़ सकते हैं, तो एक साफ-सुथरा तरीका है (आर्काइव.ऑर्ग से)। ड्यूश ग्रुन्डलिचकेट ...


4

एसडी कार्ड लॉक पोजिशन पिन पीसीबी पर बिल्कुल भी जुड़ा नहीं है, इसलिए जब तक कार्ड में आंतरिक लॉकिंग मैकेनिज्म न हो, तब तक आपकी लॉकिंग वर्चुअल होती है। लॉक करने के दौरान एसडी कार्ड पर कुछ भी लिखने का प्रयास करें और इसे स्वयं जांचें।


4

SD का रीड-ओनली स्विच, सबसे अच्छा, एक सॉफ्टवेयर विकल्प है। मेरे पास लगभग हर उपकरण इसे अनदेखा करेगा, और अगर एव्रा की टिप्पणी सही है, तो रास्पबेरी पाई को यह बताने का कोई तरीका नहीं हो सकता है कि यह चालू या बंद है। तो, अपने सवालों के लिए:

  1. हां, यह काम करेगा, क्योंकि यह केवल पढ़ने के लिए नहीं है।
  2. हां, यह आपके सिस्टम को नुकसान पहुंचाएगा। आपको केवल पढ़ने के लिए आवश्यक रूट को देखना होगा और उन चीजों के लिए एक छोटा RAM / tempfs फ़ाइल सिस्टम रखना होगा, जिनके लिए Linux को ट्रैक करने की आवश्यकता होती है।
  3. नहीं, क्योंकि एक अच्छा मौका है कि आपने फाइल सिस्टम को नुकसान पहुंचाया है।

@avra का उत्तर सही है कि भौतिक स्विच जिसने लिखा-प्रोटेक्टेड स्लाइडर की स्थिति का पता मानक आकार के एसडी कार्ड्स पर लगा था, जो पहले आरपीआई में उपयोग किया गया था (मुझे माइक्रो साइज कार्ड्स का यकीन नहीं है, मेरा नहीं लगता है) ऐसा कुछ भी नहीं है) किसी भी चीज़ के लिए वायर्ड नहीं किया जाता है (कार्ड धारक की तरफ से संपर्क) अन्य स्विच (कार्ड धारक के नीचे) "कार्ड-डालने" स्विच है और जिसे आईएस द्वारा मॉनिटर किया गया है आरपीआई।
स्लीवन

2
  1. मैंने XBMC का उपयोग नहीं किया है, लेकिन यह सामान्य ऑपरेटिंग सिस्टम के लिए एक अच्छा विचार WRT नहीं है जब तक कि आप उस उद्देश्य के लिए इसे स्थापित करने के लिए कुछ लंबाई पर न जाएं। निहितार्थ से, यदि XBMC स्पष्ट रूप से सेट नहीं किया गया है, तो यह इसके लिए एक अच्छा विचार नहीं है।

  2. यदि कार्ड वास्तव में केवल पढ़ा जाता है , तो वास्तव में यह आपके सिस्टम को नुकसान नहीं पहुंचाएगा, हालांकि, अगर यह वास्तव में केवल पढ़ा गया था, तो आपको उस बिंदु पर पहुंचने की संभावना नहीं है जहां आप 'शटडाउन' चला सकते हैं। यदि आपने किया (फिर से मतलब है, तो आप निश्चित हैं कि पूरा कार्ड वास्तव में केवल पढ़ा जाता है!), शटडाउन चलाने से परेशान न हों। बस प्लग खींचो। चूंकि कार्ड पर कुछ भी नहीं बदल सकता है, इससे कोई फर्क नहीं पड़ता कि आप क्या करते हैं।

  3. यकीन है, आप इनिट फ़ाइलों को जिम्मेदार पा सकते हैं और उन्हें संपादित कर सकते हैं (जाहिर है, फाइलसिस्टम को ऐसा करने के लिए योग्य होना होगा)।

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


2

अगर तुम बस करो

1।

/ dev / mmcblk0p2 / ext4 चूक, noatime, ro 0 1
/ dev / mmcblk0p1 / vfat चूक, noatime, ro 0 1
आपके पास एक पूर्ण रीड ओनली सिस्टम है।

2।

आप Xorg को इसके साथ शुरू कर सकते हैं: -logfile /tmp/Xorg.log, और अन्य सेवा खोजें जिन्हें लिखने की आवश्यकता है, उन्हें / tmp पर पुनर्निर्देशित करें

3।

जैसा कि पहले ही उल्लेख किया गया है, अक्षम सेवा जिसकी आपको आवश्यकता नहीं है

insserv -r dphys-swapfile
insserv -r rsyslog
insserv -r samba (यदि स्थापित हो) आदि

तब कोई समस्या नहीं होनी चाहिए। अच्छा सवाल यह है कि अगर वास्तव में एसडी कार्ड पर कोई नुकसान नहीं होगा अगर आरओ केवल और प्लग / आउट पावर हर समय ...

अंत में, एक सुंदर छप स्क्रीन और वहाँ तुम जाओ, तुम एक कस्टम सस्ते स्वसंपूर्ण उपकरण है। :) और मुझे आइडिया से प्यार है कि टीवी से यूएसबी पोर्ट पर पीआई को पावर दें। लेकिन क्या यह 500mA तक सीमित नहीं है? निश्चित नहीं है, लेकिन पीआई को लगभग 1 ए की आवश्यकता है या नहीं?


dhcpclient को /etc/resolv.conf और शायद / var में अन्य स्थानों को लिखना होगा। अच्छा लगा कि आपने इनसर्वर कमांड्स का उल्लेख किया, मुझे उनकी आवश्यकता थी; मैं नए सीए-प्रमाणपत्र प्राप्त करने के लिए अपने उपकरणों का पुनर्निर्माण कर रहा हूं।
क्रिस वेसलिंग

1

इस पर एक त्वरित नज़र डालने से पता चलता है कि XBMC के नवीनतम संस्करण के लिए किसी ने भी इसका कोई समाधान नहीं पोस्ट किया है।

गोल्डीलॉक्स के रूप में मुख्य मुद्दा बताया गया है कि XBMC केवल पढ़ने के उद्देश्य से नहीं बनाया गया था। इस बिंदु को आगे बढ़ाया जाता है, यदि आप ओपनेलेक मीडिया सेंटर फोरम पर इस धागे पर एक नज़र डालें । आम सहमति है कि केवल कोडी को पढ़ना संभव नहीं है।

उपयोगकर्ता klojum के अनुसार कारण था:

OpenELEC काम करने के लिए एक रीडायनली डिवाइस पर काम नहीं होगा। कोडी को वीडियो जानकारी के साथ अपने डेटाबेस को स्टोर / अपडेट करने की आवश्यकता है। सिस्टम विभाजन को एक कारण के लिए आसानी से सेट किया गया है। सभी सेटिंग्स 2 के माध्यम से जाती हैं, / भंडारण विभाजन। तो इसे हटाने, cmdline के माध्यम से या अन्यथा, एक विकल्प नहीं है। प्रत्येक रिबूट के बाद सिस्टम को बहाल करना पागल है। OE स्थापित करें, इसे अपनी इच्छाओं के अनुसार चलाएं और पूर्ण बैकअप / छवि बनाएं। परेशानी की स्थिति में उसे पुनर्स्थापित करें

इसका एक तरीका यह भी हो सकता है क्योंकि लोगों को पुराने संस्करणों के लिए वर्कअराउंड मिल गया है, लेकिन सामान्य तौर पर मुझे नहीं लगता कि इसकी कोई आवश्यकता है।

मैं किसी ऐसे व्यक्ति के रूप में समझ सकता हूं जिसने कोडी का उपयोग कुछ वर्षों के लिए किया है, जो एसडी कार्ड के भ्रष्ट होने की नाराज़गी है। लेकिन समस्या को कम करने के अन्य सरल तरीके हैं जिनमें निम्न स्तर के कोड टिंकरिंग शामिल नहीं हैं।

एसडी कार्ड का नंबर एक कारण भ्रष्ट हो जाएगा अगर अचानक बिजली आउटेज हो। ऐसा होने के दो कारण हैं। या तो कोई व्यक्ति SD कार्ड को लिखने के माध्यम से Pi मध्य-मार्ग की शक्ति को डिस्कनेक्ट करता है। या सिस्टम फ्रीज हो जाता है और आपको पावर को डिस्कनेक्ट करना पड़ता है। हालांकि, मुझे लगता है कि दूसरा कारण भ्रष्टाचार की संभावना कम है। या यह पता चलता है कि खेलने में एक और दोष है।

पाई के शुरुआती दिनों में बोर्ड पर बिजली वितरण सर्किट निश्चित रूप से वांछित होने के लिए कुछ छोड़ दिया। मैं एक USB डोंगल को Pi में प्लग करते हुए सिस्टम के क्रैश होने के दिनों को याद कर सकता हूं, जबकि यह चालू था। अगर आपको विश्वास नहीं है कि मुझे 2011 की रास्पबेरी पाई पर एक्सबीएमसी चलाने में समस्याएँ दिखती हैं । अन्य मुद्दा यह है कि शुरुआती दिनों में सॉफ्टवेयर पूरी तरह परिपक्व नहीं था। एक डेस्कटॉप कंप्यूटर क्या हो सकता है और सॉफ्टवेयर के मुद्दों से बाहर निकलने में समय लगता है, इस पर पाई एक अलग रूप ले रहा था। इसलिए, कोडी के बहुत नए संस्करणों को यादृच्छिक सिस्टम फ्रीज़ से पीड़ित होने की संभावना कम है।

कुछ प्रकार की निर्बाध बिजली आपूर्ति (यूपीएस) के माध्यम से अचानक बिजली हानि की समस्या को हल करने के लिए अपने पाई को हल करें। एक नियमित यूपीएस काम करेगा लेकिन वास्तव में विशेष रूप से डिजाइन किए गए पीआई हैं। रास्पबेरी पाई के लिए यह निर्बाध विद्युत आपूर्ति की तरह । यदि सिस्टम फ्रीज होता है तो यह कुछ ऐसा होना चाहिए जिसके लिए आप तैयार हैं। इसका मतलब यह है कि ओएस को सभी सेटिंग्स और ऐप और वरीयताओं के साथ अपने स्वाद के लिए स्थापित करना और फिर एसडी कार्ड की छवि बनाना। तो अगर कुछ गलत हो जाता है तो आप एसडी कार्ड को री-इमेज कर सकते हैं।

एसडी कार्ड फेल होने का दूसरा कारण इसके खराब होने की वजह है। हालाँकि, यह कोई समस्या नहीं है जिसका मैंने स्वयं अनुभव किया है। यदि आप एक प्रतिष्ठित ब्रांड से उच्च गुणवत्ता वाले एसडी कार्ड का उपयोग करते हैं, तो मुझे लगता है कि आप शायद उस समस्या को हल करने के लिए आधे रास्ते हैं। एसडी कार्ड पहनने को कम करने का मतलब है कि एसडी कार्ड पूरी तरह से सुनिश्चित करना। यह आपके फिल्मों आदि के विशाल संग्रह के लिए भंडारण स्थान के रूप में उपयोग नहीं किया जाना चाहिए।

एक विकल्प जो OpenELEC के साथ काम करेगा वह एक USB ड्राइव को बंद कर रहा है। बेशक सभी बूट फ़ाइलों को एसडी कार्ड पर बने रहना होगा। ऐसा करने के लिए कई ट्यूटोरियल हैं। एक ऐसा है जो यहाँ का पालन करने में काफी आसान लगता है , लेकिन पूर्णता के लिए मैं आपको एक सिंहावलोकन दूंगा:

पहला कदम एसडी कार्ड और यूएसबी ड्राइव स्थापित करना है। मिनीटूल पार्टिशन विजार्ड जैसे प्रोग्राम का उपयोग करके SD कार्ड को FAT32 के रूप में 150MB या उससे अधिक के प्राथमिक सक्रिय विभाजन के साथ प्रारूपित किया जाता है, वास्तव में पूरे SD कार्ड को FAT32 के रूप में स्वरूपित किया जा सकता है। बस यह सुनिश्चित करें कि विभाजन प्राथमिक सक्रिय पर सेट है। एसडी कार्ड को सिस्टम की तरह लेबल करना भी उपयोगी हो सकता है ताकि आपको याद रहे कि भविष्य में इसके लिए क्या है। फिर संपूर्ण USB ड्राइव को एक प्राथमिक सक्रिय विभाजन के रूप में फाइल सिस्टम प्रकार के साथ EXT4 के रूप में प्रारूपित करें, फिर से इसे ST STAGE की तरह लेबल करने के लायक है।

एक बार जब आपने डाउनलोड किया और OpenELEC को निकाला तो रूट फ़ोल्डर में चला गया। और इन फ़ाइलों का चयन करें:

openelec.ico
README.md

और उन्हें एसडी कार्ड की जड़ में कॉपी करें।

targetफ़ोल्डर से आगे फ़ाइलों की प्रतिलिपि बनाएँ:

KERNEL
SYSTEM

और फिर से उन्हें एसडी कार्ड के रूट डायरेक्टरी में पेस्ट करें।

तब 3rdparty/bootloaderफ़ोल्डर से फ़ाइलों की प्रतिलिपि बनाएँ:

bootcode.bin
config.txt
fixup.dat
LICENCE.broadcom
start.elf

और उन्हें SD कार्ड की रूट डायरेक्टरी में पेस्ट करें।

अंतिम चरण KERNELएसडी कार्ड पर फ़ाइल का फ़ाइल नाम बदलना है kernel.img

स्टार्टअप फ़ाइलों को बनाने के लिए, एसडी कार्ड के रूट डायरेक्टरी में एक फाइल बनाई जाती है, जिसे cmdline.txtनिम्न पंक्ति में जोड़ा जाता है और इसमें निम्नलिखित लाइन को जोड़ा जाता है:

boot=/dev/mmcblk0p1 disk=/dev/sda1 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 ssh

फ़ाइल को सहेजने के साथ बंद करना सुनिश्चित करें। और वहां से आप जाने के लिए अच्छे हैं। USB ड्राइव से XBMC चलाने की सूचना के स्रोत ने जवाबदेही को बढ़ा दिया। मैं इस दावे के बारे में निश्चित नहीं हूं, लेकिन आप इस पद्धति का उपयोग करने के परिणामस्वरूप कोई प्रदर्शन गिरावट नहीं देख रहे हैं।

आपके मीडिया संग्रह के रूप में, मेरा सुझाव है कि दूसरी ड्राइव पर, चाहे वह USB हो या नेटवर्क स्थान।

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