为什么我不能直接ls /dev/sda1

为什么我不能直接ls /dev/sda1

我通过 USB 记忆棒将外部 microSD 卡插入我的机器。我相信它是自动安装的,因为我可以看到

$ ls /media/me
7538-3DFD

我相信它已安装,/dev/sda1因为我看到

$ sudo fdisk -l
Disk /dev/loop0: 4 KiB, 4096 bytes, 8 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

...    

Disk /dev/nvme0n1: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: SAMSUNG MZVKW512HMJP-00000              
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 00330861-D059-4F2E-8AAD-204F67A60293

Device           Start        End   Sectors   Size Type
/dev/nvme0n1p1    2048    1050623   1048576   512M EFI System
/dev/nvme0n1p2 1050624 1000214527 999163904 476.4G Linux filesystem

...

Disk /dev/sda: 29.73 GiB, 31927042048 bytes, 62357504 sectors
Disk model:  Storage Device 
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device     Boot Start      End  Sectors  Size Id Type
/dev/sda1        8192 62357503 62349312 29.7G  c W95 FAT32 (LBA)

(其中...移动了 /dev/loop__ 的许多条目)

虽然我可以执行 ls on/media/me/7538-3DFD并查看该目录中的文件,但我无法直接执行 ls on/dev/sda/dev/sda1。我所看到的都是/dev/sda或者/dev/sda1。这是为什么?我的 MicroSD 卡是否安装在其他地方?如果是这样,为什么我看不到它fdisk -l

答案1

/dev/sda/dev/sda1是仅读取和写入“磁盘块(簇)”的“块设备”。当“安装”块设备(man mount)时,该设备由“文件系统”解释,并连接到位于 的文件系统/media/me/7538-3DFD

答案2

/dev/sda1是一个特殊文件,可让您访问块设备的片段,该片段是一个分区。就您而言,该设备是您的 microSD 卡。/dev/sda让您可以访问整张卡。拥有足够的权限,您可以将分区或整个卡作为单个数据流(单个“blob”)从头到尾读取。拥有足够的权限,您可以将数据流写入分区或整个卡。

您的/dev/sda1分区包含一个文件系统,“blob”有一些内部结构。它有点类似于 tar、rar 或 zip 存档。文件,甚至目录树都可以与元数据一起写入此类存档中。

通常您提取 tar 或 zip。不过,有一些程序可以让您查看此类档案,获取单个文件,添加文件,也许还可以进行修改。

您可以对 上的文件系统执行类似的操作/dev/sda1,但您使用的程序(通常)是具有适当文件系统驱动程序的内核本身。通过在安装点安装文件系统(/media/me/7538-3DFD在您的情况下;您/dev/sda1不是挂载点),您可以方便地访问文件系统的“存档”。当您在挂载点下读取或写入文件时,内核实际上会安排对您看到的“blob”进行读取和/或写入/dev/sda1;并且它以正确的方式执行此操作,因此文件系统仍然是其类型的有效文件系统。

尽管如此,就像 tar 文件一样,即使某些程序向您显示内容, tar 文件仍然是 tar 文件,/dev/sda1即使其文件系统已安装并正在使用,它仍然是与分区关联的特殊文件。不要期望 tar 文件或/dev/sda1成为目录。如果是已安装的文件系统,则安装点是如果您想访问文件系统内的文件,则需要使用该目录。

答案3

  • 中的条目/dev是设备。对于与您的系统关联的每台设备,您将(至少)获得一个。例如,/dev/sda/dev/sda1
  • 下面的目录/media是文件系统,通常在连接可移动存储时自动安装。例如,/media/me/7538-3DFD

相关内容