ชื่อไดรฟ์ อะไรคือคำที่ถูกต้องสำหรับส่วน "sda" ของ "/ dev / sda"


16

fdisk (8)พูดว่า:

อุปกรณ์มักจะ / dev / sda, / dev / sdb หรือดังนั้น ชื่ออุปกรณ์หมายถึงดิสก์ทั้งหมด ระบบเก่าที่ไม่มี libata (ไลบรารีที่ใช้ภายในเคอร์เนล Linux เพื่อสนับสนุนตัวควบคุมโฮสต์ ATA และอุปกรณ์) สร้างความแตกต่างระหว่างดิสก์ IDE และ SCSI ในกรณีเช่นนี้ชื่ออุปกรณ์จะเป็น / dev / hd * (IDE) หรือ / dev / sd * (SCSI)

พาร์ติชันคือชื่ออุปกรณ์ตามด้วยหมายเลขพาร์ติชัน ตัวอย่างเช่น / dev / sda1 เป็นพาร์ติชันแรกบนฮาร์ดดิสก์ตัวแรกในระบบ ดูเอกสารประกอบเคอร์เนล Linux (ไฟล์Documentation / devices.txt )

จากนี้ฉันเข้าใจว่าในบริบทของ Linux สตริงที่เหมือน/dev/hdaหรือ/dev/sdaเป็น "ชื่ออุปกรณ์" มิฉะนั้นประโยคที่สองที่ฉันเน้นไว้ข้างต้นไม่สมเหตุสมผล: แทนที่จะพูดว่า " ยกตัวอย่างเช่นsda1เป็นพาร์ติชันแรกบนฮาร์ดดิสก์ตัวแรกในระบบ "

มุมมองนี้ได้รับการยืนยันโดยLinux Partition HOWTO :

โดยการประชุม IDE ไดรฟ์จะได้รับชื่ออุปกรณ์ / dev / hda /

มีคำภาษาอังกฤษที่ถูกต้อง (และโดยเฉพาะอย่างยิ่งโปร่งใสและรัดกุม) คำศัพท์ภาษาอังกฤษสำหรับซับสตริงhdaหรือsdaชื่ออุปกรณ์ดังกล่าวหรือไม่? ตัวอย่างเช่นมันจะถูกต้องในกรณีนี้เพื่อเรียกsdaไดรฟ์:

  • "ชื่อสั้น"; หรือ
  • "ชื่ออุปกรณ์ไม่มีเงื่อนไข"; หรือ
  • อื่น ๆ อีก?

(ฉันไม่ได้ขอคำพูดที่ไม่ถูกต้องทางเทคนิคถึงแม้ว่าพวกเขาจะใช้งานทั่วไป)


3
FWIW หน้า man สำหรับdkinfoซึ่งเป็นคำสั่งเดียวที่ฉันพบที่ไม่ใช้ชื่อพา ธ แบบเต็มของอุปกรณ์ดิสก์เรียกมันว่า "disk name"
Mark Plotnick

@ MarkPlotnick ขอบคุณ แต่คำถามนี้เกี่ยวกับ Linux หรือ GNU / Linux ไม่ใช่เกี่ยวกับระบบปฏิบัติการอื่น เช่นนี้dkinfoซึ่งไม่ได้เป็นส่วนหนึ่งของ Linux หรือ GNU / Linux (แต่แทนที่จะเป็นส่วนหนึ่งของSunOS ) อยู่นอกขอบเขตขออภัย
sampablokuper

คำตอบ:


25

sdaเป็นอุปกรณ์ที่ชื่อ /dev/sdaเป็นอุปกรณ์ที่เส้นทาง

คิดว่า/sbin/fdisk, fdiskเป็นไฟล์ชื่อในขณะที่/sbin/fdiskเป็นไฟล์เส้นทาง


5
แม้ว่าคุณจะต้องระมัดระวังด้วย "เส้นทางอุปกรณ์" ที่มีหลายความหมายว่า ...
derobert

1
ขอบคุณ :) "sda เป็นชื่ออุปกรณ์ / dev / sda เป็นเส้นทางของอุปกรณ์" นั่นเป็นมุมมองเริ่มต้นของฉันเช่นกันด้วยเหตุผลที่คุณให้ แต่มันไม่ได้รับการสนับสนุนจากการอ่านข้อความที่ตัดตอนมาจาก util-linux fdisk ของ man man ในคำถามของฉัน (ตอนนี้ฉันได้แก้ไขคำถามเพื่อเน้นย้ำเรื่องนี้ให้ดีขึ้น) ดังนั้นฉันจึงถามเกี่ยวกับเรื่องนี้ใน SE NB นี่ไม่ได้หมายความว่าคำตอบของคุณผิด - บางทีส่วนหนึ่งของหน้าเอกสารนั้นถูกเขียนอย่างเลอะเทอะ? - มันหมายความว่าคำตอบของคุณและหน้า man util-linux fdisk นั้นดูจะเป็นไปได้ยาก คุณมีแหล่งข้อมูลใดบ้างเพื่อยืนยันคำตอบของคุณ? ขอขอบคุณอีกครั้ง :)
sampablokuper

6
/dev/sdaเป็นเส้นทางไปยังอุปกรณ์บล็อก แต่เส้นทางอุปกรณ์จริงจะเป็นอย่างไร/devices/pci0000:00/0000:00:17.0/ata2/host1/target1:0:0/1:0:0:0/block/sda
Dietrich Epp

2
@ jiggunjer: แต่mountยังสั่งให้ไดรเวอร์อุปกรณ์ทำแผนที่ RAM บางส่วน (ไม่ใช่โวลุ่ม) เป็นระบบไฟล์--bindส่วนหนึ่งของแผนผังไฟล์เป็นทรีย่อย ฯลฯ นอกจากนี้การติดตั้ง RAID "ดิสก์" สามารถทำประโยชน์และ / หรือแปลกประหลาดได้ สิ่งที่มีหลายวอลุ่มเพื่อเข้าถึงหรือเข้าถึงส่วนของมัน ในระยะสั้นmountสามารถทำหลายสิ่งได้ แต่สิ่งที่ธรรมดาที่สุดคือการทำให้ระบบไฟล์ปรากฏที่ใดที่หนึ่งในโครงสร้างไฟล์
wallyk

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}อย่างไรก็ตามคู่มือสำหรับ procfs ตั้งชื่อเป็นชื่อพาร์ติชัน ( proc (5) ) และเอกสารเกี่ยวกับสถิติดิสก์เรียกมันว่าชื่ออุปกรณ์ ( iostats.txt )


น่าสนใจฉันเดาsdaและ/dev/sdaใช้แทนกันได้และทั้งคู่เรียกว่าชื่ออุปกรณ์ ผมคิดว่าเพราะ (ในระบบปกติ) คุณติดdevfsบน/devเพื่อให้ชื่อเหมือนsdaกลายเป็นเส้นทางเช่น/dev/sda(ซึ่งคุณยังสามารถเรียกชื่อ)
Peter Cordes

1

ใน Linux / Unix ทุกอย่างเป็นไฟล์ อุปกรณ์แสดงเป็นไฟล์ ไฟล์ประเภทอุปกรณ์ทั้งหมดอยู่ที่ / dev ตำแหน่ง ดังนั้น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 และเคอร์เนลที่ทันสมัย
Peter Cordes

2
ขอบคุณสำหรับคำตอบ แต่ก็ดูเหมือนจะไม่อยู่คำถามที่ผมถาม :( ผมเข้าใจว่าในบริบทเช่น/dev/sda, sdaไฟล์และฉันยังเข้าใจสิ่งที่แสดงให้เห็นถึงไฟล์. คำถามของฉันคือเกี่ยวกับสิ่งที่เรียกสตริงย่อยsdaและสตริง ชอบมันเมื่อพูดถึงพวกเขาด้วยวาจา
sampablokuper

1
@PeterCordes กำลังใช้ openSUSE Leap 42.2 อยู่ครู่หนึ่งฉันสามารถยืนยันได้ว่าไดรฟ์ IDE PATA ทั้งฮาร์ดและออปติคัลรับsdXชื่อและเชื่อมต่อกับ SATA และ SUB เช่นกัน
Spellweaver ยิปซี

1

ดูเหมือนจะมีคำตอบที่ถูกต้องอย่างน้อยสองคำ

  1. sdaสามารถได้อย่างถูกต้องจะเรียกว่า"basename"สำหรับไดรฟ์

  2. sdaสามารถถูกเรียกอย่างถูกต้องว่า"ชื่อดิสก์เคอร์เนล"สำหรับไดรฟ์

คุณบรรลุข้อสรุปนี้ได้อย่างไร

โดยกระบวนการกำจัดผู้สมัครที่มีเหตุผลแต่ละคน:

  • "ชื่ออุปกรณ์"

นี่ไม่ใช่คำที่ถูกต้อง ดังที่ระบุไว้ในคำถามเดิมมันหมายถึงชื่อที่ผ่านการรับรองอย่างสมบูรณ์ (เช่น/dev/sda) ไม่ใช่ที่ส่วนสุดท้าย (เช่นsda)

มีหลักฐานยืนยันในแหล่งข้อมูลเพิ่มเติมเช่นหน้า 67ของThe Definitive Guide to SUSE Linux Enterprise Server 12 :

คุณยังสามารถเลือกใช้ ... อุปกรณ์เชื่อมต่อที่ยึดตามชื่ออุปกรณ์ (เช่น/dev/sdb1) ...

และp.94ของThe Linux Bible 2008 Edition :

คลิกที่แท็บอุปกรณ์และพิมพ์ชื่ออุปกรณ์ (เช่น/dev/cdrom) ...

  • "ชื่อไฟล์" หรือ "ชื่อไฟล์"

นี่ไม่สามารถเป็นคำที่ถูกต้องได้เช่นกันเนื่องจากมีการใช้ในเอกสารทางเทคนิคเป็นคำพ้องสำหรับชื่อที่ผ่านการรับรองอย่างสมบูรณ์ (เช่น/dev/sda) ไม่ใช่เพียงแค่ส่วนย่อยสุดท้าย (เช่นsda):

BASENAME (1) :

basename - ไดเรกทอรีแถบและคำต่อท้ายจากชื่อไฟล์

DIRNAME (1) :

dirname - ตัดส่วนประกอบสุดท้ายจากชื่อไฟล์

  • "ชื่อ"

นี่ไม่สามารถเป็นคำที่ถูกต้องได้เช่นกันเนื่องจากมีการใช้ในเอกสารทางเทคนิคเป็นคำพ้องสำหรับชื่อที่ผ่านการรับรองอย่างสมบูรณ์ (เช่น/dev/sda) ไม่ใช่เพียงแค่ส่วนย่อยสุดท้าย (เช่นsda):

Coreutils ของ GNU: การเรียกใช้ Basename :

basenameเอาส่วนประกอบไดเรกทอรีชั้นนำใด ๆ จากชื่อ

Coreutils ของ GNU: การเรียกใช้ dirname :

dirnameพิมพ์ทั้งหมด แต่องค์ประกอบเฉือนคั่นสุดท้ายของแต่ละชื่อ

  • "shortname" หรือ "short name"

นี่ไม่ใช่คำที่ถูกต้องเช่นกัน ฉันไม่พบเอกสารทางเทคนิคใด ๆ ที่อ้างถึงส่วนสุดท้ายของชื่ออุปกรณ์ว่าเป็น "shortname" หรือ "short name" คำเหล่านั้นดูเหมือนจะถูกนำมาใช้ใน Linux หรือ GNU เพียงในบริบทของทั้งVFAT ตัวเลือก mountหรือโฮสต์ ชื่อในเครือข่าย

  • "basename"

คำนี้ดูเหมือนจะเป็นคำตอบที่ถูกต้องตามp.149ของการติดตั้ง Red Hat Linux 7 :

ตรวจสอบให้แน่ใจว่าไม่มีชื่อฐานของดิสก์ที่คุณวางแผนจะแบ่งพาร์ติชัน ( hdbในกรณีของไดรฟ์ที่ฉันเพิ่ม)

และหมายเหตุหลักสูตรสำหรับ CST8207 (ระบบปฏิบัติการ GNU / Linux) ที่Algonquin College :

คำจำกัดความของ basename: basename ของชื่อพา ธ ใด ๆ เป็นองค์ประกอบชื่อขวาที่สุดไปทางขวาของเครื่องหมายทับขวาสุด

และp.1456ของแนวทางปฏิบัติเพื่อ Red Hat Linux 8 :

basename: ชื่อของไฟล์ที่ตรงกันข้ามกับชื่อพา ธ ไม่ได้กล่าวถึงไดเรกทอรีใด ๆ ที่มีไฟล์ (และดังนั้นจึงไม่มีสแลชใด ๆ [/]) ยกตัวอย่างเช่นhostsเป็น basename /etc/hostsของ

อย่างมีความสุข GNU / Linux ยังมีbasenameคำสั่งซึ่งสามารถใช้ในการรับ basename:

$ basename '/dev/sda'
sda
  • "ชื่อดิสก์เคอร์เนล"

คำนี้ดูเหมือนจะเป็นคำตอบที่ถูกต้องเนื่องจากp.100ของเคอร์เนล Linux ในกะลา :

/dev/<diskname>

ใช้ชื่อดิสก์เคอร์เนลที่ระบุโดย<diskname>เป็นดิสก์รูต

อนึ่ง "ชื่อดิสก์เคอร์เนล" ก็ดูเหมือนจะเป็นคำศัพท์ที่ถูกต้องในบริบทของSolaris :

สำหรับคำสั่ง iostat เวอร์ชันนี้เอาต์พุตแสดงสถิติเพิ่มเติมสำหรับอุปกรณ์ดิสก์เหล่านั้นที่มีกิจกรรมที่ไม่ใช่ศูนย์โดยพา ธ อุปกรณ์ฟิสิคัลแทนชื่อโลจิคัลเคอร์เนลดิสก์ (นั่นคือc0t0d0แทนที่จะเป็นsd0)


ใช่คุณสามารถพูด basename เมื่อพูดถึงการแยกทาง แต่ฉันไม่เคยเห็น "basename" เมื่อพูดถึงอุปกรณ์ "ชื่อ" ใช่ "ชื่อฐาน" ไม่ใช่ ไม่มีลิงก์ในคำถามของคุณใช้คำว่า "basename" หรือ "base name"; คุณหมายถึงอะไรแหล่งข้อมูลในคำถามสนับสนุนเรียกมันว่าชื่อฐาน
Peter Cordes

@PeterCordes ฉันหมายถึงสตริงที่/dev/sdaถูกอ้างถึงโดย: BASENAME (1) เป็น "ชื่อไฟล์"; DIRNAME (1) เป็น "ชื่อไฟล์"; เอกสาร GNU Coreutils เป็น "ชื่อ"; & โดย FDISK (8) และ TLDP เป็น "ชื่ออุปกรณ์" ดังนั้นไม่มีคำใดที่สามารถใช้อ้างถึงองค์ประกอบที่คั่นด้วยเครื่องหมายสแลชสุดท้ายของสตริงได้อย่างไม่น่าสงสัย ถ้าเราต้องการคำที่สามารถใช้ในการอ้างถึงส่วนหนึ่งของสตริงนั้นอย่างไม่ต้องสงสัยเราก็ต้องใช้อย่างอื่น แหล่งที่มาในคำตอบของฉันนำมารวมกันพูดส่วนที่อยู่ข้างหน้าเครื่องหมายทับสุดท้ายคือ "dirname" และอีกส่วนคือ "basename" กรุง .
sampablokuper

ฉันคิดว่ามันยุติธรรม หากคุณกำลังทำเอกสารบางอย่างที่ยอมรับเท่านั้นsdaและไม่ใช่/dev/sdaคุณอาจเรียกว่า "basename" หรือคุณอาจใช้ "ชื่อ" กับ "เส้นทาง" ในเอกสารนั้นและให้ตัวอย่างเช่นเอกสารส่วนใหญ่ทำ ฉันไม่คิดว่าจะมีคำที่ตกลงกันโดยทั่วไปนอกเหนือจาก "ชื่อ" แม้ว่าเอกสารบางฉบับใช้ "ชื่อ" เพื่อรวมเส้นทางแบบเต็ม
Peter Cordes

0

"ทุกอย่างเป็นไฟล์" - ดังนั้นไม่ใช่sdaชื่อไฟล์/devไดเรกทอรี (และสตริงว่างเปล่าส่วนขยาย) ของอุปกรณ์ที่ให้บริการผ่านเส้นทางแบบเต็ม/dev/sdaซึ่งโดยการประชุมคือดิสก์ที่ไม่ใช่ IDE เครื่องแรก? เช่นเดียวpasswdกับชื่อไฟล์และ/etcไดเรกทอรีของไฟล์ที่สามารถเข้าถึงได้เนื่องจาก/etc/passwdการประชุมมีข้อมูลรหัสผ่าน (ed) หรือไม่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.