ड्राइव का नाम? “Sda” भाग “/ देव / sda” के लिए सही शब्द क्या है?


16

fdisk (8) कहते हैं:

उपकरण आमतौर पर / देव / sda, / देव / sdb या तो है। एक उपकरण का नाम संपूर्ण डिस्क को संदर्भित करता है। लिबेटा के बिना पुराने सिस्टम (एटीए होस्ट नियंत्रकों और उपकरणों का समर्थन करने के लिए लिनक्स कर्नेल के अंदर उपयोग किया जाने वाला एक पुस्तकालय) आईडीई और एससीएसआई डिस्क के बीच अंतर करता है। ऐसे मामलों में डिवाइस का नाम / dev / hd * (IDE) या / dev / sd * (SCSI) होगा।

विभाजन एक उपकरण का नाम है जिसके बाद विभाजन संख्या होती है। उदाहरण के लिए, / dev / sda1 सिस्टम में पहली हार्ड डिस्क पर पहला विभाजन है। लिनक्स कर्नेल प्रलेखन ( डॉक्यूमेंटेशन / devices.txt फ़ाइल) भी देखें ।

इस आधार पर, मैं समझता हूँ कि लिनक्स के संदर्भ में, एक स्ट्रिंग की तरह /dev/hdaया /dev/sdaएक "डिवाइस का नाम" है। अन्यथा, मैंने ऊपर दिए गए दूसरे वाक्य का कोई मतलब नहीं है: यह बजाय कहेंगे, " उदाहरण के लिए, सिस्टम में पहली हार्ड डिस्क पर sda1 पहला विभाजन है। "

यह दृश्य लिनक्स विभाजन HOWTO द्वारा अनुमोदित है :

कन्वेंशन द्वारा, IDE ड्राइव को डिवाइस नाम / dev / hda to / dev / hdd दिया जाएगा

वहाँ सबस्ट्रिंग के लिए एक तकनीकी रूप से सही है (और, अधिमानतः, स्पष्ट और संक्षिप्त) अंग्रेजी शब्द है hdaया sdaइस तरह के एक उपकरण का नाम की? उदाहरण के लिए, क्या इस मामले sdaमें ड्राइव को कॉल करना सही होगा :

  • "संक्षिप्त नाम"; या
  • "अयोग्य डिवाइस नाम"; या
  • कुछ और?

(मैं बोलचाल के लिए नहीं कह रहा हूं जो तकनीकी रूप से गलत हैं, भले ही वे आम उपयोग में हों।)


3
FWIW, dkinfo के लिए मैन पेज , जो एकमात्र कमांड है जिसका मैंने सामना किया है जो एक डिस्क डिवाइस के पूर्ण पथनाम का उपयोग नहीं करता है, इसे "डिस्क नाम" कहता है।
मार्क प्लॉटनिक

@MarkPlotnick, धन्यवाद, लेकिन यह सवाल लिनक्स या GNU / लिनक्स के बारे में है, अन्य OSes के बारे में नहीं। जैसे, dkinfoजो लिनक्स या GNU / Linux का हिस्सा नहीं है (लेकिन इसके बजाय SunOS का हिस्सा है ), इस दायरे से बाहर है, क्षमा करें।
सम्पाबल्कुप्पर १17 ’१k को

जवाबों:


25

sdaडिवाइस का नाम है/dev/sdaडिवाइस पथ है

सोचो /sbin/fdisk, fdiskफ़ाइल नाम है , जबकि /sbin/fdiskफ़ाइल पथ है


5
यद्यपि आपको "डिवाइस पथ" से सावधान रहना होगा क्योंकि इसके कई अर्थ हैं ...
derobert

1
धन्यवाद :) "एसडीए डिवाइस नाम है। / देव / एसडीए डिवाइस पथ है।" आपके द्वारा दिए गए कारण के लिए भी यह मेरा प्रारंभिक दृष्टिकोण था, लेकिन यह मेरे प्रश्न में उद्धृत उपयोग-लिनक्स fdisk मैन पेज अंश के एक करीबी पढ़ने के द्वारा असमर्थित है। (मैंने अब इस पर बेहतर जोर देने के लिए प्रश्न को संपादित किया है।) इसलिए एसई पर यहां मामले के बारे में मेरा पूछना। NB इसका मतलब यह नहीं है कि आपका उत्तर गलत है - शायद मैन पेज का वह हिस्सा धीरे-धीरे लिखा गया था? - इसका मतलब यह है कि आपका उत्तर और उपयोग-लिनक्स fdisk मैन पेज बाधाओं पर प्रतीत होता है। क्या आपके पास अपना जवाब देने के लिए कोई स्रोत है? धन्यवाद फिर से :)
sampablokuper

6
/dev/sdaब्लॉक डिवाइस का पथ है, लेकिन वास्तविक डिवाइस पथ कुछ इस तरह होगा/devices/pci0000:00/0000:00:17.0/ata2/host1/target1:0:0/1:0:0:0/block/sda
डायट्रीच एप

2
@jiggunjer: लेकिन mountएक डिवाइस ड्राइवर को निर्देश देता है कि फाइलसिस्टम के रूप में कुछ रैम (वॉल्यूम नहीं) को मैप करें, क्या --bindफाइल ट्री के एक हिस्से को उपट्री के रूप में देखा जा सकता है, आदि इसके अलावा, एक RAID "डिस्क" को उपयोगी और / या विचित्र कर सकते हैं। इसके कई हिस्सों तक पहुँचने के लिए या इसके कई हिस्सों के साथ चीजें। संक्षेप में, mountकई काम कर सकते हैं लेकिन सबसे विशिष्ट एक फाइल सिस्टम बना रहा है जो फ़ाइल ट्री में कहीं दिखाई देता है।
4

1
@jiggunjer मुझे लगता है कि आपका मतलब एक फाइलसिस्टम प्रारूप से हो सकता है, जो कि इस तरह के प्रारूप की तात्कालिकता के समान नहीं है, जिसे आमतौर पर फाइलसिस्टम के रूप में संदर्भित किया जाता है, जिसे आप वॉल्यूम कहते हैं। भले ही वह तकनीकी रूप से गलत हो, लेकिन फाइलसिस्टम के लोगों का यही मतलब है। मुझे अभी तक किसी से भी मिलना है, जो वॉल्यूम के रूप में फाइल सिस्टम प्रारूप की तात्कालिकता के बारे में बताता है। विषय पर मैंने जो भी किताबें पढ़ी हैं उनमें से किसी ने कभी भी "फाइलसिस्टम" (या तो अर्थ में) का अर्थ "वॉल्यूम" शब्द का इस्तेमाल नहीं किया है।
स्पष्ट

6

sdaके हिस्से के /dev/sdaअपने दृष्टिकोण पर निर्भर करता है कई चीजें प्रतिनिधित्व कर सकते हैं:

  1. फ़ाइल का नाम
    सामान्य तौर पर, यह एक फ़ाइल का नाम है, जो, यदि यह एक डिस्क है, एक ब्लॉक डिवाइस है, इसलिए, एक डिवाइस नाम

    जड़ के रूप में:

    $ ls -la /dev/sd*
    brw-rw---- 1 root disk 8, 0 Sep 11 22:01 /dev/sda
    brw-rw---- 1 root disk 8, 1 Sep 11 22:02 /dev/sda1
    brw-rw---- 1 root disk 8, 2 Sep 11 22:01 /dev/sda2
    
  2. डिस्क नाम
    sdaएक स्ट्रिंग है जो एक डिस्क को एक नाम देता है (विभाजन sda1, sda2, sdX, आदि से अलग)। यह आमतौर पर लागू डिवाइस नियमों के आधार पर udev द्वारा उत्पन्न होता है।

  3. निर्देशिका पथ
    sdaपथ का आधार है/dev/sda


डिस्क नामों से संबंधित व्याख्या तक सीमित:

पुराने समय में: sda SCSI डिस्क का उपकरण नाम हुआ करता था

जैसा कि एक ही पुस्तकालय SATA ड्राइव के लिए बढ़ा है मुझे लगता है कि अब इसे बुलाया जाना चाहिए:

device name: SATA/SCSI/SAS disk a

या केवल:

device name: first SATA/SCSI/SAS disk

3

यह कर्नेल-जनरेटेड ब्लॉक डिस्क / पार्टीशन डिवाइस नाम है :

sdaएक डिस्क जिसका नाम कर्नेल है। कर्नेल ड्राइवर (SCSI स्टैक सहित, जो SATA डिस्क के लिए उपयोग करने के लिए बहुत सुविधाजनक है ) नाम उत्पन्न करने के लिए संरचना का disk_nameक्षेत्र भरें gendisk(जैसे SCSI: ड्राइवर / scsi / sd.c # L3338 ) sda

यह नाम बाद में इसी ब्लॉक डिवाइस का नाम हुआ करता है /dev, /sysऔर /proc/{partitions,diskstats}। हालाँकि, मैनुअल के लिए इसे नाम विभाजन नाम ( proc (5) ) और डिस्क सांख्यिकी पर प्रलेखन डिवाइस नाम ( iostats.txt ) कहते हैं।


दिलचस्प है, मुझे लगता है sdaऔर /dev/sdaविनिमेय हैं, और दोनों को डिवाइस नाम के रूप में संदर्भित किया जाता है। मुझे लगता है कि ऐसा इसलिए है क्योंकि (एक सामान्य प्रणाली में) आप माउंट devfsकरते हैं /dev, इसलिए नाम ऐसे sdaरास्तों में बदल जाते हैं जैसे /dev/sda(जिसे आप एक नाम भी कह सकते हैं)।
पीटर कॉर्ड्स

1

लिनक्स / यूनिक्स में सब कुछ एक फाइल है। एक उपकरण एक फ़ाइल के रूप में प्रतिनिधित्व करता है। सभी डिवाइस प्रकार फ़ाइल / देव स्थान पर स्थित हैं। तो sda एक ब्लॉक डिवाइस प्रकार की विशेष फ़ाइल है।

hd(x) - IDE
sd(x) - SATA,SSD,ISCI,SAS

नोट : जहाँ x एक चर है। x हार्ड डिस्क की स्थिति को दर्शाता है।

if x = a for IDE disk means hda represents primary master disk
   x = b for IDE disk means hdb represents primary slave disk

अब sd में *

if x = a for SATA/SSD/ISCI/SAS sda represents first disk
   x = b fo SATA/SSD/ISCI/SAS sdb represents second disk

IIRC, यहां तक ​​कि IDE (PATA) डिस्क sd*को कुछ ड्राइवरों के साथ या हमेशा आधुनिक कर्नेल के साथ नाम मिलते हैं? मैं भूल गया, मेरे पास PATA और एक आधुनिक कर्नेल के साथ कोई सक्रिय मशीन नहीं है।
पीटर कॉर्ड्स

2
उत्तर के लिए धन्यवाद, लेकिन यह मेरे द्वारा पूछे गए प्रश्न को संबोधित करने के लिए प्रतीत नहीं होता है :( मैं समझता हूं कि जैसे एक संदर्भ में /dev/sda, sdaएक फ़ाइल है, और मैं यह भी समझता हूं कि फ़ाइल क्या प्रतिनिधित्व करती है। मेरा सवाल यह था कि सबस्ट्रिंग और स्ट्रिंग्स को कॉल करने के बारे में क्या था। sdaऐसा लगता है कि, जब मौखिक रूप से उन्हें का जिक्र है।
sampablokuper

1
@PeterCordes कुछ समय से OpenSUSE लीप 42.2 का उपयोग कर रहा है, मैं इस बात की पुष्टि कर सकता हूं कि IDE PATA ड्राइव, हार्ड और ऑप्टिकल दोनों, sdXनाम प्राप्त करता है, और SATA और SUB के साथ भी परस्पर क्रिया करता है।
user207673

1

कम से कम दो मान्य उत्तर प्रतीत होते हैं

  1. sdaसही ढंग से ड्राइव के लिए "बेसनेम" कहा जा सकता है ।

  2. sdaड्राइव के लिए सही ढंग से "कर्नेल डिस्क नाम" भी कहा जा सकता है ।

आप इस निष्कर्ष पर कैसे पहुंचे?

प्रत्येक प्रशंसनीय उम्मीदवारों पर उन्मूलन की प्रक्रिया द्वारा:

  • "यन्त्र का नाम"

यह सही शब्द नहीं हो सकता। जैसा कि मूल प्रश्न में उल्लेख किया गया है , यह पूरी तरह से योग्य नाम (जैसे /dev/sda) को संदर्भित करता है , न कि अंतिम टुकड़े (जैसे sda) को।

अतिरिक्त स्रोत, जैसे कि लिनक्स एंटरप्राइज सर्वर 12 को निश्चित गाइड के p.68 के रूप में, दूषित साक्ष्य मौजूद हैं :

आप उपयोग करने का विकल्प भी चुन सकते हैं ... एक माउंट जो डिवाइस के नाम पर आधारित है (जैसे /dev/sdb1) ...

और p.94 की लिनक्स बाइबिल 2008 संस्करण :

डिवाइस टैब पर क्लिक करें और उपकरण का नाम (जैसे /dev/cdrom)…

  • "फ़ाइल नाम" या "फ़ाइल नाम"

यह सही शब्द भी नहीं हो सकता है, क्योंकि इसका उपयोग तकनीकी दस्तावेज में पूरी तरह से योग्य नाम (उदाहरण /dev/sda) के लिए एक पर्याय के रूप में किया जाता है , न कि केवल अंतिम टुकड़े (जैसे sda) के लिए:

बेसनैम (1) :

basename - फ़ाइल नाम से स्ट्रिप निर्देशिका और प्रत्यय

DIRNAME (1) :

dirname - फ़ाइल नाम से अंतिम घटक पट्टी करें

  • "नाम"

यह सही शब्द भी नहीं हो सकता है, क्योंकि इसका उपयोग तकनीकी दस्तावेज में पूरी तरह से योग्य नाम (उदाहरण /dev/sda) के लिए एक पर्याय के रूप में किया जाता है , न कि केवल अंतिम टुकड़े (जैसे sda) के लिए:

GNU Coreutils: बेसन इनवोकेशन :

basenameनाम से किसी भी प्रमुख निर्देशिका घटकों को निकालता है ।

GNU Coreutils: dirname मंगलाचरण :

dirnameसभी लेकिन प्रत्येक के अंतिम स्लैश-सीमांकित घटक प्रिंट नाम

  • "संक्षिप्त नाम" या "संक्षिप्त नाम"

यह सही शब्द भी नहीं हो सकता है। मुझे कोई भी तकनीकी दस्तावेज नहीं मिल रहा है जो किसी डिवाइस नाम के अंतिम भाग को "शॉर्टनेम" या "शॉर्ट नेम" के रूप में संदर्भित करता है। उन शब्दों का उपयोग लिनक्स या GNU में, केवल VFAT माउंट विकल्प या नेटवर्क पर होस्ट नामों के संदर्भ में किया जाता है

  • "Basename"

यह शब्द एक मान्य उत्तर प्रतीत होता है, जो Red Hat Linux 7 को स्थापित करने के p.149 पर आधारित है :

यह पूरी तरह सुनिश्चित कर लें कि जिस डिस्क का आप विभाजन करने की योजना बना रहे हैं, उसका आधार सूची में सूचीबद्ध नहीं है (यह hdbउस ड्राइव के मामले में है जिसे मैंने जोड़ा था)।

और Algonquin College में CST8207 (GNU / Linux ऑपरेटिंग सिस्टम) के लिए पाठ्यक्रम नोट :

बेसनेम की परिभाषा: किसी भी मार्गनाम का बेसनेम उसका राइट-मोस्ट नेम कंपोनेंट है, दाईं ओर सबसे ज्यादा स्लैश है।

और Red Hat Linux 8 के लिए प्रैक्टिकल गाइड का p.1456 :

basename: एक फ़ाइल का नाम, जो पथनाम के विपरीत है, फ़ाइल में किसी भी निर्देशिका का उल्लेख नहीं करता है (और इसलिए इसमें कोई स्लैश नहीं है [/])। उदाहरण के लिए, का आधार hostsहै /etc/hosts

खुशी से, GNU / Linux में एक basenameकमांड भी है , जिसका उपयोग बेसन प्राप्त करने के लिए किया जा सकता है:

$ basename '/dev/sda'
sda
  • "कर्नेल डिस्क नाम"

संक्षेप में , लिनक्स कर्नेल के p.100 के कारण यह शब्द एक मान्य उत्तर प्रतीत होता है :

/dev/<diskname>

<diskname>रूट डिस्क के रूप में निर्दिष्ट कर्नेल डिस्क नाम का उपयोग करें ।

संयोग से, "कर्नेल डिस्क नाम" सोलारिस के संदर्भ में मान्य शब्दावली प्रतीत होता है :

Iostat कमांड के इस संस्करण के लिए, आउटपुट केवल उन डिस्क डिवाइसों के लिए विस्तारित आंकड़े दिखाता है जो नॉनजेरो गतिविधि के साथ, तार्किक कर्नेल डिस्क नाम के बजाय भौतिक डिवाइस पथ द्वारा (अर्थात के c0t0d0बजाय sd0)।


हाँ जब आप पथों के विभाजन के बारे में बात कर रहे हों तो आप बेसन कह सकते हैं, लेकिन मैंने उपकरणों के बारे में बात करते समय "बेसनेम" नहीं देखा है। "नाम" हाँ, "आधार नाम" नहीं। आपके प्रश्न के लिंक में से कोई भी "बेसनेम" या "आधार नाम" शब्द का उपयोग नहीं करता है; आपका क्या मतलब है कि सवाल के स्रोत इसे एक आधार का समर्थन करते हैं?
पीटर कॉर्ड्स

@PeterCordes, मेरा मतलब था कि इस तरह के तार /dev/sdaको इसके द्वारा संदर्भित किया जाता है: BASENAME (1) "फ़ाइलनाम" के रूप में; DIRNAME (1) "फ़ाइल नाम" के रूप में; GNU Coreutils डॉक्स "नाम" के रूप में; & FDISK (8) और टीएलडीपी द्वारा "डिवाइस नाम"। इसलिए, उन शर्तों में से कोई भी कभी भी स्पष्ट रूप से स्ट्रिंग के अंतिम स्लेश-सीमांकित घटक को संदर्भित करने के लिए उपयोग नहीं किया जा सकता है। एर्गो, अगर हम एक ऐसा शब्द चाहते हैं जिसका उपयोग स्ट्रिंग के उस हिस्से को स्पष्ट रूप से संदर्भित करने के लिए किया जा सकता है, तो हमें कुछ और का उपयोग करना चाहिए। मेरे जवाब के सूत्र, एक साथ लिए गए, अंतिम स्लैश से पहले का हिस्सा "dirname" है, और उसके बाद का हिस्सा "basename" है। Voilà
सम्पाबल्कुपर

मुझे लगता है कि यह उचित है। यदि आप किसी ऐसी चीज़ का दस्तावेजीकरण कर रहे हैं जिसे केवल स्वीकार किया गया है sdaऔर नहीं /dev/sda, तो आप इसे "बेसनेम" कह सकते हैं। या आप उस दस्तावेज़ में बस "नाम" बनाम "पथ" का उपयोग कर सकते हैं और एक उदाहरण दे सकते हैं, जैसे कि अधिकांश प्रलेखन करता है। मुझे नहीं लगता कि "नाम" के अलावा एक आम तौर पर सहमत-शब्द है, भले ही कुछ दस्तावेज़ पूर्ण पथ को शामिल करने के लिए "नाम" का उपयोग करते हैं।
पीटर कॉर्ड्स

0

"सब कुछ एक फ़ाइल है" - तो sdaबस फ़ाइल का नाम नहीं है, /devनिर्देशिका (और खाली स्ट्रिंग विस्तार) डिवाइस को पूर्ण पथ के माध्यम से उपलब्ध कराया गया है /dev/sda, जो सम्मेलन द्वारा पहली गैर-आईडीई डिस्क है? जैसे passwdकि फ़ाइल का नाम और फ़ाइल /etcकी निर्देशिका सुलभ है जैसे /etc/passwdकि कन्वेंशन में (एड) पासवर्ड डेटा होता है?

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