驱动器名称?“/dev/sda”的“sda”部分的正确术语是什么?

17 linux gnu terminology

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 到 /dev/hdd

对于子字符串hdasda这样的设备名称,是否有技术上正确的(最好是明确和简洁的)英文术语?例如,在这种情况下调用sda驱动器是否正确:

  • “简称”; 或者
  • “不合格的设备名称”;或者
  • 还有什么?

(我不是要求使用技术上不正确的口语,即使它们很常用。)

Chi*_*aba 26

sda是设备名称/dev/sda是设备路径

想想/sbin/fdiskfdisk是文件/sbin/fdisk而是文件路径

  • `/dev/sda` 是块设备的路径,但实际的 *device path* 类似于 `/devices/pci0000:00/0000:00:17.0/ata2/host1/target1:0:0/1 :0:0:0/块/sda` (7认同)
  • 尽管您必须小心“设备路径”,因为它有多种含义...... (5认同)
  • @jiggunjer:但是`mount`也指示设备驱动程序将一些RAM(不是卷)映射为文件系统,可以`--bind`文件树的一部分作为子树等。此外,安装RAID“磁盘" 可以用多个卷来做有用和/或奇怪的事情来访问或取消访问其中的一部分。简而言之,`mount` 可以做很多事情,但最典型的是让文件系统出现在文件树的某个地方。 (3认同)

ImH*_*ere 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
    
    Run Code Online (Sandbox Code Playgroud)
  2. 磁盘名称
    sda是为磁盘命名的字符串(不同于分区 sda1、sda2、sdX 等)。它通常由 udev 根据应用的设备规则生成。

  3. 目录路径
    sda是路径的基本名称/dev/sda


仅限于与磁盘名称相关的解释:

在过去: sda 曾经是SCSI 磁盘 a的设备名称。

随着同一个库扩展到 SATA 驱动器,我想现在应该调用它:

device name: SATA/SCSI/SAS disk a
Run Code Online (Sandbox Code Playgroud)

或者干脆:

device name: first SATA/SCSI/SAS disk
Run Code Online (Sandbox Code Playgroud)


小智 0

似乎至少有两个有效答案

  1. sda可以正确地称为驱动器的“基本名称” 。

  2. sda也可以正确地称为驱动器的“内核磁盘名称” 。

你是如何得出这个结论的?

通过对每个看似合理的候选者的排除过程:

  • “设备名称”

这不可能是正确的术语。正如原始问题中所述,它指的是完全限定名称(例如/dev/sda),而不是最终片段(例如sda)。

其他来源中存在确凿的证据,例如《SUSE Linux Enterprise Server 12 权威指南》68 页

您还可以选择使用……基于设备名称的安装(例如/dev/sdb1)……

以及《Linux 圣经 2008 年版第 94 页

单击“设备”选项卡并输入设备名称(例如/dev/cdrom)...

  • “文件名”或“文件名”

这也不是正确的术语,因为它在技术文档中用作完全限定名称(例如)的同义词/dev/sda,而不仅仅是最终片段(例如sda):

基本名称(1)

basename - 从文件名中删除目录和后缀

目录名(1)

dirname - 从文件名中删除最后一个部分

  • “姓名”

这也不是正确的术语,因为它在技术文档中用作完全限定名称(例如)的同义词/dev/sda,而不仅仅是最终片段(例如sda):

GNU Coreutils:基本名称调用

basename从name中删除所有前导目录组件。

GNU Coreutils:目录名调用

dirname打印每个name的除最后一个斜杠分隔部分之外的所有部分。

  • “简称”或“简称”

这也不是正确的术语。我找不到任何将设备名称的最后部分称为“短名称”或“短名称”的技术文档。在 Linux 或 GNU 中,这些术语似乎仅在VFAT 安装选项网络上的主机 上下文中使用。

  • “基本名称”

这个术语似乎是一个有效的答案,基于安装 Red Hat Linux 7第 149 页

绝对确保您计划分区的磁盘的基本名称未列出(hdb对于我添加的驱动器来说,这是 )。

以及阿尔冈昆学院CST8207(GNU/Linux 操作系统)课程笔记

基本名称的定义:任何路径名的基本名称都是其最右侧的名称组件,位于最右侧斜杠的右侧。

以及《Red Hat Linux 8 实用指南》第 1456页:

基本名称:文件的名称,与路径名相反,它不提及包含该文件的任何目录(因此不包含任何斜杠[/])。例如,hosts是 的基本名称/etc/hosts

令人高兴的是,GNU/Linux 也有一个basename命令,可以用来获取基本名称:

$ basename '/dev/sda'
sda
Run Code Online (Sandbox Code Playgroud)
  • “内核磁盘名称”

由于Linux Kernel in a Nutshell第 100 页,这个术语似乎也是一个有效的答案:

/dev/<diskname>

使用 指定的内核磁盘名称作为<diskname>根磁盘。

顺便说一句,“内核磁盘名称”在Solaris上下文中似乎也是有效的术语:

对于此版本的 iostat 命令,输出仅按物理设备路径而不是逻辑内核磁盘名称(即,而c0t0d0不是sd0)显示具有非零活动的磁盘设备的扩展统计信息。