Назва диска? Який правильний термін для "sda" частини "/ dev / sda"?


16

fdisk (8) говорить:

Пристрій зазвичай / dev / sda, / dev / sdb або близько того. Назва пристрою відноситься до всього диска. Старі системи без лібатів (бібліотека, яка використовується всередині ядра Linux для підтримки контролерів хостів ATA та пристроїв) мають різницю між дисками IDE та SCSI. У таких випадках ім'я пристрою буде / dev / hd * (IDE) або / dev / sd * (SCSI).

Розділ - це ім'я пристрою, а за ним номер номера. Наприклад, / dev / sda1 - це перший розділ на першому жорсткому диску в системі. Дивіться також документацію ядра Linux ( файл Documentation / devices.txt ).

Виходячи з цього, я розумію, що в контексті Linux, рядок, як /dev/hdaабо /dev/sdaє "ім'я пристрою". Інакше друге речення, яке я наголосив вище, не має сенсу: замість цього було б сказати: " Наприклад, sda1 - це перший розділ на першому жорсткому диску в системі ".

Цей погляд підтверджується розділом Linux HOWTO :

За умовою, IDE-накопичувачам надаватимуться назви пристроїв / dev / hda до / dev / hdd .

Чи є технічно правильний (і, бажано, однозначний і стислий) англійський термін для підрядка hdaабо sdaтакої назви пристрою? Наприклад, чи було б правильним в цьому випадку викликати sdaдиски:

  • "коротке ім'я"; або
  • "некваліфікована назва пристрою"; або
  • щось ще?

(Я не прошу розмов, які технічно є некоректними, навіть якщо вони є загальними.)


3
FWIW, головна сторінка для dkinfo , яка є єдиною командою, з якою я стикався, яка не використовує повне ім'я дискового пристрою, називає його "ім'ям диска".
Марк Плотнік

@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, процитованого в моєму запитанні. (Я зараз відредагував питання, щоб краще наголосити на цьому.) Звідси моє запитання про цю справу тут, на SE. NB Це не означає, що ваша відповідь неправильна - можливо, та частина чоловічої сторінки була написана неохайно? - це просто означає, що ваша відповідь та сторінка man-fdisk util-linux здаються розбіжними. Чи є у вас джерела для підтвердження вашої відповіді? Ще раз дякую :)
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можна зробити багато речей, але найбільш типовим є створення файлової системи десь у дереві файлів.
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 диска a .

Оскільки ця бібліотека поширилася на диски 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(які можна також називати ім'я).
Пітер Кордес

1

У Linux / Unix все є файлом. Пристрій представляє як файл. Усі файли типу пристрою, що знаходяться у / dev location. Отже 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 Leap 42.2, я можу підтвердити, що накопичувачі IDE PATA, як жорсткі, так і оптичні, отримують sdXімена, а також перемішуються з SATA та SUB.
користувач207673

1

Здається, щонайменше дві достовірні відповіді

  1. sdaможна правильно назвати "базовим іменем" для накопичувача.

  2. sdaтакож можна правильно назвати "ім'я диска ядра" для накопичувача.

Як ти дійшов такого висновку?

У процесі усунення кожного з правдоподібних кандидатів:

  • "Ім'я пристрою"

Це не може бути правильним терміном. Як зазначено в оригінальному запитанні , воно стосується повністю кваліфікованого імені (наприклад /dev/sda), а не остаточного фрагмента (наприклад sda).

Підкріплюють докази існують в додаткових джерелах, такі як стор.68 з Повного керівництва по SUSE Linux Enterprise Server 12 :

Ви також можете використовувати… кріплення, яке базується на назві пристрою (наприклад /dev/sdb1)…

та стор.94 видання Linux Bible 2008 :

Перейдіть на вкладку Пристрій і введіть назву пристрою (наприклад /dev/cdrom)…

  • "ім'я файлу" або "ім'я файлу"

Це також не може бути правильним терміном, оскільки він використовується в технічній документації як синонім повноцінного імені (наприклад /dev/sda), а не лише остаточного фрагмента (наприклад sda):

BASENAME (1) :

basename - смуговий каталог та суфікс із назви файлів

DIRNAME (1) :

dirname - зніміть останній компонент з імені файлу

  • "ім'я"

Це також не може бути правильним терміном, оскільки він використовується в технічній документації як синонім повноцінного імені (наприклад /dev/sda), а не лише остаточного фрагмента (наприклад sda):

GNU Coreutils: виклик базової назви :

basenameвидаляє будь-які провідні компоненти каталогу з імені .

GNU Coreutils: виклик dirname :

dirnameдрукує всі, окрім остаточного компонента, накресленого косою рисою кожного імені .

  • "коротке ім'я" або "коротка назва"

Це також не може бути правильним терміном. Я не можу знайти жодної технічної документації, яка стосується останньої частини імені пристрою як "коротке ім'я" або "коротке ім'я". Ці терміни, здається, використовуються в Linux або GNU, лише в контексті або параметрів монтажу VFAT , або імен хостів у мережах .

  • "базове ім'я"

Цей термін , як видається, дійсний відповідь, заснований на стр.149 з Установка Red Hat Linux 7 :

Переконайтесь, що базове ім’я диска, який ви плануєте розділити, не вказане (це стосується hdbдоданого я диска).

та конспекти курсу CST8207 (операційні системи GNU / Linux) в коледжі Algonquin :

Визначення базового імені: Базове ім'я будь-якого імені шляху є його правою частиною найменування праворуч, праворуч від його найбільш правої косої риски.

і p.1456 з Практичного керівництва по Red Hat Linux 8 :

basename: ім'я файлу, який, на відміну від імені шляху, не згадує жодного з каталогів, що містять файл (і, отже, не містить косої риски [/]). Наприклад, hostsє базовою назвою /etc/hosts.

На щастя, GNU / Linux також має basenameкоманду, яку можна використовувати для отримання базового імені:

$ basename '/dev/sda'
sda
  • "ім'я диска ядра"

Цей термін також представляється дійсний відповідь, з - за стор.100 з ядра Linux в горіховій шкаралупі :

/dev/<diskname>

Використовуйте ім'я диска ядра, вказане <diskname>як кореневий диск.

Між іншим, "ім'я диска ядра" також є дійсною термінологією в контексті Solaris :

Для цієї версії команди iostat, вихід показує розширену статистику лише для тих дискових пристроїв, які мають ненульову активність, фізичним шляхом пристрою замість імені диска логічного ядра (тобто c0t0d0замість sd0).


Так, ви можете сказати базове ім'я, коли говорити про розбиття шляхів, але я ніколи не бачив "базове ім'я", коли говорив про пристрої. "Ім'я" так, "базове ім'я" немає. Жодне із посилань у вашому запитанні не використовує термін "базове ім'я" або "базова назва"; що ви мали на увазі, що джерела у питанні підтримують його, називаючи базовим іменем?
Пітер Кордес

@PeterCordes, я мав на увазі, що рядки типу /dev/sda: BASENAME (1) називаються "іменами файлів"; DIRNAME (1) як "назви файлів"; GNU Coreutils документує як "імена"; & за FDISK (8) та TLDP як "назви пристроїв". Отже, жоден із цих термінів ніколи не може бути однозначно використаний для позначення лише остаточного розрізненого компонента рядка. Ерго, якщо ми хочемо, щоб термін, який може бути використаний для однозначного посилання на цю частину рядка, тоді ми повинні використовувати щось інше. Джерела в моїй відповіді, взяті разом, кажуть, що частина перед остаточною косою рисою є "dirname", а частина після - "basename". Voilà .
sampablokuper

Я думаю, це справедливо. Якщо ви документували щось, що тільки прийняте, sdaа ні /dev/sda, ви можете назвати це "базовим іменем". Або ви можете просто використовувати "ім'я" проти "шлях" у цій документації та навести приклад, як це робить більшість документації. Я не думаю, що існує загально узгоджений термін, крім "ім'я", хоча деякі документи використовують "ім'я" для включення повного шляху.
Пітер Кордес

0

"Все є файлом" - тож чи не sdaпросто ім'я файлу, /devкаталог (і порожній рядок розширення) пристрою доступні через повний шлях /dev/sda, який за умовою є першим диском без IDE? Так само, як passwdім'я файлу та /etcкаталог файлу доступні, оскільки /etc/passwdце умовно містить (ed) дані пароля?

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.