Sürücü adı? “/ Dev / sda” nın “sda” kısmı için doğru terim nedir?


16

fdisk (8) diyor ki:

Cihaz genellikle / dev / sda, / dev / sdb ya da öyledir. Aygıt adı tüm diski belirtir. Libata içermeyen eski sistemler (ATA ana bilgisayar denetleyicilerini ve aygıtlarını desteklemek için Linux çekirdeğinin içinde kullanılan bir kütüphane) IDE ve SCSI diskleri arasında fark yaratır. Bu gibi durumlarda aygıt adı / dev / hd * (IDE) veya / dev / sd * (SCSI) olacaktır.

Bölüm, bir aygıt adı ve ardından bir bölüm numarasıdır. Örneğin, / dev / sda1 sistemdeki ilk sabit diskteki ilk bölümdür. Ayrıca bkz. Linux çekirdek belgeleri ( Documentation / Devices.txt dosyası).

Gibi Buna dayanarak, ben, Linux bağlamında bir dize anlıyoruz /dev/hdaveya /dev/sdabir "aygıt adı" dır. Aksi takdirde, ikinci cümle ben mantıklı değil yukarıda vurguladığım: yerine söyleyebilirim, " Örneğin, sda1 sisteminde ilk sabit diskteki ilk bölümdür. "

Bu görüş, Linux Partition NASIL belgesiyle desteklenmektedir :

Geleneksel olarak, IDE sürücülerine / dev / hda / dev / hdd aygıt adları verilecektir .

Alt dize hdaveya sdaböyle bir aygıt adı için teknik olarak doğru (ve tercihen açık ve özlü) bir İngilizce terim var mı? Örneğin, bu durumda sdasürücünün çağrılması doğru olur mu?

  • "Kısa isim"; veya
  • "niteliksiz aygıt adı"; veya
  • başka bir şey?

(Ortak kullanımda olsalar bile, teknik olarak yanlış olan konuşma dilleri istemiyorum.)


3
Disk aygıtının tam yol adını kullanmayan tek komut olan dkinfo'nun man sayfası olan FWIW buna "disk adı" adını veriyor.
Mark Plotnick

@MarkPlotnick, teşekkürler, ancak bu soru Linux veya GNU / Linux hakkında, diğer işletim sistemleri hakkında değil. Bu nedenle, dkinfoLinux veya GNU / Linux'un bir parçası olmayan (ancak SunOS'un bir parçası olan ) kapsam dışı, üzgünüm.
sampablokuper

Yanıtlar:


25

sdacihaz adıdır . /dev/sdacihaz yoludur .

Düşünün /sbin/fdisk, fdiskdosya adı iken, /sbin/fdiskdosya yolu .


5
Her ne kadar bunun birkaç anlamı olduğu gibi "cihaz yolu" ile dikkatli olmak zorunda ...
derobert

1
Teşekkürler :) "sda aygıt adı. / Dev / sda aygıt yolu." Bu da benim ilk görüşümdü, çünkü verdiğiniz sebepten ötürü, ancak sorumun alıntıladığı util-linux fdisk man sayfasının alıntısının yakından okunmasıyla desteklenmiyor. (Şimdi bunu daha iyi vurgulamak için soruyu düzenledim.) Bu yüzden burada SE ile ilgili soruyu soruyorum. Not: Bu, cevabınızın yanlış olduğu anlamına gelmez - belki de man sayfasının bir kısmı sloppily yazılmıştır? - bu sadece cevabınızın ve util-linux fdisk man sayfasının şüpheli olduğu anlamına gelir. Cevabınızı doğrulayacak herhangi bir kaynağınız var mı? Tekrar teşekkürler :)
sampablokuper

6
/dev/sdablok cihazının yolu, ancak gerçek cihaz yolu şöyle bir şey olurdu/devices/pci0000:00/0000:00:17.0/ata2/host1/target1:0:0/1:0:0:0/block/sda
Dietrich Epp

2
@jiggunjer: mountAynı zamanda bir aygıt sürücüsünü bir dosya sistemi olarak bazı RAM'leri (birim değil) eşlemeye yönlendirir --bind, dosya ağacının bir kısmını alt ağaç vb. parçalarına erişmek veya bu parçaları çıkarmak için birden fazla cilde sahip olan şeyler. Kısacası, mountbirçok şey yapabilir , ancak en tipik olanı bir dosya sisteminin dosya ağacında bir yerde görünmesini sağlamaktır.
wallyk

1
@jiggunjer Bence bir dosya sistemi formatı anlamına gelebilir, ki bu genellikle bir dosya olarak adlandırılan bir formatı örneklemek için kullanılan bir formatın örneğiyle aynı değildir. Bu teknik olarak yanlış olsa bile, insanların dosya sistemi ile kasteddikleri budur. Bir birim olarak bir dosya sistemi biçiminin somutlaştırılmasını hak eden herkesle tanışmadım. Konuyla ilgili okuduğum kitapların hiçbiri "birim" kelimesini "dosya sistemi" (her iki anlamda) anlamında kullanmamıştır.
Daha net

6

sdaParçası /dev/sdasizin bakış bağlı olarak birkaç şeyi temsil edebilir:

  1. Dosya adı
    Genel olarak, bir diskse, bir blok cihaz olan bir dosyanın adıdır , bu nedenle bir cihaz adıdır.

    Kök olarak:

    $ 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. Disk adları
    sda, diske bir ad veren dizedir (sda1, sda2, sdX vb. Bölümlerden farklıdır). Genellikle udev tarafından uygulanan cihaz kurallarına göre oluşturulur.

  3. Dizin yolu
    sda, yolun temel adıdır/dev/sda


Disk adlarıyla ilgili yorumlarla sınırlıdır:

Eski zamanlarda: sda, SCSI diskinin aygıt adı idi .

Aynı kütüphane SATA sürücülerine genişlediğinden, şimdi çağrılması gerektiğini düşünüyorum:

device name: SATA/SCSI/SAS disk a

Ya da sadece:

device name: first SATA/SCSI/SAS disk

3

Öyle çekirdek tarafından oluşturulan blok disk / bölüm aygıt adı :

sdaçekirdek tarafından oluşturulan bir disk adıdır . Dolgu (SATA diskler için kullanmak çok uygun olması oldu SCSI yığını dahil) Çekirdek sürücüleri disk_namealanında gendiskyapısına (SCSI yani: sürücüleri / scsi / sd.c # L3338 ) oluşturmak için sdaadı.

Bu ad daha sonra /dev, /sysve öğelerinde karşılık gelen blok cihazın adı olarak kullanılır /proc/{partitions,diskstats}. Bununla birlikte, procfs için manuel olarak bölüm adı ( proc (5) ) ve disk istatistikleriyle ilgili belgeler buna aygıt adı ( iostats.txt ) adını verir .


İlginç, sanırım sdave /dev/sdadeğiştirilebilir ve her ikisi de bir cihaz adı olarak adlandırılır. Sanırım bunun nedeni (normal bir sistemde) bağlandığınız devfsiçin /dev, adlar gibi sdayollara dönüşüyor /dev/sda(ad da diyebilirsiniz).
Peter Cordes

1

Linux / Unix'te her şey bir dosyadır. Cihaz bir dosya olarak temsil edilir. / Dev konumunda bulunan tüm cihaz türü dosyası. Yani sda bir blok cihaz tipi özel dosyadır.

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

Not : burada x bir değişkendir. x, sabit diskin konumunu temsil eder.

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

Şimdi sd'de *

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) diskler bile sd*bazı sürücülerle mi, yoksa her zaman modern çekirdeklerle mi ad alıyor? Unutmayın, PATA ve modern bir çekirdeğe sahip aktif bir makinem yok.
Peter Cordes

2
Cevap için teşekkürler, ama sordum soruyu ele almak görünmüyor :( ben böyle bir bağlamda anlamak /dev/sda, sdabir dosya olduğunu ve ayrıca dosya neyi temsil ettiğini anlıyoruz. Sorum ne hakkındaydı çağrı alt dize sdave dizeleri gibi, sözlü olarak onlara atıfta
bulunurken

1
@PeterCordes bir süredir openSUSE Leap 42.2 kullanıyor, IDE PATA sürücülerinin hem sabit hem de optik olduğunu, sdXadları aldığını ve SATA ve SUB ile de karıştığını doğrulayabilirim .
user207673

1

En az iki geçerli cevap var gibi görünüyor

  1. sdasürücünün doğru şekilde "taban adı " olarak adlandırılabilir .

  2. sdaayrıca sürücünün "çekirdek disk adı" olarak da adlandırılabilir .

Bu sonuca nasıl ulaştınız?

Makul adayların her birinin ortadan kaldırılması süreci ile:

  • "cihaz adı"

Bu doğru terim olamaz. Orijinal soruda belirtildiği gibi , nihai parçaya (örneğin ) değil , tam nitelikli isme (örn. /dev/sda) Atıfta bulunur sda.

Doğrulayacak kanıtlar gibi ek kaynaklardan bulunmaktadır s.68 arasında SUSE Linux Enterprise Server 12 Definitive Guide :

Ayrıca aygıt adını (örneğin /dev/sdb1) temel alan bir bağlantı parçası kullanmayı da seçebilirsiniz …

ve s.94 ait Linux İncil 2008 baskısında :

Cihaz sekmesine tıklayın ve cihazın adını yazın (örneğin /dev/cdrom)…

  • "dosya adı" veya "dosya adı"

Bu, teknik belgede , yalnızca son fragmanın değil (örn. ) Tam nitelikli adın eş anlamlısı olarak kullanıldığından (ör. /dev/sda) Doğru terim olamaz sda:

TEMEL ADI (1) :

basename - dosya dizinden şerit dizini ve son eki

DIRNAME (1) :

dirname - dosya adındaki son bileşeni soy

  • "Name"

Bu, teknik belgede , yalnızca son fragmanın değil (örn. ) Tam nitelikli adın eş anlamlısı olarak kullanıldığından (ör. /dev/sda) Doğru terim olamaz sda:

GNU Coreutils: basename çağırma :

basenameherhangi lider dizin bileşenleri kaldırır isim .

GNU Coreutils: dirname çağırma :

dirnameher ismin son eğik çizgi ile ayrılmış bileşeni dışındaki her şeyi yazdırır .

  • "kısa ad" veya "kısa ad"

Bu da doğru terim olamaz. Aygıt adının son bölümüne "kısa ad" veya "kısa ad" olarak başvuran herhangi bir teknik belge bulamıyorum. Bu terimler Linux veya GNU içinde, sadece iki bağlamında, kullanılacak gibi görünüyor VFAT montaj seçenekleri veya ana bilgisayar adlarını üzerinde ağlar .

  • "Basename"

Bu terim dayalı geçerli bir cevap gibi görünen s.149 arasında Red Hat Linux 7 Kurulumu :

Bölümlemeyi planladığınız diskin taban adının listelenmediğinden kesinlikle emin olun (bu, hdbeklediğim sürücüde).

ve Algonquin College'daki CST8207 (GNU / Linux İşletim Sistemleri) ders notları :

Taban adının tanımı: Herhangi bir yol adının taban adı, en sağdaki eğik çizginin sağındaki en sağdaki ad bileşenidir.

ve p.1456 ait Red Hat Linux 8 İçin Pratik Kılavuz :

basename: Bir yol adının aksine, dosyayı içeren dizinlerden hiçbirini belirtmeyen (ve bu nedenle eğik çizgi [/] içermeyen) bir dosyanın adı. Örneğin, hoststemel adıdır /etc/hosts.

Ne mutlu ki, GNU / Linux da temel adı basenameelde etmek için kullanılabilecek bir komuta sahiptir :

$ basename '/dev/sda'
sda
  • "çekirdek disk adı"

Bu terim aynı zamanda nedeniyle, geçerli bir cevap gibi görünen s.100 ait Ceviz Kabuğundaki Linux Kernel :

/dev/<diskname>

<diskname>Kök disk olarak belirtilen çekirdek disk adını kullanın .

Bu arada, "çekirdek disk adı" da Solaris bağlamında geçerli bir terminoloji gibi görünmektedir :

İostat komutunun bu sürümü için, çıktıda fiziksel aygıt yolu yerine mantıksal çekirdek disk adı ile sıfır olmayan bir aktivitesi olan sadece bu disk aygıtları için istatistik uzatılmış (olup, c0t0d0yerine sd0).


Evet, yolları bölme hakkında konuşurken taban adı diyebilirsiniz, ancak cihazlar hakkında konuşurken "taban adı" görmedim. "Ad" evet, "temel ad" hayır. Sorunuzdaki bağlantılardan hiçbiri "taban adı" veya "taban adı" terimini kullanmıyor; sorudaki kaynakların ona temel adı adını vermesini desteklediniz ne demek istediniz?
Peter Cordes

@PeterCordes, demek istediğim gibi dizeler /dev/sdaBASENAME (1) tarafından "dosya adları" olarak adlandırılır; DIRNAME (1) "dosya adları" olarak; GNU Coreutils belgeleri "adlar" olarak; & FDISK (8) ve TLDP tarafından "cihaz adları" olarak belirtilmiştir. Bu nedenle, bu terimlerin hiçbiri , dizenin yalnızca son eğik çizgi ile ayrılmış bileşenine atıfta bulunmak için açıkça kullanılamaz. Ergo, biz bir terim istiyorsanız edebilirsiniz açık bir şekilde dize bu bölümüne başvurmak için kullanılabilir, o zaman başka bir şey kullanmak gerekir. Cevabımdaki kaynaklar birlikte ele alındığında, son eğik çizgiden önceki bölümün "dirname" olduğunu ve sonraki bölümün "basename" olduğunu söylüyor. Voilà .
sampablokuper

Sanırım bu adil. Yalnızca kabul edilen sdave kabul etmeyen bir şeyi belgeliyorsanız /dev/sda, buna "taban adı" diyebilirsiniz. Ya da sadece bu belgede "ad" ve "yol" u kullanabilir ve çoğu belgede olduğu gibi bir örnek verebilirsiniz. Bazı belgeler tam yolu eklemek için "ad" kullanmasına rağmen, "ad" dışında yaygın olarak kabul edilen bir terim olduğunu düşünmüyorum.
Peter Cordes

0

"Her şey bir dosyadır" - yani, tam yolla kullanıma sunulan aygıtın sdabasitçe dosya adı, /devdizini (ve uzantısı boş dizesi) değildir /dev/sda, bu kural gereği ilk IDE olmayan disktir? Tıpkı passwddosya adı ve olduğu /etckadar erişilebilir dosyanın dizin /etc/passwdkongre içerirler (ed) şifre verileri tarafından o?

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.