磁盘管理
I/O ports:I/O设备地址;一般会用到两个缓冲器,一个输入,一个输出;
一切皆文件:
open();read();write();close();
设备文件
块设备:block,存储单位为"块"; 磁盘设备;
字符设备:char,存储单位为"字符";键盘,鼠标设备;
设备文件:关联至一个设备驱动,进而能够跟与之对应的硬件设备进行通讯;并且设备文件没有数据大小的属性,只有元数据;
包括read(),write()等输入,输出操作;还可能包括一些硬件特性,比如寻道,磁盘转动等;这些由文件系统及设备驱动共同完成;设备驱动将read(),write()等操作转换成硬件的电气操作特性;
设备号(udev)
主设备号:major number,用来标识不同设备类型;
次设备号:minor number,用来标识相同类型的不同设备;
硬盘的接口类型:主板跟硬件设备中间通信,需要协商一些参数,比如收发速率,双方都识别的信息格式等;这些都有控制器协调;
并口:
IDE:133MB/s
SCSI:640MB/s
串口:
SATA:6Gbps
SAS:6Gbps
USB:480MB/s
以上只是接口速率,跟设备存取速率没有直接关系;
/dev/DEV_FILE:设备文件的存放位置;
磁盘设备的设备文件命名:
IDE:/dev/hd(a-z);
SATA,SAS,SCSI,USB:/dev/sd(a-z);
现在IDE也是sd了;
磁盘编号:a-z;磁盘编号跟系统启动时,识别设备的顺序有关,越显示别的,号码越靠前;
分区编号:sda1,sda2 …;
分区号码1-4为主分区或者扩展分区,之后的为逻辑分区;
机械式磁盘: rpm :rotations per minute 转速;
track :磁道;数据实际存储的位置;
sector:扇区;一般为512bytes或4k;
cylinder:柱面;分区都是以柱面为单位的;
分区:将一个存储空间在逻辑上划分为多个独立的存储空间,当做多个单独的硬件设备使用;
0磁道0扇区:512bytes用来存储开机引导程序及分区表;
MBR:Master Boot Record主引导记录;
前446bytes用来存储boot loader 引导加载器;
之后64bytes用来存储分区表;
每16bytes标识一个分区,所以最多只有4个主分区;可以通过扩展分区来划分多个分区,扩展分区是通过指向另外一个存储位置,把他当做分区表继续划分逻辑分区;
最后2bytes用来存储MBR是否有效,通常为55AA;
课外知识:UEFI,GPT;
分区管理工具
gdisk(GPT),fdisk(MBR),parted,sfdisk;
fdisk:对一块硬盘来讲,只能管理15个分区;
-l:列出主机上的磁盘分区;
"*":表示在此分区上存在可引导程序;
子命令:
p:显示已有分区;
n:新建分区;
m:显示帮助信息;
d:删除分区;
t:更改分区id;
l:列出所有分区id类型;
w:写入磁盘并退出;
q:放弃写入并退出;
查看内核是否已识别新的分区:
cat /proc/partations:分区信息所在位置;
通知内核重新读取磁盘分区表:
partx,kpartx,partprobe;
partx -a :可以手动添加分区;
kpartx:支持强制添加分区;
注:根据马哥视频做的学习笔记,如有错误,欢迎指正;侵删