磁盘的信息解析
来源:互联网 发布:俞莲舟 精华 知乎 编辑:程序博客网 时间:2024/06/05 06:55
磁盘的信息解析
对于SD磁盘,它的生成过程会有相当信息打印,了解相关信息可以对该磁盘有简单的认识。一般会有如下打印信息:
[ 135.532868] scsi 1:0:0:0: Direct-Access ATA HGST HUS724040AL A8B0 PQ: 0 ANSI: 5[ 135.541219] sd 1:0:0:0: [sda] 7814037168 512-byte logical blocks: (4.00 TB/3.64 TiB)[ 135.541446] scsi 1:0:1:0: Direct-Access ATA HGST HUS724040AL A8B0 PQ: 0 ANSI: 5[ 135.557030] sd 1:0:0:0: [sda] Write Protect is off[ 135.557220] sd 1:0:1:0: [sdb] 7814037168 512-byte logical blocks: (4.00 TB/3.64 TiB)[ 135.557238] sd 1:0:1:0: [sdb] Write Protect is off[ 135.557240] sd 1:0:1:0: [sdb] Mode Sense: 00 3a 00 00[ 135.557272] sd 1:0:1:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
1. 盘符sdx的生成
对于SD磁盘,盘符的命名类似于sdx,但具体如何命名其实遵循一定的规则,它分两步进行, 首先向系统申请唯一的ID,然后通过ID映射生成文件名。代码实现在文件drivers/scsi/sd.c中的sd_probe函数中。
获取IDA号
在SD系统中定义IDA(static DEFINE_IDA(sd_index_ida)),通过IDA生成规则生成系统中唯一的ID号index:
ida_pre_get(&sd_index_ida, GFP_KERNEL);ida_get_new(&sd_index_ida, &index)
通过ID号生成盘符
通过上面的IDA获取唯一的ID号后,就可以通过这个ID号index生成盘符,ID号生成盘符的函数如下:
sd_format_disk_name("sd", index, gd->disk_name, DISK_NAME_LEN);
生成盘符规则:第一个盘从sda开始,第二个盘为sdb,依次类推… 当第27个盘时为sdaa, 第28个为sdab,依次类推…可以将其看作二十六进制数,当超过二十六时,就增加一位来表示:sda … sdz sdaa … sdzz sdaaa …。
2. scsi m: n: x: y/sd m: n: x: y
scsi m: n: x: y/sd m: n: x: y唯一表示一个SD磁盘在系统拓扑位置
[ 135.557030] sd 1:0:0:0: [sda] [ 135.557220] sd 1:0:1:0: [sdb]
上面表示盘sda和sdb都在控制器1下(D05只引出SAS控制器1), 相同通道下设备ID分别为0和1。
3. 磁盘容量
在扫盘过程中控制器会向磁盘发送SCSI命令获取容量,实现函数为sd_read_capactiy。
7814037168 512-byte logical blocks: (4.00 TB/3.64 TiB)
上面表示该盘的块大小为512个字节,有7814037168个块。至少后面4.00 TB/3.64 TiB分别为厂家标称容量和操作系统认为容量。比如厂家标示容量4TB=4000GB=4000,000MB=4000,000,000KB=4000,000,000,000B,而对操作系统来说,按1024来计算的,所以厂家标称容量换成操作系统认为容量为4000,000,000,000/1024/1024/1024/1024=3.64。
4. 其它特性
在扫盘过程中还会读取磁盘其它特性,比如写保护,读写CACHE使能,DPO和FUA是否支持。
Write Protect is off
表示磁盘的写保护关闭
Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
表示写CACHE使能,读CACHE关闭,不支持DPO和FUA。
Direct-Access ATA HGST HUS724040AL A8B0 PQ: 0 ANSI: 5
表示SATA磁盘,以及厂家相关信息。
- 磁盘的信息解析
- C++获取磁盘的信息
- 磁盘信息
- 磁盘信息
- 获取磁盘列表以及磁盘信息的一些WIN32 API
- 获取磁盘列表以及磁盘信息的一些WIN32 API
- 获取磁盘列表以及磁盘信息的一些WIN32 API
- 飞鸽传书 获得磁盘的C#描述信息
- 获得磁盘的飞鸽传书描述信息
- 获得磁盘的C++描述信息
- LINUX df显示磁盘的相关信息
- 获取磁盘信息的一个程序
- Python 获取磁盘信息的脚本
- 使用python获取电脑的磁盘信息
- 获取磁盘(本地磁盘和移动磁盘)信息的Java代码
- SMS信息的解析
- MFC--获取磁盘信息
- 编程获得磁盘信息
- 03_servlet生命周期
- freemarker 数字格式化深入理解
- Java中的Filter过滤器
- 04_HttpServletResponse_响应对象的产生_响应数据
- Python 2048 小游戏 ,但是人生不能儿戏,与君共勉
- 磁盘的信息解析
- 05_HttpServletResponse_响应Html文档_显示书籍列表
- 梯度下降
- Java中的设计模式
- 06_HttpServletRequest_添加书籍
- C++二叉树的重要操作
- express-3-常用中间件
- 07_HttpServletRequest_请求重定向_请求转发
- 08_Request处理表单数据及乱码