全部博文(573)
分类: LINUX
2015-12-24 16:12:22
文件/proc/partitions 可以查看分区信息。
$cat /proc/partitions
major minor #blocks name
8 0 488386584 sda
8 16 488386584 sdb
8 32 488386584 sdc
8 48 488386584 sdd
这个信息是再block driver中使用add_disk()函数得到了
下面是一个block driver的片段。 gd指向了一个gendisk的结构体。
其中的disk_name 就是再/proc/partitions文件中显示的name。
major就是显示的major
first_minor就是显示的minor
最后#blocks显示的值是blk_queue_logical_block_size()函数设置的。应该是表示物理设备逻辑块的大小。
dev->gd->major = sbull_major;
dev->gd->first_minor = which*SBULL_MINORS;
dev->gd->fops = &sbull_ops;
dev->gd->queue = dev->queue;
dev->gd->private_data = dev;
snprintf (dev->gd->disk_name, 32, "sbull%c", which + 'a');
set_capacity(dev->gd, nsectors*(hardsect_size/KERNEL_SECTOR_SIZE));
add_disk(dev->gd);