Nama drive? Apa istilah yang benar untuk bagian "sda" dari "/ dev / sda"?

16

fdisk (8) mengatakan:

Perangkat ini biasanya / dev / sda, / dev / sdb atau lebih. Nama perangkat merujuk ke seluruh disk. Sistem lama tanpa libata (perpustakaan yang digunakan di dalam kernel Linux untuk mendukung pengontrol dan perangkat host ATA) membuat perbedaan antara disk IDE dan SCSI. Dalam kasus seperti itu nama perangkat adalah / dev / hd * (IDE) atau / dev / sd * (SCSI).

Partisi adalah nama perangkat yang diikuti oleh nomor partisi. Sebagai contoh, / dev / sda1 adalah partisi pertama pada hard disk pertama dalam sistem. Lihat juga dokumentasi kernel Linux (file Documentation / devices.txt ).

Berdasarkan ini, saya mengerti bahwa dalam konteks Linux, string seperti /dev/hdaatau /dev/sdaadalah "nama perangkat". Kalau tidak, kalimat kedua yang saya tekankan di atas tidak masuk akal: itu malah akan mengatakan, " Misalnya, sda1 adalah partisi pertama pada hard disk pertama dalam sistem. "

Pandangan ini dikuatkan oleh Linux Partition HOWTO :

Secara konvensi, drive IDE akan diberikan nama perangkat / dev / hda ke / dev / hdd .

Apakah ada istilah Bahasa Inggris yang benar secara teknis (dan, lebih disukai, tidak ambigu dan ringkas) untuk substring hdaatau sdanama perangkat semacam itu? Misalnya, apakah benar dalam hal ini untuk memanggil sdadrive:

  • "nama pendek"; atau
  • "nama perangkat yang tidak memenuhi syarat"; atau
  • sesuatu yang lain?

(Saya tidak meminta bahasa sehari-hari yang secara teknis tidak benar, bahkan jika mereka biasa digunakan.)

sampablokuper
sumber
3
FWIW, halaman manual untuk dkinfo , yang merupakan satu-satunya perintah yang saya temui yang tidak menggunakan pathname lengkap perangkat disk, menyebutnya "nama disk".
Mark Plotnick
@MarkPlotnick, terima kasih, tetapi pertanyaan ini tentang Linux atau GNU / Linux, bukan tentang OS lainnya. Dengan demikian,, dkinfoyang bukan merupakan bagian dari Linux atau GNU / Linux (melainkan bagian dari SunOS ), di luar jangkauan, maaf.
sampablokuper

Jawaban:

25

sdaadalah nama perangkat . /dev/sdaadalah jalur perangkat .

Pikirkan /sbin/fdisk, fdiskadalah nama file , sedangkan path/sbin/fdisk file .

Spellweaver Gypsy
sumber
5
Meskipun Anda harus berhati-hati dengan "jalur perangkat" karena ada beberapa arti dari itu ...
derobert
1
Terima kasih :) "sda adalah nama perangkat. / Dev / sda adalah jalur perangkat." Itu adalah pandangan awal saya juga, karena alasan yang telah Anda berikan, tetapi itu tidak didukung oleh pembacaan dekat dari kutipan halaman util-linux fdisk yang dikutip dalam pertanyaan saya. (Sekarang saya telah mengedit pertanyaan untuk lebih menekankan ini.) Oleh karena itu saya bertanya tentang masalah ini di SE. NB Ini tidak berarti jawaban Anda salah - mungkin bagian halaman manual itu ditulis dengan sembrono? - itu hanya berarti bahwa jawaban Anda dan halaman man util-linux fdisk tampaknya berselisih. Apakah Anda punya sumber untuk menguatkan jawaban Anda? Terima kasih lagi :)
sampablokuper
6
/dev/sdaadalah jalur ke perangkat blok, tetapi jalur perangkat yang sebenarnya adalah sesuatu seperti/devices/pci0000:00/0000:00:17.0/ata2/host1/target1:0:0/1:0:0:0/block/sda
Dietrich Epp
2
@ jiggunjer: Tetapi mountjuga mengarahkan driver perangkat untuk memetakan beberapa RAM (bukan volume) sebagai sistem file, dapat --bindsebagian dari pohon file sebagai subtree, dll. Selanjutnya, memasang "disk" RAID dapat berguna dan / atau aneh hal-hal dengan banyak volume untuk mengakses atau mengakses bagian-bagiannya. Singkatnya, mountdapat melakukan banyak hal tetapi yang paling khas adalah membuat sistem file muncul di suatu tempat di pohon file.
wallyk
1
@ jiggunjer Saya pikir Anda mungkin berarti format filesystem, yang tidak sama dengan instantiation format seperti itu, yang biasanya direferensikan sebagai filesystem, apa yang Anda sebut volume. Bahkan jika itu secara teknis tidak benar, itu yang orang maksudkan dengan sistem file. Saya belum pernah bertemu siapa pun yang merujuk pada instantiation dari format sistem file sebagai volume. Tidak ada buku yang pernah saya baca tentang topik ini yang pernah menggunakan kata "volume" untuk berarti "filesystem" (dalam arti baik).
Clearer
6

Bagian sdadari /dev/sdadapat mewakili beberapa hal tergantung pada sudut pandang Anda:

  1. Nama file
    Secara umum, itu adalah nama file, yang, jika itu adalah disk, adalah perangkat blok , oleh karena itu, nama perangkat

    Sebagai root:

    $ 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. Nama disk
    sdaadalah string yang memberikan nama ke disk (berbeda dari partisi sda1, sda2, sdX, dll.). Biasanya dihasilkan oleh udev berdasarkan aturan perangkat yang diterapkan.

  3. Path direktori
    sdaadalah nama dasar dari path/dev/sda


Terbatas pada interpretasi terkait dengan nama disk:

Di masa lalu: sda digunakan untuk nama perangkat disk SCSI a .

Saat pustaka yang sama diperluas ke drive SATA, saya kira sekarang harus dipanggil:

device name: SATA/SCSI/SAS disk a

Atau sederhananya:

device name: first SATA/SCSI/SAS disk
Panah
sumber
3

Ini adalah nama perangkat perangkat partisi / disk blok yang dihasilkan kernel :

sdaadalah nama disk yang dihasilkan oleh kernel. Driver kernel (termasuk stack SCSI yang kebetulan sangat nyaman digunakan untuk disk SATA) mengisi disk_namebidang gendiskstruktur (yaitu untuk SCSI: driver / scsi / sd.c # L3338 ) untuk menghasilkan sdanama.

Nama ini nantinya digunakan untuk nama perangkat blok yang sesuai di /dev, /sysdan /proc/{partitions,diskstats}. Namun, manual untuk nama proc itu nama partisi ( proc (5) ) dan dokumentasi tentang statistik disk menyebutnya nama perangkat ( iostats.txt ).

myaut
sumber
Menarik, saya kira sdadan /dev/sdadapat dipertukarkan, dan keduanya disebut sebagai nama perangkat. Saya berpikir bahwa karena (dalam sistem normal) Anda me-mount devfspada /dev, sehingga nama-nama seperti sdaberubah menjadi jalur seperti /dev/sda(yang Anda juga bisa menelepon nama).
Peter Cordes
1

Di Linux / Unix semuanya adalah file. Perangkat mewakili sebagai file. Semua file jenis perangkat terletak di / dev lokasi. Jadi sda adalah jenis perangkat blok file khusus.

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

Catatan : di mana x adalah variabel. x mewakili posisi hard disk.

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

Sekarang di sd *

if x = a for SATA/SSD/ISCI/SAS sda represents first disk
   x = b fo SATA/SSD/ISCI/SAS sdb represents second disk
Rakib
sumber
IIRC, bahkan disk IDE (PATA) mendapatkan sd*nama dengan beberapa driver, atau selalu dengan kernel modern? Saya lupa, saya tidak punya mesin aktif dengan PATA dan kernel modern.
Peter Cordes
2
Terima kasih atas jawabannya, tetapi sepertinya tidak menjawab pertanyaan yang saya ajukan :( Saya mengerti bahwa dalam konteks seperti /dev/sda, sdaadalah sebuah file, dan saya juga mengerti apa yang diwakili file tersebut. Pertanyaan saya adalah tentang apa yang disebut substring sdadan string seperti itu, ketika merujuk kepada mereka secara lisan
sampablokuper
1
@PeterCordes telah menggunakan openSUSE Leap 42.2 untuk sementara waktu, saya dapat mengonfirmasi bahwa IDE PATA drive, baik hard dan optik, mendapatkan sdXnama, dan bercampur dengan SATA dan SUB juga.
Gypsy Spellweaver
1

Setidaknya ada dua jawaban yang valid

  1. sdadapat dengan benar disebut "nama kecil" untuk drive.

  2. sdajuga dapat dengan benar disebut "nama disk kernel" untuk drive.

Bagaimana Anda mencapai kesimpulan ini?

Dengan proses eliminasi pada masing-masing kandidat yang masuk akal:

  • "nama perangkat"

Ini bukan istilah yang benar. Seperti disebutkan dalam pertanyaan awal , ini merujuk pada nama yang memenuhi syarat (mis. /dev/sda), Bukan pada fragmen akhir (mis sda.).

Bukti yang menguatkan ada dalam sumber tambahan, seperti hal.68 dari The Definitive Guide to SUSE Linux Enterprise Server 12 :

Anda juga dapat memilih untuk menggunakan ... mount yang didasarkan pada nama perangkat (seperti /dev/sdb1) ...

dan hal.94 dari The Linux Bible 2008 Edition :

Klik tab Perangkat dan ketik nama perangkat (seperti /dev/cdrom) ...

  • "nama file" atau "nama file"

Ini juga bukan istilah yang tepat, karena digunakan dalam dokumentasi teknis sebagai sinonim untuk nama yang sepenuhnya memenuhi syarat (mis. /dev/sda), Bukan hanya fragmen akhir (mis. sda):

BASENAME (1) :

basename - strip direktori dan suffix dari nama file

DIRNAME (1) :

dirname - menghapus komponen terakhir dari nama file

  • "nama"

Ini juga bukan istilah yang tepat, karena digunakan dalam dokumentasi teknis sebagai sinonim untuk nama yang sepenuhnya memenuhi syarat (mis. /dev/sda), Bukan hanya fragmen akhir (mis. sda):

GNU Coreutils: doa basename :

basenamemenghapus komponen direktori terkemuka dari nama .

GNU Coreutils: doa dirname :

dirnamemencetak semua kecuali komponen pembatas-potong akhir dari masing-masing nama .

  • "nama pendek" atau "nama pendek"

Ini juga bukan istilah yang tepat. Saya tidak dapat menemukan dokumentasi teknis yang merujuk pada bagian terakhir dari nama perangkat sebagai "nama pendek" atau "nama pendek". Istilah-istilah itu tampaknya digunakan, di Linux atau GNU, hanya dalam konteks opsi pemasangan VFAT , atau nama host di jaringan .

  • "nama kecil"

Istilah ini tampaknya merupakan jawaban yang valid, berdasarkan hal.149 dari Menginstal Red Hat Linux 7 :

Pastikan benar-benar bahwa nama samaran disk yang Anda rencanakan untuk partisi tidak terdaftar (ini adalah hdb, dalam kasus drive yang saya tambahkan).

dan catatan kursus untuk CST8207 (Sistem Operasi GNU / Linux) di Algonquin College :

Definisi basename: Basename dari setiap pathname adalah komponen paling kanan namanya, di sebelah kanan slash paling kanannya.

dan hal.1456 dari Panduan Praktis untuk Red Hat Linux 8 :

basename: Nama file yang, berbeda dengan nama path, tidak menyebutkan direktori yang berisi file (dan karenanya tidak mengandung garis miring [/]). Misalnya, hostsadalah nama dasar dari /etc/hosts.

Untungnya, GNU / Linux juga memiliki basenameperintah, yang dapat digunakan untuk mendapatkan nama samaran:

$ basename '/dev/sda'
sda
  • "nama disket kernel"

Istilah ini juga tampaknya menjadi jawaban yang valid, karena p.100 dari Linux Kernel pendeknya :

/dev/<diskname>

Gunakan nama disk kernel yang ditentukan oleh <diskname>sebagai disk root.

Secara kebetulan, "nama disket kernel" juga tampaknya menjadi terminologi yang valid dalam konteks Solaris :

Untuk versi perintah iostat ini, output menunjukkan statistik yang diperluas hanya untuk perangkat disk yang bukan aktivitas nol, dengan lintasan perangkat fisik alih-alih nama disk logis kernel (yaitu, c0t0d0alih-alih sd0).

sampablokuper
sumber
Ya, Anda dapat mengatakan basename ketika berbicara tentang pemisahan jalur, tetapi saya belum pernah melihat "basename" ketika berbicara tentang perangkat. "Nama" ya, "nama dasar" tidak. Tak satu pun dari tautan dalam pertanyaan Anda menggunakan istilah "nama kecil" atau "nama dasar"; apa yang Anda maksudkan bahwa sumber-sumber dalam dukungan pertanyaan menyebutnya sebagai nama kecil?
Peter Cordes
@PeterCordes, saya maksudkan bahwa string seperti /dev/sdadisebut oleh: BASENAME (1) sebagai "nama file"; DIRNAME (1) sebagai "nama file"; dokumen GNU Coreutils sebagai "nama"; & oleh FDISK (8) dan TLDP sebagai "nama perangkat". Jadi, tidak satu pun dari istilah - istilah itu yang dapat digunakan untuk merujuk pada komponen akhir dari string. Ergo, jika kita menginginkan istilah yang dapat digunakan untuk merujuk bagian string itu, maka kita harus menggunakan sesuatu yang lain. Sumber dalam jawaban saya, diambil bersama-sama, katakan bagian sebelum slash terakhir adalah "dirname", & bagian sesudahnya adalah "basename". Voa .
sampablokuper
Saya kira itu adil. Jika Anda mendokumentasikan sesuatu yang hanya dapat diterima sdadan tidak /dev/sda, Anda dapat menyebutnya "nama kecil". Atau Anda bisa menggunakan "nama" vs. "jalur" dalam dokumentasi itu dan memberikan contoh, seperti kebanyakan dokumentasi. Saya tidak berpikir ada istilah yang disepakati bersama selain "nama", meskipun beberapa dokumen menggunakan "nama" untuk memasukkan path lengkap.
Peter Cordes
0

"Semuanya adalah file" - jadi bukan sdahanya nama file, /devdirektori (dan string kosong ekstensi) dari perangkat yang disediakan melalui path lengkap /dev/sda, yang menurut konvensi adalah disk non-IDE pertama? Sama seperti passwdapakah nama file dan /etcdirektori file dapat diakses seperti /etc/passwdyang oleh konvensi berisi (ed) data kata sandi?

Hagen von Eitzen
sumber