linux内核对块设备的使用
1 partition table
这里的分析以经典的MBR为例。
在MBR里面有partition table,每一项对应一个逻辑的块设备,partion table中的每一项是16个字节。
第一个字节:标志该分区是不是active、是不是bootable。
第二到第四个字节:该partition的第一个扇区在物理块设备里面的绝对地址,即chs地址。
第五个字节:该分区的类型,比如是不是linux的文件系统。
第六到八字节:该partition的最后一个扇区在物理块设备里面的绝对地址。
第九到第十二字节:第一个sector的LBA,linux kernel里面应该不需要。
最后四个字节:总的sector数目。
2 发现块设备
内核启动时,会读取MBR,然后提取这些分区信息,比如msdos_partition()函数。根据这些分区信息,会生成注册逻辑块设备,例如,对于SCSI接口的硬盘驱动器,一块物理硬盘会生成sda1、sda2等逻辑块设备。
3 挂载文件系统
init进程里面挂载根文件系统,挂载其它文件系统,形成目录树。即将各个逻辑块设备挂载到目录树中的不同的挂载点上,比如根文件系统挂载到“/”根目录下。
linux内核对块设备的使用的更多相关文章
- 深入理解Linux内核-块设备驱动程序
扇区: 1.硬盘控制器将磁盘看成一大组扇区2.扇区就是一组相邻字节3.扇区按照惯例大小设置位512字节4.存放在块设备中的数据是通过它们在磁盘上的位置来标识,即首个扇区的下标和扇区的数目.5.扇区是硬 ...
- Linux显示列出块设备
Linux显示列出块设备 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOI ...
- Linux Shell 判断块设备节点是否存在
/************************************************************************* * Linux Shell 判断块设备节点是否存在 ...
- linux下的块设备驱动(一)
块设备的驱动比字符设备的难,这是因为块设备的驱动和内核的联系进一步增大,但是同时块设备的访问的几个基本结构和字符还是有相似之处的. 有一句话必须记住:对于存储设备(硬盘~~带有机械的操作)而言,调整读 ...
- linux3.4.2内核之块设备驱动
1. 基本概念: 扇区(Sectors):任何块设备硬件对数据处理的基本单位.通常,1个扇区的大小为512byte.(对设备而言) 块 (Blocks):由Linux制定对内核或文件系统等数据处理的 ...
- linux系统下块设备驱动程序
顾名思义,块设备驱动程序就是支持以块的方式进行读写的设备.块设备和字符设备最大的区别在于读写数据的基本单元不同.块设备读写数据的基本单元为块,例 如磁盘通常为一个sector,而字符设备的基本单元为字 ...
- linux 创建虚拟块设备,制作文件系统并挂载,用于测试lustre
1.制作块文件 3 个 [root@localhost yaoxu]# [root@localhost yaoxu]# [root@localhost yaoxu]# 2.创建回环设备 [root@l ...
- linux下的块设备驱动(二)
上一章主要讲了请求队列的一系列问题.下面主要说一下请求函数.首先来说一下硬盘类块设备的请求函数. 请求函数可以在没有完成请求队列的中的所有请求的情况下就返回,也可以在一个请求都不完成的情况下就返回. ...
- Linux内核驱动--mmap设备方法【原创】
mmap系统调用(功能) void *mmap(void *addr, size_t len, int prot, int flags, int fd, off_t offset) 内存映射函数mma ...
随机推荐
- C++链表STL
#include <iostream> #include <list> #include <algorithm> #include <stdlib.h> ...
- SpringBoot Banner 图片定制修改
启动Spring Boot项目的时候,在控制台会默认输出一个启动图案 这个图案如果你需要的话是可以自己修改的,修改方式很简单: 1. 在src/main/resources下新建一个banner.tx ...
- mac 解决mysql启动不了
mac升级了mysql,没有替换原来的链接的情况下, 启动mysql restart 会失败 解决方法,找到mysql真正的安装目录 mysql.server start
- 笔记——collections模块
collections模块 collections模块在内置数据类型(dict.list.set.tuple)的基础上,还提供了几个额外的数据类型:ChainMap.Counter.deque.def ...
- Jquery 引擎模板 -template详解
一.1.jTemplate简介 jTemplates是一个基于Jquery的js模板引擎插件.该引擎全部代码由JS实现,可以配合AJAX,JSON一起协同工作,模板内容可以用JS代码,实现了活动更新, ...
- [K/3Cloud] 如何设置设置单据分录中的整列的精度
有时,你可能想设置整列的精度,可以在插件中完成. 设置方法如下 : this.View.GetFieldEditor<DecimalFieldEditor>("FAmount&q ...
- Bzoj3060 [Poi2012]Tour de Byteotia
3060: [Poi2012]Tour de Byteotia Time Limit: 30 Sec Memory Limit: 256 MBSubmit: 251 Solved: 161 Des ...
- 【BZOJ3697】采药人的路径(点分治)
题意:采药人的药田是一个树状结构,每条路径上都种植着同种药材.采药人以自己对药材独到的见解,对每种药材进行了分类.大致分为两类,一种是阴性的,一种是阳性的.采药人每天都要进行采药活动.他选择的路径是很 ...
- 原 linux添加虚拟ip(手动vip和keepalived方式)
https://blog.csdn.net/dear_snowing/article/details/68066544 https://www.cnblogs.com/liuyisai/p/59906 ...
- Word Search(深度搜索DFS,参考)
Given a 2D board and a word, find if the word exists in the grid. The word can be constructed from l ...