एक एसडी कार्ड हार्डवेयर, फर्मवेयर, या सॉफ्टवेयर (ड्राइवर, ओएस) पर लॉक तंत्र लागू किया गया है?


16

एसडी कार्ड के साथ रीड-ओनली मोड लागू करने के लिए लॉक कहां है ? क्या यह कार्ड के अंदर भौतिक रूप से पाठकों के फर्मवेयर में या ओएस में किया जाता है? (कुछ और जगह?)

जवाबों:


20

यदि आप SD विनिर्देश भाग 1 भौतिक परत सरलीकृत विशिष्टता को पढ़ते हैं , तो खंड 4.3.6 "राइट प्रोटेक्ट मैनेजमेंट" कहता है

एसडी मेमोरी कार्ड में तीन राइट प्रोटेक्ट मेथड का समर्थन किया गया है:
- मैकेनिकल राइट प्रोटेक्ट स्विच (केवल होस्ट जिम्मेदारी)
- कार्ड इंटरनल राइट
प्रोटेक्ट (कार्ड की जिम्मेदारी) - पासवर्ड प्रोटेक्शन कार्ड लॉक ऑपरेशन।

यांत्रिक लिखें रक्षा स्विच

कार्ड के किनारे एक यांत्रिक स्लाइडिंग टैबलेट (भाग 1 मैकेनिकल एडेंडा के लिए देखें) का उपयोग उपयोगकर्ता द्वारा यह इंगित करने के लिए किया जाएगा कि किसी दिए गए कार्ड को संरक्षित लिखा गया है या नहीं। यदि स्लाइडिंग टैबलेट को इस तरह से तैनात किया जाता है कि खिड़की खुली हो तो इसका मतलब है कि कार्ड संरक्षित है। यदि विंडो बंद है तो कार्ड राइट-प्रोटेक्टेड नहीं है। सॉकेट की तरफ एक उचित, मिलान किया गया स्विच, होस्ट को इंगित करेगा कि कार्ड राइट-प्रोटेक्टेड है या नहीं। यह कार्ड की सुरक्षा के लिए मेजबान की जिम्मेदारी है। कार्ड की आंतरिक सर्किटरी में राइट प्रोटेक्ट स्विच की स्थिति अज्ञात है।

(मेरा जोर)

एक TOSHIBA एसडी कार्ड विनिर्देश कहते हैं

CMD28 SET_WRITE_PROT - आंतरिक लिखें सुरक्षा लागू नहीं है।
CMD29 CLR_WRITE_PROT - आंतरिक लिखें सुरक्षा लागू नहीं है।
CMD30 SEND_WRITE_PROT - आंतरिक लिखें सुरक्षा लागू नहीं है।

...

2) गैर समर्थित कार्य:
कार्ड की आंतरिक लिखें सुरक्षा (PHAYICAL LAYER विनिर्देशन में वैकल्पिक 4.3.5।)


लेकिन मुझे आश्चर्य है
tsenapathy

14

मेरे काम में, हम एक एम्बेडेड सिस्टम में एसडी कार्ड का उपयोग करते हैं। अगर हम लॉक किए गए कार्ड से बूट करने की कोशिश करते हैं, तो हमें कर्नेल घबराहट होगी। यह तब तक बड़ी बात नहीं थी जब तक हमें एसडी कार्ड का एक बैच नहीं मिला, जिसमें बहुत ही ढीले-ढाले लेखन स्विच थे: कार्ड को रीडर में डालने का कार्य कभी-कभी स्विच को स्थानांतरित करने और कार्ड को लॉक करने के लिए पर्याप्त था। बहुत से लोग इसे रोकने के लिए यांत्रिक विकल्पों के साथ आने की कोशिश करने लगे, जैसे प्रत्येक एसडी कार्ड पर टेप का एक टुकड़ा चिपकाना, लेकिन अंत में हमने लिनक्स कर्नेल में स्रोत कोड की एक पंक्ति को बदलकर इसे ठीक किया। अब जब केवल पढ़ने के लिए स्विच सेट के साथ एक एसडी कार्ड का पता लगाया जाता है, तो हम केवल स्विच को अनदेखा करते हैं और जब भी चाहें कार्ड को खुशी से डेटा लिखते हैं।

यह हमारे बैकस्पोर्ट्स के क्रेजी मिस्मैश से है इसलिए मुझे संदेह है कि यह पैच कहीं भी साफ-सुथरा होगा, लेकिन अगर आप अपने कर्नेल के साथ प्रयोग करना चाहते हैं, तो यह एक अच्छा शुरुआती बिंदु है:

--- include/linux/mmc/card.h    (revision 1423)
+++ include/linux/mmc/card.h    (revision 1424)
@@ -125,7 +125,7 @@
 #define mmc_card_blockaddr(c)  ((c)->state & MMC_STATE_BLOCKADDR)

 #define mmc_card_set_present(c)    ((c)->state |= MMC_STATE_PRESENT)
-#define mmc_card_set_readonly(c) ((c)->state |= MMC_STATE_READONLY)
+#define mmc_card_set_readonly(c) {printk("Ignoring MMC read-only switch\n");}
 #define mmc_card_set_highspeed(c) ((c)->state |= MMC_STATE_HIGHSPEED)
 #define mmc_card_set_blockaddr(c) ((c)->state |= MMC_STATE_BLOCKADDR)

अगर आपको लिनक्स कर्नेल को पैच करने और बनाने का मन नहीं है, लेकिन आपके पास एक कैनन पी एंड एस कैमरा है, तो आप एक राइट-प्रोटेक्टेड एसडी कार्ड में फाइल (चित्र) लिखने के लिए सीएचडीके का उपयोग कर सकते हैं (जब कैमरा चालू होता है, तो चेक की खोज) स्विच की स्थिति; जब RO पर सेट किया जाता है तो यह एसडी कार्ड से फर्मवेयर को ऑटो-लोड करेगा। यह उपयोगकर्ताओं को सीधे CHDK में बूट करने की अनुमति देता है; तो CHDK स्विच की स्थिति को अनदेखा कर देता है, इसलिए यह अभी भी कार्ड में चित्र लिख सकता है; उदाहरण के लिए http देखें : //chdk.wikia.com/wiki/Bootable_SD_card )।

आप लिनक्स में राइट-प्रोटेक्टेड एसडी कार्ड को भी लिख सकते हैं hdparmऔर कार्ड को रिमाउंट करके आसानी से फ्लैग ऑफ कर सकते हैं :

$ mount | grep mmc
/dev/mmcblk0p1 on /media/hello type ext3 (ro,nosuid,nodev,relatime,errors=continue,user_xattr,acl,barrier=1,data=ordered,uhelper=udisks)
$ touch /media/hello/test
touch: cannot touch `/media/hello/test': Read-only file system
$ sudo hdparm -r /dev/mmcblk0p1

/dev/mmcblk0p1:
 readonly      =  1 (on)
$ sudo hdparm -r0 /dev/mmcblk0p1

/dev/mmcblk0p1:
 setting readonly to 0 (off)
 readonly      =  0 (off)
$ touch /media/hello/test
touch: cannot touch `/media/hello/test': Read-only file system
$ sudo mount -t ext3 -o rw,remount /dev/mmcblk0p1 /media/hello
$ touch /media/hello/test
$ echo goodbye > /media/hello/test
$ cat /media/hello/test
goodbye
$ sudo umount /dev/mmcblk0p1
$ sudo mount /dev/mmcblk0p1 /mnt
mount: block device /dev/mmcblk0p1 is write-protected, mounting read-only
$ cat /mnt/test
goodbye
$ touch /mnt/test
touch: cannot touch `/mnt/test': Read-only file system
$ 

3

यह पाठक पर निर्भर करता है। पाठक लेखन सुरक्षा टैब को अनदेखा कर सकता है। पाठक के पास फर्मवेयर हो सकता है जो लेखन को अक्षम करता है यदि राइट प्रोटेक्ट टैब लगी हुई है। पाठक के पास एक सॉफ़्टवेयर ड्राइवर हो सकता है जो लेखन को अक्षम करता है यदि राइट प्रोटेक्ट टैब लगी हुई है। व्यवहार में, अधिकांश पाठक इसे फर्मवेयर में करते हैं।


मुझे लगता है आप ग़लत हैं। कृपया एक स्रोत पोस्ट करें।
wizlog


@wizlog: यह जाने बिना कि आपको क्या लगता है कि मैं गलत हूं, मुझे नहीं पता कि इसके लिए स्रोत पोस्ट करने का दावा कौन करता है।
डेविड श्वार्ट्ज

रीडर टैब
प्रोटेक्ट

3
"क्योंकि पाठक द्वारा केवल पायदान का पता लगाया जाता है, अगर वांछित (और यदि पाठक द्वारा समर्थित है) तो सुरक्षा को ओवरराइड किया जा सकता है।" - विकिपीडिया
डेविड श्वार्ट्ज 3

-3

इसका हार्डवेयर आधारित स्विच है। इसकी एक विशेषता किसी भी लिखने के संचालन को अवरुद्ध करती है।

यदि स्विच किया गया है, तो आप नहीं कर सकते:

  • फ़ाइलों को एसडी कार्ड से या स्थानांतरित करें

  • एसडी कार्ड से फाइलें निकालें

  • एसडी कार्ड में फाइल कॉपी करें

  • एसडी कार्ड को फॉर्मेट करें

EDIT यहां और पढ़ें । नारंगी नारंगी वृत्त ध्यान दें ...


2
बाईं ओर एक स्विच। बस इतना से पता है कि कहां
कनाडाई ल्यूक

2
क्या आपको यकीन है कि ताला वास्तव में इसे लागू करता है? मैंने पढ़ा है कि ऐसे कैमरे हैं जो (कुछ संयोग से) इसे अनदेखा कर सकते हैं और कार्ड को वैसे भी लिख सकते हैं।
जेन पांडा

आप जिस लिंक का हवाला दे रहे हैं, वह कहता है "कुछ एसडी कार्ड में कार्ड में निर्मित राइट-प्रोटेक्शन भी होता है"। कुछ - सभी नहीं। यदि आप अन्य उत्तरों की तुलना करते हैं तो ऐसा लगता है कि यह एक अपवाद है। काफी चौंकाने वाला, मुझे लगता है - ऐसा लगता है कि उन्होंने सुरक्षा और वायरस के बारे में बिल्कुल नहीं सोचा था। 8- {
हंस-पीटर स्टॉर

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