設備文件
根據維基百科:設備文件在類 Unix 系統中是一個設備驅動程序的接口,並如常規文件一樣出現在文件系統中。
根據文件系統層次結構標準 (FHS),設備文件在 /dev
目錄中。
在 Arch Linux 上設備節點由 udev 管理。
塊設備[編輯 | 編輯原始碼]
塊設備是一種特殊文件,能通過緩衝區訪問硬體設備。有關詳細說明和虛擬文件系統設備之間的比較,請參閱維基百科。
塊設備名[編輯 | 編輯原始碼]
設備名的開頭指定了內核操作塊設備時使用的驅動子系統。
SCSI[編輯 | 編輯原始碼]
支持 SCSI 命令 (SCSI、SAS、UASP)、ATA (PATA、SATA) 的存儲設備或 USB 大容量存儲設備,比如機械硬碟、固態硬碟和快閃記憶體驅動器,均由內核 SCSI 驅動子系統處理。這些設備的命名規範一致。
這些設備的名稱以 sd
開頭。之後是一個從 a
開始的小寫字母,a
表示第一個發現的設備,b
表示第二個發現的設備,以此類推。
例如:
/dev/sda
- 設備a
,第一個發現的設備。/dev/sde
- 設備e
,第五個發現的設備。
NVMe[編輯 | 編輯原始碼]
通過 NVM Express(NVMe) 連接的設備,比如固態硬碟,名稱以 nvme
開頭。之後是一個從 0
開始的數字,表示設備控制器號。nvme0
表示第一個發現的 NVMe 控制器,nvme1
表示第二個發現的,以此類推。然後是字母 "n" 和一個從 1
開始的數字,表示控制器上的設備號。比如 nvme0n1
表示第一個控制器上第一個發現的設備,nvme0n2
表示第一個控制器上第二個發現的設備,以此類推。
例如:
/dev/nvme0n1
- 控制器0
上的設備1
,第一個控制器上第一個發現的設備。/dev/nvme2n5
- 控制器2
上的設備5
,第三個控制器上第五個發現的設備。
MMC[編輯 | 編輯原始碼]
SD 卡、多媒體存儲卡 (MMC 卡) 和 eMMC 存儲設備由內核的 mmc
驅動處理。這些設備的名稱以 mmcblk
開頭,之後是一個從 0
開始的數字表示設備號。比如 mmcblk0
表示第一個發現的設備,mmcblk1
表示第二個發現的設備,以此類推。
例如:
/dev/mmcblk0
- 設備0
,第一個發現的設備。/dev/mmcblk4
- 設備4
,第五個發現的設備。
SCSI 光碟驅動器[編輯 | 編輯原始碼]
通過受 SCSI 驅動子系統支持的接口連接的光碟驅動器,其名稱以 sr
開頭。之後是一個從 0
開始的數字,表示設備號。比如 sr0
表示第一個發現的設備, sr1
表示第二個發現的設備,以此類推。
Udev 也提供到 /dev/sr0
的符號連結,名為 /dev/cdrom
。符號連結的名稱 /dev/cdrom
與驅動器支持的光碟類型和插入的介質無關。
例如:
/dev/sr0
- 光碟驅動器0
,第一個發現的光碟驅動器。/dev/sr4
- 光碟驅動器4
,第五個發現的光碟驅動器。/dev/cdrom
- 到/dev/sr0
的符號連結。
virtio-blk[編輯 | 編輯原始碼]
連接到 virtio 塊設備 (virtio-blk) 接口的驅動器,其名稱以 vd
開頭。之後是一個從 a
開始的小寫字母,a
表示第一個發現的設備 (vda
),b
表示第二個發現的設備 (vdb
),以此類推。
例如:
/dev/vda
- 設備a
,第一個發現的設備。/dev/vde
- 設備e
,第五個發現的設備。
分區[編輯 | 編輯原始碼]
分區設備名是驅動器設備名與在分區表中分配的分區編號的組合 (可表示為 /dev/drivepartition
) 。對於設備名以數字結尾的驅動器,需要用字母 "p" 分隔驅動器名和分區編號 (可表示為 /dev/driveppartition
)。
例如:
/dev/sda1
-/dev/sda
上的分區1
。/dev/nvme2n5p3
-/dev/nvme2n5
上的分區3
。/dev/mmcblk3p4
-/dev/mmcblk3
上的分區4
。/dev/vda1
-/dev/vda
上的分區1
。/dev/loop0p2
-/dev/loop0
上的分區2
。
實用工具[編輯 | 編輯原始碼]
lsblk[編輯 | 編輯原始碼]
util-linux包 軟體包提供了列出塊設備的實用工具 lsblk(8),例如:
$ lsblk --fs
NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 vfat C4DA-2C4D /boot ├─sda2 swap 5b1564b2-2e2c-452c-bcfa-d1f572ae99f2 [SWAP] └─sda3 ext4 56adc99b-a61e-46af-aab7-a6d07e504652 /
在上述例子中,只有一個設備可用 (sda
)。此設備有 3 個分區 (從 sda1
到 sda3
),每個分區都有不同的文件系統。
wipefs[編輯 | 編輯原始碼]
wipefs 能列出或擦除指定設備上的文件系統、RAID 或分區表簽名 (魔術字符串),從而使簽名對 libblkid(3) 不可見。它不會擦除文件系統自身,也不會擦除設備上的任何其他數據。
更多信息請參閱 wipefs(8) 。
例如,以下命令將擦除設備 /dev/sdb
的所有簽名,並給每個簽名創建簽名備份文件 ~/wipefs-sdb-offset.bak
:
# wipefs --all --backup /dev/sdb
偽設備[編輯 | 編輯原始碼]
無物理設備的設備節點。
- /dev/random,參見 random(4)
- /dev/shm
- /dev/null,參見 /dev/zero 和 null(4)
- /dev/full,參見 full(4)
- /dev/ttyX (其中 X 是一個數字)