Nazwa napędu? Jaki jest poprawny termin na część „sda” w „/ dev / sda”?

16

fdisk (8) mówi:

Urządzeniem jest zwykle / dev / sda, / dev / sdb lub tak. Nazwa urządzenia odnosi się do całego dysku. Stare systemy bez libata (biblioteka używana w jądrze Linuksa do obsługi kontrolerów hosta ATA i urządzeń) różnicują dyski IDE i SCSI. W takich przypadkach nazwą urządzenia będzie / dev / hd * (IDE) lub / dev / sd * (SCSI).

Partycja to nazwa urządzenia, po której następuje numer partycji. Na przykład / dev / sda1 jest pierwszą partycją na pierwszym dysku twardym w systemie. Zobacz także dokumentację jądra Linux ( plik Documentation / devices.txt ).

Na tej podstawie rozumiem, że w kontekście Linuksa ciąg podobny do /dev/hdalub /dev/sdajest „nazwą urządzenia”. W przeciwnym razie drugie zdanie, które podkreśliłem powyżej, nie ma sensu: zamiast tego powiedziałoby: „ Na przykład sda1 jest pierwszą partycją na pierwszym dysku twardym w systemie ”.

Ten widok jest poparty przez Linux Partition HOWTO :

Zgodnie z konwencją dyski IDE otrzymają nazwy urządzeń / dev / hda do / dev / hdd .

Czy istnieje technicznie poprawny (a najlepiej jednoznaczny i zwięzły) angielski termin na podciąg hdalub sdanazwę takiego urządzenia? Na przykład, czy w tym przypadku poprawne byłoby wywołanie sdanapędu:

  • "krótkie imię"; lub
  • „niekwalifikowana nazwa urządzenia”; lub
  • coś innego?

(Nie proszę o potoczne, które są technicznie niepoprawne, nawet jeśli są w powszechnym użyciu).

sampablokuper
źródło
3
FWIW, strona podręcznika użytkownika dla dkinfo , która jest jedynym poleceniem, które napotkałem i które nie używa pełnej nazwy ścieżki urządzenia dyskowego, nazywa ją „nazwą dysku”.
Mark Plotnick,
@MarkPlotnick, dzięki, ale to pytanie dotyczy Linuksa lub GNU / Linuksa, a nie innych systemów operacyjnych. Jako taki, dkinfoktóry nie jest częścią Linuksa lub GNU / Linuksa (ale zamiast tego jest częścią SunOS ), jest poza zasięgiem, przepraszam.
sampablokuper

Odpowiedzi:

25

sdato nazwa urządzenia . /dev/sdato ścieżka urządzenia .

Pomyśl /sbin/fdisk, fdiskto nazwa pliku , a ścieżka/sbin/fdisk pliku .

użytkownik207673
źródło
5
Chociaż trzeba uważać na „ścieżkę urządzenia”, ponieważ istnieje kilka znaczeń tego ...
derobert
1
Dzięki :) „sda to nazwa urządzenia. / Dev / sda to ścieżka urządzenia.” To był mój początkowy pogląd, z podanego przez ciebie powodu, ale nie jest on wspierany przez dokładne czytanie fragmentu strony podręcznika użytkownika programu użytkowego util-linux cytowanego w moim pytaniu. (Teraz zredagowałem pytanie, aby lepiej to podkreślić). Stąd moje pytanie o tę kwestię tutaj na SE. Uwaga: To nie znaczy, że twoja odpowiedź jest zła - może ta część strony podręcznika została napisana niechlujnie? - oznacza to po prostu, że twoja odpowiedź i strona podręcznika użytkownika dla fdisk użytkownika util-linux wydają się być sprzeczne. Czy masz jakieś źródła potwierdzające twoją odpowiedź?
Jeszcze
6
/dev/sdajest ścieżką do urządzenia blokowego, ale rzeczywista ścieżka urządzenia byłaby czymś w rodzaju/devices/pci0000:00/0000:00:17.0/ata2/host1/target1:0:0/1:0:0:0/block/sda
Dietrich Epp
2
@jiggunjer: Ale mountkieruje również sterownikiem urządzenia do mapowania pamięci RAM (nie woluminu) jako systemu plików, może --bindfragmentu drzewa plików jako poddrzewa itp. Ponadto, zamontowanie „dysku” RAID może być użyteczne i / lub dziwaczne rzeczy z wieloma woluminami, aby uzyskać dostęp lub dostęp do części. Krótko mówiąc, mountpotrafi wiele rzeczy, ale najbardziej typowym jest pojawienie się systemu plików gdzieś w drzewie plików.
wallyk
1
@ jiggunjer Myślę, że możesz mieć na myśli format systemu plików, który nie jest taki sam, jak utworzenie takiego formatu, który jest zwykle określany jako system plików, który nazywasz woluminem. Nawet jeśli jest to technicznie niepoprawne, to właśnie ludzie rozumieją przez system plików. Nie spotkałem jeszcze nikogo, kto odnosi się do utworzenia formatu systemu plików jako woluminu. Żadna z książek, które przeczytałem na ten temat, nigdy nie używała słowa „wolumin” w znaczeniu „system plików” (w żadnym z tych znaczeń).
Jaśniejsze
6

sdaCzęść /dev/sdamoże oznaczać kilka rzeczy w zależności od punktu widzenia:

  1. Nazwa pliku
    Zasadniczo jest to nazwa pliku, który, jeśli jest dyskiem, jest urządzeniem blokowym , a zatem nazwą urządzenia

    Jako 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. Nazwy dysków
    sdato ciąg, który nadaje nazwę dyskowi (inny niż partycje sda1, sda2, sdX itp.). Zwykle jest generowany przez udev na podstawie zastosowanych reguł urządzenia.

  3. Ścieżka do katalogu
    sdato podstawowa nazwa ścieżki/dev/sda


Ograniczone do interpretacji związanej z nazwami dysków:

W dawnych czasach: sda była nazwą urządzenia dysku SCSI a .

Ponieważ ta sama biblioteka została rozszerzona na dyski SATA, myślę, że teraz powinna się nazywać:

device name: SATA/SCSI/SAS disk a

Lub po prostu:

device name: first SATA/SCSI/SAS disk
Strzałka
źródło
3

Jest to nazwa dysku / partycji blokowej generowanej przez jądro :

sdato nazwa dysku generowana przez jądro. Sterowniki jądra (w tym stos SCSI, który okazał się bardzo wygodny w użyciu dla dysków SATA) wypełniają disk_namepole gendiskstruktury (tj. Dla SCSI: drivers / scsi / sd.c # L3338 ), aby wygenerować sdanazwę.

Ta nazwa jest później używana jako nazwa odpowiedniego urządzenia blokowego w /dev, /sysi /proc/{partitions,diskstats}. Jednak instrukcja dla procfs nazywa ją nazwa partycji ( proc (5) ), a dokumentacja statystyk dysku nazywa ją nazwą urządzenia ( iostats.txt ).

myaut
źródło
Sądzę, że ciekawe sdai /dev/sdasą wymienne, i oba nazywane są nazwą urządzenia. Myślę, że to dlatego, że (w normalnym systemie) zamontować devfsna /dev, tak jak nazwy sdakolei w ścieżkach, jak /dev/sda(które można również połączyć się z nazwy).
Peter Cordes,
1

W Linux / Unix wszystko jest plikiem. Urządzenie reprezentuje jako plik. Cały plik typu urządzenia znajduje się w lokalizacji / dev. Tak więc sda jest plikiem specjalnym typu urządzenia blokowego.

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

Uwaga : gdzie x jest zmienną. x oznacza pozycję dysku twardego.

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

Teraz w 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
źródło
IIRC, nawet dyski IDE (PATA) otrzymują sd*nazwy z niektórymi sterownikami, czy zawsze z nowoczesnymi jądrami? Zapominam, że nie mam żadnych aktywnych maszyn z PATA i nowoczesnym jądrem.
Peter Cordes,
2
Dzięki za odpowiedź, ale nie wydaje się, aby odpowiedzieć na pytanie zadałem :( Rozumiem, że w kontekście takim jak /dev/sda, sdajest plikiem, a ja również zrozumieć, co oznacza plik. Moje pytanie było o tym, co nazywamy podciąg sdai smyczki podoba się to, gdy się do nich odnosi ustnie
sampablokuper,
1
@PeterCordes od jakiegoś czasu używa openSUSE Leap 42.2, mogę potwierdzić, że dyski IDE PATA, zarówno twarde, jak i optyczne, otrzymują sdXnazwy i są również powiązane z SATA i SUB.
user207673,
1

Wydaje się, że są co najmniej dwie prawidłowe odpowiedzi

  1. sdamoże być poprawnie nazwany „basename” dla dysku.

  2. sdamożna również poprawnie nazwać „nazwą dysku jądra” dla napędu.

Jak doszedłeś do tego wniosku?

Poprzez proces eliminacji na każdym z prawdopodobnych kandydatów:

  • "Nazwa urządzenia"

To nie może być poprawny termin. Jak zauważono w pierwotnym pytaniu , odnosi się do w pełni kwalifikowanej nazwy (np. /dev/sda), A nie do końcowego fragmentu (np sda.).

Potwierdzające dowody dodatkowych źródeł, takich jak str.68 of The Definitive Guide to SUSE Linux Enterprise Server 12 :

Możesz także użyć… uchwytu opartego na nazwie urządzenia (np. /dev/sdb1)…

oraz str. 94 wydania Linux Bible 2008 Edition :

Kliknij kartę Urządzenie i wpisz nazwę urządzenia (np. /dev/cdrom)…

  • „nazwa pliku” lub „nazwa pliku”

Nie może to być również poprawny termin, ponieważ jest używany w dokumentacji technicznej jako synonim pełnej nazwy (np. /dev/sda), A nie tylko końcowego fragmentu (np. sda):

BASENAME (1) :

basename - usuwa katalog i sufiks z nazw plików

DIRNAME (1) :

dirname - usuń ostatni składnik z nazwy pliku

  • "Nazwa"

Nie może to być również poprawny termin, ponieważ jest używany w dokumentacji technicznej jako synonim pełnej nazwy (np. /dev/sda), A nie tylko końcowego fragmentu (np. sda):

GNU Coreutils: wywołanie nazwy basename :

basenameusuwa wszystkie wiodące komponenty katalogu z nazwy .

GNU Coreutils: wywołanie dirname :

dirnamedrukuje wszystkie oprócz ostatecznego rozdzielanego ukośnikiem składnika dla każdej nazwy .

  • „krótka nazwa” lub „krótka nazwa”

To też nie może być poprawny termin. Nie mogę znaleźć żadnej dokumentacji technicznej, która odwoływałaby się do ostatniej części nazwy urządzenia jako „krótka nazwa” lub „krótka nazwa”. Terminy te wydają się być używane w Linuksie lub GNU tylko w kontekście opcji montowania VFAT lub nazw hostów w sieci .

  • „basename”

Termin ten wydaje się być ważna odpowiedź, oparta na str.149 z Instalacja Red Hat Linux 7 :

Upewnij się absolutnie, że nazwa dysku dysku, który chcesz podzielić na partycje, nie znajduje się na liście (dotyczy to hdbdodanego dysku).

oraz notatki z kursu dla CST8207 (GNU / Linux Operating Systems) w Algonquin College :

Definicja basename: basename dowolnej ścieżki jest jej prawym składnikiem nazwy, na prawo od jej ukośnika.

i p.1456 stanowi praktyczny przewodnik Red Hat Linux 8 :

basename: nazwa pliku, który w przeciwieństwie do nazwy ścieżki nie wspomina o żadnym katalogu zawierającym plik (a zatem nie zawiera żadnych ukośników [/]). Na przykład hostsjest nazwą bazową /etc/hosts.

Na szczęście GNU / Linux ma również basenamepolecenie, którego można użyć do uzyskania nazwy basename:

$ basename '/dev/sda'
sda
  • „nazwa dysku jądra”

Termin ten wydaje się również być ważna odpowiedź, ze względu na str.100 z jądra Linux w pigułce :

/dev/<diskname>

Użyj nazwy dysku jądra określonej przez <diskname>jako dysk główny.

Nawiasem mówiąc, „nazwa dysku jądra” wydaje się być poprawną terminologią w kontekście systemu Solaris :

W przypadku tej wersji polecenia iostat dane wyjściowe pokazują rozszerzone statystyki tylko dla tych urządzeń dyskowych o niezerowej aktywności, według fizycznej ścieżki urządzenia zamiast logicznej nazwy dysku jądra (to znaczy c0t0d0zamiast sd0).

sampablokuper
źródło
Tak, możesz powiedzieć basename, kiedy mówisz o dzieleniu ścieżek, ale nigdy nie widziałem „basename”, kiedy mówię o urządzeniach. „Nazwa” tak, „nazwa bazowa” nie. Żaden z linków w twoim pytaniu nie używa terminu „basename” lub „nazwa bazowa”; co miałeś na myśli mówiąc, że źródła w pytaniu wspierają nazywanie go nazwą basename?
Peter Cordes,
@PeterCordes, miałem na myśli, że takie ciągi znaków /dev/sdasą określane przez: BASENAME (1) jako „nazwy plików”; DIRNAME (1) jako „nazwy plików”; dokumentacja GNU Coreutils jako „nazwy”; oraz przez FDISK (8) i TLDP jako „nazwy urządzeń”. Tak więc żadne z tych terminów nie może być nigdy użyte jednoznacznie w odniesieniu do końcowego składnika łańcucha rozdzielanego ukośnikiem. Ergo, jeśli chcemy terminu, którego można użyć do jednoznacznego odniesienia do tej części łańcucha, musimy użyć czegoś innego. Źródła w mojej odpowiedzi, razem wzięte, mówią, że część przed ostatecznym ukośnikiem to „nazwa katalogu”, a część następna to „basename”. Voilà .
sampablokuper 17.09.17
Myślę, że to sprawiedliwe. Jeśli dokumentujesz coś, co tylko akceptuje, sdaa nie /dev/sda, możesz nazwać to „basename”. Możesz też użyć po prostu „nazwa” vs. „ścieżka” w tej dokumentacji i podać przykład, jak większość dokumentacji. Nie sądzę, aby istniał powszechnie uzgodniony termin inny niż „imię”, nawet jeśli niektóre dokumenty używają słowa „imię”, aby podać pełną ścieżkę.
Peter Cordes,
0

„Wszystko jest plikiem” - więc sdaczy zwykła nazwa pliku, /devkatalog (a pusty ciąg nie jest rozszerzeniem) urządzenia są udostępniane za pośrednictwem pełnej ścieżki /dev/sda, która zgodnie z konwencją jest pierwszym dyskiem innym niż IDE? Czy passwdnazwa pliku i /etckatalog pliku są dostępne, ponieważ /etc/passwdzgodnie z konwencją zawierają (ed) dane hasła?

Hagen von Eitzen
źródło