Contents

什么是Linux中的/dev/sda ?

1. 概述

在许多情况下,Linux 终端中的命令输出可能包含对目录*/dev/sda*的引用。这个目录代表什么?

在本教程中,我们将了解*/dev/sda代表什么。首先,我们将查看/dev目录,然后是/dev/sda*。最后,我们将查看可用于获取有关*/dev/sda*的更多信息的命令。

2. /dev目录及其内容

Linux 传统上将所有内容视为要读取或写入的文件或目录。所以当我们查看*/dev/sda* 时,我们可以假设它是一个绝对路径。为什么这条道路很重要,它会把我们引向何方?

/dev是根文件夹中包含所有*设备文件 的目录。系统会在安装过程中创建这些文件,并且它们必须在引导过程中可用。当我们列出/dev的内容时(即,使用ls 命令),我们意识到列出的大多数文件要么是块设备,要么是字符设备 。但是,除了这两种之外,/dev*目录中还存在其他类型的设备文件。

我们可以在*/dev目录中识别设备文件的更详细和直接的方法是使用设备的主要和次要编号。例如,磁盘设备的主设备号为 8,将它们分配为SCSI 块设备*。请注意,SCSI子系统管理所有PATASATA硬盘驱动器。这是因为旧的 ATA 子系统由于其代码质量差而无法维护。

**因此,以前被指定为hd[az]的硬盘驱动器现在被称为sd[az]。目前,sd[az]是指硬盘的最常用方式。**虽然,一些发行版仍然使用高清[az]

SCSI是微处理器控制的智能总线。它允许我们向计算机添加多达 15 个外围设备。这些设备包括硬盘驱动器、扫描仪、USB、打印机和许多其他设备。它代表小型计算机系统接口

2.1. /dev/sda

既然我们已经看过*/dev目录并提到了它的一些内容,那么我们来讨论/dev/sda*,它是*/dev目录中的块设备。首先,让我们通过运行来找出/dev目录中有多少/dev/sda*设备文件:

$ ls -l /dev | grep "sda"
brw-rw----  1 root disk        8,   0  Apr 29 22:33 sda
brw-rw----  1 root disk        8,   1  Apr 29 22:33 sda1
brw-rw----  1 root disk        8,   2  Apr 29 22:33 sda2
brw-rw----  1 root disk        8,   3  Apr 29 22:33 sda3
brw-rw----  1 root disk        8,   4  Apr 29 22:33 sda4
brw-rw----  1 root disk        8,   5  Apr 29 22:33 sda5
brw-rw----  1 root disk        8,   6  Apr 29 22:33 sda6

从显示的输出中,我们使用grep 过滤结果并获取仅包含sda的结果。让我们讨论上面示例中的第一行:

brw-rw----  1 root disk        8,   0  Apr 29 22:33 sda

之前,我们已经*看到*/dev/sd[az]代表硬盘驱动器。在安装过程中,Linux 获取找到的第一个硬盘并为其分配值 sda。它根据找到的磁盘数量按字母顺序进行命名。在以下几行中,我们看到一个数字附加到sda[1-15]。例如,在第 2 行和第 3 行中,我们有:

brw-rw---- 1 root disk 8, 1 Apr 29 22:33 sda1
brw-rw---- 1 root disk 8, 2 Apr 29 22:33 sda2

如果我们在硬盘中有多个分区,系统会连续附加一个从sda1sda15的数字。在单个硬盘中,我们最多只能有 15 个分区。

3. 列出更多关于*/dev/sda* 的信息

现在我们已经确定*/dev/sda*指的是硬盘,现在让我们看看我们可以使用哪些命令来获取有关我们的硬盘和其中的分区的更多信息。我们使用的第一个命令是fdisk

$ sudo fdisk -l
Disk /dev/sda: 465.76 GiB, 500107862016 bytes, 976773168 sectors
Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1  *         2048    104447    102400    50M  7 HPFS/NTFS/exFAT
/dev/sda2          104448 484152681 484048234 230.8G  7 HPFS/NTFS/exFAT
/dev/sda3       484155392 485249023   1093632   534M 27 Hidden NTFS WinRE
/dev/sda4       485251070 976771071 491520002 234.4G  5 Extended
/dev/sda5       485251072 974772223 489521152 233.4G 83 Linux
/dev/sda6       974774272 976771071   1996800   975M 82 Linux swap / Solaris

该命令向我们展示了硬盘的容量、其中的分区以及它们各自的大小。接下来,让我们看看lsblk

$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda      8:0    0 465.8G  0 disk 
├─sda1   8:1    0    50M  0 part 
├─sda2   8:2    0 230.8G  0 part 
├─sda3   8:3    0   534M  0 part 
├─sda4   8:4    0     1K  0 part 
├─sda5   8:5    0 233.4G  0 part /
└─sda6   8:6    0   975M  0 part [SWAP]
sr0     11:0    1  1024M  0 rom  

这个命令向我们展示了连接到系统的所有可用块设备,除了 RAM。它以树状结构显示输出。在下面的示例中,我们添加了一个外部存储设备。让我们看看分别运行fdisklsblk时的输出:

$ sudo fdisk -l
Disk /dev/sdb: 115.32 GiB, 123828436992 bytes, 241852416 sectors
Device     Start       End   Sectors   Size Type
/dev/sdb1   2048 241852382 241850335 115.3G Microsoft basic data
$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sdb      8:16   1 115.3G  0 disk 
└─sdb1   8:17   1 115.3G  0 part /media/gt3/BK
sr0     11:0    1  1024M  0 rom  

在第一个示例中,我们有主硬盘*/dev/sda*,它具有以下分区:sda1、sda2、sda3、sda4、sda5 和 sda6。在第二个示例中,我们添加了一个外部存储设备,它是一个显示为*/dev/sdb* 的闪存驱动器,它只有一个分区*/dev/sdb1*。