2014-05-05 12 views
15

पर एसएसडी स्टोरेज डिवाइस का पता लगाना मैं एक ओएस पोर्टेबल प्रोग्राम पर काम कर रहा हूं जो यह पता लगाने से लाभान्वित होगा कि कोई भौतिक स्टोरेज डिवाइस एसएसडी या सादा पुरानी स्पिन-डिस्क है या नहीं।POSIX OS'es

लिनक्स पर है:

/sys/block/sdX/queue/rotational 

जो 0 या 1 लौट ही SSD, लेकिन मुझे यकीन है कि अगर यह सबसे अच्छा तरीका है नहीं कर रहा हूँ।

Windows और यूनिक्स पर मैं यह पता लगाने का कोई तरीका नहीं मिला है, शायद मैं ioctl DEVICE_SEEK_PENALTY_DESCRIPTOR का उपयोग करना चाहिए और जाँच penelty (जो एक एसएसडी संग्रहण उपकरण पर बहुत कम होना चाहिए) की तलाश, या शायद DeviceIoControl का उपयोग नाममात्र मीडिया जांच करने के लिए घूर्णन दर (जो एक एसएसडी स्टोरेज डिवाइस पर बहुत कम होना चाहिए)।

पीओएसईक्स संगत ओएसएस पर एसएसडी डिस्क का पता लगाने के साथ आगे बढ़ने के लिए मेरे लिए कोई सिफारिशें?

+5

कोई मानक इंटरफ़ेस नहीं है, इसलिए आपको बोर्ड में कुछ ओएस विशिष्ट करना होगा। यह अच्छा होगा अगर इसे निर्धारित करने का एक सरल क्रॉस-प्लेटफार्म तरीका था। लिनक्स के लिए, आईआईआरसी 'घूर्णन' यूएसबी कलम ड्राइव के लिए '0' भी होगा। – Petesh

+0

@ पेटेश एसएसडी स्टोरेज डिवाइस का पता लगाने का कोई विश्वसनीय तरीका नहीं है, तो इसे POSIX मानक में प्राप्त करना मुश्किल होगा। –

+6

आपके आवेदन को एक विनम्र उपयोगकर्ता-सेट विकल्प, शायद सभी डिस्क की एक अच्छी तालिका से लाभ होगा और क्या उन्हें "एसएसडी मोड", "स्पिनर मोड", या संभवतः "रैम डिस्क मोड", "अज्ञात NAS में उपयोग किया जाना चाहिए डिवाइस मोड "," हास्यास्पद विशेष फाइल सिस्टम मोड ", और इसी तरह। मैं एक पहचान सुविधा विकसित करने पर समय बर्बाद नहीं करूंगा जो शायद किसी भी मामले में मैन्युअल समीक्षा और ओवरराइड की आवश्यकता होगी। –

उत्तर

2

संबंधित: https://unix.stackexchange.com/questions/65595/how-to-know-if-a-disk-is-an-ssd-or-an-hdd

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

2

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

वास्तव में, "मैं एक ठोस-राज्य ड्राइव का उपयोग कर रहा हूं" की रेखाओं के साथ एक चेकबॉक्स, डिफ़ॉल्ट रूप से सबसे अच्छा विकल्प होगा, खासकर जब से एसएसडी होने की संभावना है (अब के लिए, कम से कम) तकनीकी समझने के लिए पर्याप्त है कि उनके पास क्या है।

संबंधित मुद्दे