设备文件
在linux中一切皆文件,在linux之上所有的操作都是通过文件来实现的,每一个设备都有一个文件作为他的访问入口,此文件我们称为设备文件。
设备也分为:
块设备:block 单位为 “块” 磁盘
字符设备: char 单位为 “字符” 键盘 设备号码:用来标识设备。每一个设备都有不同的设备号
主设备号:major numbar,标识设备类型
次设备号:minor numbar,设备同一类型下不同的设备。
设备接口类型
并行:
IDE: 133MB/s
SCSI:640MB/s
串行:
SATA :6Gbps
SAS :6Gbps
USB : 480MB/s
机械硬盘和固态硬盘
- 机械硬盘(HDD)
即传统的硬盘,构造一般由,盘片,轴,马达,机械臂,磁头组成。 - 固态硬盘(SSD)
用固态电子存储芯片组成的硬盘,使用方法和普通的硬盘相同。
相较于HDD,SSD在防震抗摔、传输速率、功耗、重量、噪音上有明显优势,SSD传输速率性能是HDD的2倍
相较于SSD,HDD在价格、容量占有绝对优势
硬盘有价,数据无价,目前SSD不能完全取代HHD。设备文件
磁盘设备的设备文件命名:/dev/DEV_FILE
SCSI,SATA,SAS,IDE,USB:/dev/sd
一些虚拟磁盘: /dev/vd , /dev/xvd
不同磁盘标识:/dev/sda/, /dev/sdb, ...
同一设备上的不同分区:1. 2 .....
/dev/sda1, /dev/sda5
磁盘存储术语:
head :磁头
track:磁道
cylinder :柱面
sector :扇区 , 512baytes(字节)机械磁盘结构
固态磁盘和机械磁盘对比
硬盘存储术语
区位记录磁盘扇区结构
ZBR(Zoned Bit Recording)
- CHS
采用24bit位寻址
其中前10位表示cylinder,中间8位表示head,后6位表示sector
最大寻址空间8GB -
LBA
LBA是一个整数,通过转换成CHS格式完成磁盘具体寻址
ATA-1规范中定义了28位寻址模式,以每扇区512位组来计算,ATA-1所定义的28位LBA上限达到128 GiB。2002年ATA-6规范采用48位LBA,同样以每扇区512位组计算容量上限可达128 Petabytes由于CHS寻址方式的寻址空间在大概8GB以内,所以在磁盘容量小于大概8GB时,可以使用CHS寻址方式或是LBA寻址方式;在磁盘容量大于大概8GB时,则只能使用LBA寻址方式
分区
两种分区方式: MBR , GPT .
MBR:1982年,使用32位表示扇区数,最大不超过2T
如何分区:按柱面
0磁道0扇区:512bytes
446bytes: boot loader
64bytes:分区表,其中每16bytes标识一个分区
2bytes: 55AA
MBR分区中一块硬盘最多有4个主分区,也可以3个主分区加1个扩展分区。
MBR分区结构
硬盘主引导记录MBR由4个部分组成
主引导程序(偏移地址0000H--0088H),它负责从活动分区中装载,并运行系统引导程序
出错信息数据区,偏移地址0089H--00E1H为出错信息,00E2H--01BDH全为0字节
分区表(DPT,Disk Partition Table)含4个分区项,偏移地址01BEH--01FDH,
每个分区表项长16个字节,共64字节为分区项1、分区2分区项3、分区项4
结束标志字,偏移地址01FE--01FF的2个字节值为结束标志55AA
MBR结构
MBR中DPT结构
GPT 分区
- GPT:支持128个分区 ,使用64位,支持8Z 64Z 容量
- 使用128位UUID 表示磁盘和分区GPT分区表,自动备份在头尾两份,并有crc校验位
- UEFI: 硬件支持GPT ,使操作系统启动
BIOS+MBR与UEFI+GPT
管理分区
- 列出块设备 :lsblk
- 创建分区使用:
fdisk :创建MBR分区
gdisk :创建GPT分区
parted: 高级分区操作
重新设置内存中的内核分区表版本
partprobeparted命令
parted命令的操作都是实时生效的,一定要小心使用
用法:
parted /dev/sdb mklabel gpt|msdos parted /dev/sdb print
parted /dev/sdb mkpart primary 1 200(默认是M)
parted /dev/sdb rm 1
parted -l 列出分区信息
分区工具fdisk和gdisk
gdisk /dev/sdb 类fdisk的GPT分区工具
fdisk -l :查看分区
fdisk /dev/sdb 管理分区
子命令:
p :分区列表
t :更改分区类型
n :创建新分区
d :删除分区
v :效验分区
u :转换单位
w :保存并退出
q :不保存退出
同步分区表
- 查看内核是否已经识别新的分区
cat/proc/partations - centos6通知内核重新读取硬盘分区表
新增分区用:
partx -a /dev/DEVICE
kpartx -a /dev/DEVICE
删除分区用
parts -d --nr M-N /dev/device
centos5和7:使用partprobe
partprobe /dev/device