什么是“/dev/sda0”?这是一个标准的东西吗?

Kam*_*ski 21 partition udev devices history block-device

在试图理解另一个问题时,我遇到了/dev/sda0被提及的情况。

\n

我在 Linux 方面有一些经验,并且习惯了这种方案,其中sda, sdb, \xe2\x80\xa6 是设备sda1, , sda2, \xe2\x80\xa6 , sdb1, sdb2, \xe2\x80\xa6 是分区(每个分区都在各自的设备)。在这个方案中sda0, sdb0, \xe2\x80\xa6 不会出现。我不记得sda0曾经见过。

\n

仍然sda0出现在 U&L SE超级用户和其他地方。在它出现的地方,它几乎总是第一个分区,即我希望在sda1我习惯的方案中出现的分区。

\n

另一方面,在 Debian 10 中,我可以看到major,minor数字8,1for sda18,2forsda2等。因此,如果有人问我sda0可能是什么,我会说8,0哪个已经分配给了sda。这个推理sda0相当于sda整个设备。我猜这些数字是 Linux 特有的,在非 Linux Unix(类似)操作系统中它们可能会有所不同,因此推理可能不适用于那里。

\n

在互联网上我发现很少有sda0作为整体设备使用的外观。但这些例子相当晦涩难懂,它们可能是由于拼写错误或某人错误造成的。

\n

无论如何,问题是:是/曾经是/dev/sda0标准的东西吗?如果是这样,那是什么?(它可以/可能是一个完整的设备吗?)。在什么情况下这是标准的事情?(例如特定操作系统、一些旧内核、特定驱动程序、虚拟机内部、一些过时的(?)udev 配置等)。

\n

我希望得到的答案能给我足够的洞察力,这样下次我看到的时候/dev/sda0我就能告诉自己:“哦,这个家伙可能正在使用 \xe2\x80\xa6\”;或者也许:“小心!” 前面的自定义配置\'。

\n
\n

旁注:我还发现了 的提及/dev/hda0和一个从 开始枚举的方案hda1。我完全无法判断它是否与我观察到的密切相关(平行)/dev/sda*或只是巧合。

\n

Ste*_*itt 19

I\xe2\x80\x99m 不知道/dev/sda0曾经是一个标准设备名称,即使在其他 Unix 系统上也是如此。据我所知,对 的引用sda0可能是错误,而不是自定义设置的指示。

\n

即使在输出中对设备进行命名的情况下,用户仍然会混淆这些数字。例如,此论坛帖子在引用的输出中明确列出了sda1sda3但标题提到了sda0。同样,为什么我的驱动器在 grub 中被称为“(hda0,msdos5)”等,而不是您通常看到的 (hda0,5)、(hda0,sda5) 等?hda0(据我所知,它也从来不是标准设备名称),即使 Grub 使用hd0等。

\n

Linux内核发布设备分配列表;这描述了如何处理分区:

\n
\n

对于分区,添加到整个磁盘设备号:

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n
价值设备用法
0/dev/hd?整盘
1/dev/hd?1第一个分区
2/dev/hd?2第二分区
\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6
63/dev/hd?63第63分区
\n
\n

SCSI 磁盘 ( /dev/sd?) 的处理方式相同:

\n
\n

分区的处理方式与 IDE 磁盘相同(请参阅主编号 3),只不过分区的限制为 15。

\n
\n

正如您所看到的,\xe2\x80\x99s 没有提供 0 编号的分区;\xe2\x80\x9c0th\xe2\x80\x9d 设备是整个磁盘,不带数字后缀表示。

\n

(请注意, \xe2\x80\x9cSCSI 磁盘\xe2\x80\x9d,又名sd?,用于许多非 SCSI 设备;请参阅为什么 CentOS 将 ATA 总线转换为 scsi 总线?了解一些历史记录。)

\n


Jos*_*hua 6

我在一个没有 udev 的系统上看到了这一点,mknod 不会对你进行事后猜测(我使用过一个系统一段时间,其中放入错误的主要+次要由 makenod 以某种方式修复),并使用 2.0 内核;/dev/hda0 是整个磁盘设备。

我当时使用的系统是各种奇怪的基于软盘的发行版,即使您愿意,也无法从源代码构建;我当时主要使用 muLinux,但这不是那个,我很难再找到它。我参与社区一段时间了。所有这些的特点是它们都是手工制作的。没有标准化,没有升级,没有包管理器,什么都没有。/dev/hda0 设备一定来自构建它的人,他相信它应该是这样的。

如果这种奇怪的命名约定出现在 udev 时代,我会感到惊讶。


Jim*_* L. 5

目前尚不清楚您的问题是否特定于 Linux,但如果不是,FreeBSD 系统会将其视为/dev/da0系统上的第一个磁盘驱动器,至少对于 SCSI(和 USB)驱动器,或许还有设备驱动程序所呈现的其他驱动器类型该设备作为类似 SCSI 的单元。ATA/SATA(以及历史上的 ATAPI)驱动器将为/dev/adaN,其中N>= 0。

请注意,这/dev/da0是一个完整驱动器设备,而不是分区设备。单元 0 的细分将用于/dev/da0sXMBR 切片 (X>=1),或/dev/da0pX(X>=1) 用于 GPT 分区。

DA 是直接访问设备或随机访问的助记符,因为设备的任何块都是同等可寻址的。相反,FreeBSD 使用顺序sa访问设备(例如磁带驱动器)形式的/dev/saN设备驱动程序节点。