$ stat new
File: ‘new’
Size: 928 Blocks: 8 IO Block: 4096 regular file
Device: 804h/2052d Inode: 28188755 Links: 1
Access: (0622/-rw--w--w-) Uid: ( 1000/ t) Gid: ( 1000/ t)
Access: 2015-12-19 06:33:07.842559147 -0500
Modify: 2013-06-11 12:54:44.944836000 -0400
Change: 2015-03-25 11:15:20.778708140 -0400
Birth: -
的联机帮助页stat
说Device
是十六进制或十进制格式的“设备号”。
A设备id 是标识特定块设备的主设备号和次设备号的组合。在您的情况下,“804”标识了第四的分区第一的根据 BIOS 定位的类似 SCSI 的驱动器。按照传统术语,这将是 /dev/sda4。
看起来Device
确实是文件所在分区的主号和次号的组合new
:
$ ls -l /dev/sda4
brw-rw---- 1 root disk 8, 4 Oct 12 15:44 /dev/sda4
如果我是正确的,主设备号8
标识分区的驱动程序,次设备号4
标识分区的设备。
但我怎么知道Device: 804h
识别第四的分区第一的类似scsi的驱动器?
答案1
嗯,十六进制 804 实际上是两个字节,通常写为0x0804
.第一个字节是0x08
(“主要”数字),第二个字节是0x04
(“次要”数字)。将它们转换为十进制,这就是来源8, 4
。
您可以从 中了解 8 的含义/proc/devices
,其中块设备 8 为sd
,即 SCSI 磁盘。这是那里的第一个,这就是你知道它是第一个的方式。 8,0 是 sda,8,1 是 sda1,8,2 是 sda2,等等。
如果你查看内核文档——Documentation/devices.txt
——原来sd驱动实际上只允许15个分区; 8,16 是/dev/sdb(8,17 是/dev/sdb1,8、32 是/dev/sdc 等)。如果超过该限制,则会动态分配额外的号码。
实际上,/dev
条目名称由 决定udev
,并由 udev 配置控制(尽管内核建议使用默认值,并且几乎每个人都使用它。)设备号的静态分配主要是一个历史奇怪的现象 - 在运行的系统上并不真正需要它udev 除了少数启动关键设备之外。