Linux磁盘
1、磁盘的接口类型与命名方式
磁盘接口分为SATA、SCSI、SAS、PCI-E、光纤FC通道。常见的设备在Linux中的命名如下:
设备 | 设备在Linux内的文件名 |
IDE硬盘 | /dev/hd[a-d] |
SCSI/SATA/USB硬盘 | /dev/sd[a-p] |
U盘 | /dev/sd[a-p] |
软驱 |
/dev/fd[0-1] |
打印机 |
25针:/dev/lp[0-2] USB:/dev/usb/lp[0-15] |
当前CD ROM/DVD ROM | /dev/cdrom |
1.1 IDE接口
IDE的接口是40个针39个口,防插反。一个IDE扁平线缆可以连接两个IDE设备,通常主机提供两个IDE接口,所以最多连接4个IDE设备。这两个IDE接口又被称为IDE1(primary)和IDE2(secondary)。每条IDE扁平线缆上的IDE设备被分为Master(主设备)和Slave(从设备)。这四个IDE设备的文件名如下表:
IDE/Jumper | Master | Slave |
IDE1(Primary) | /dev/hda | /dev/hdb |
IDE2(Secondary) | /dev/hdc | /dev/hdd |
1.2SATA接口
SATA口的磁盘又叫串口磁盘。
SATA接口磁盘的命名方式不同于IDE的顺序命名,而是依照Linux内核检测到磁盘的顺序。例如:
一个PC有两个SATA盘和一个USB盘,主板上有6个SATA插槽,将这两个SATA盘分别插在主板上的SATA1和SATA5,那么这三块盘在Linux中的文件名依次是:
SATA1插槽上磁盘的文件名:/dev/sda
SATA2插槽上磁盘的文件名:/dev/sdb
USB盘(需要开机完成后才能被识别):/dev/sdc
2、磁盘的组成
磁盘主要由机械臂、机械轴、盘片、磁头、主轴组成。数据的写入实在盘片上,盘片分为扇区(Sector)和柱面(Cylinder)。
每个扇区的大小为512bytes。在磁盘的最外圈,离主轴最远的磁道为0磁道,磁盘存放数据是从0磁道开始的。其中第一个扇区记录了磁盘的重要信息。磁盘的第一个扇区主要记录了:
- 主引导记录(Main Boot Record):安装引导加载程序的地方。共446bytes。在0磁头0磁道1扇区。
- 分区表(partition table):记录整块磁盘的分区状态。共64bytes。
- 分区结束标识(55AA):其值为AA55,存储时低位在前,高位在后,即看上去是55AA(十六进制)。
标准MBR结构如下:
地址 | 描述 | 长度(字节) |
0 | 代码区 | 440(最大446) |
440 | 选用磁盘标志 | 4 |
444 | 一般为空值; 0x0000 | 2 |
446 | 标准MBR分区表规划(四个16 byte的主分区表入口) | 64 |
511 | MBR有效标志:0x55AA | 2 |
磁盘分区表
文件系统是以柱面为单位存储数据的。分区的最小单位也是柱面。
扇区和柱面:
- 磁头数等于盘面数,一块磁盘由2-14个盘片
- 同一个盘面,以盘片中心为圆心,每个不同半径的圆形轨迹就是一个磁道
- 不同盘面相同磁道组成一个圆柱体就是柱面
- 不同盘面的磁道被划分成多个扇形区域,每个区域就是一个扇区
- 一个柱面包含多个磁道,一个磁道包含多个扇区
- 数据信息记录可表示为三个条件:某磁头、某磁道(柱面)、某扇区
分区表:
默认的分区表只能写入4组分区信息,即:4个主分区(Primary)或3个主分区(Primary)和一个扩展分区(Extend),扩展分区里面可以分出逻辑分区。
分区的重要性:
1、数据的安全性:在整理数据时,可以将待整理分区的数据移动到其他分区,避免数据丢失。
2、系统性能:由于数据存储的最小单位是柱面,所以当需要读取存储在同一柱面的数据时,只会读取这一柱面,提高了读取速度和性能。
扩展分区和逻辑分区:
扩展分区的目的是使用额外的扇区记录分区信息
扩展分区不能被格式化,只有主分区和逻辑分区可以格式化后作为数据访问的分区。逻辑分区的编号从5开始,逻辑分区的数量限制依据操作系统的不同,在Linux中,IDE硬盘最多有59个逻辑分区(编号5-63),SATA盘最多有11个逻辑分区(编号5-15)。
注意:主分区和逻辑分区是不能整合在一起的。除非将扩展分区全部破坏,但是会影响到其他的逻辑分区。
什么是CHS寻址
很久以前, 硬盘的容量还非常小的时候,人们采用与软盘类似的结构生产硬盘。也就是硬盘盘片的每一条磁道都具有相同的扇区数。由此产生了所谓的CSH 3D参数 (Disk Geometry)。即磁头数(Heads),柱面数(Cylinders),扇区数(Sectors),以及相应CHS寻址方式。
CHS寻址模式将硬盘划分为磁头(Heads)、柱面(Cylinder)、扇区(Sector)。
-
磁头(Heads):每张磁片的正反两面各有一个磁头,一个磁头对应一张磁片的一个面。因此,用第几磁 头就可以表示数据在哪个磁面。
-
柱面(Cylinder):所有磁片中半径相同的同心磁道构成“柱面",意思是这一系列的磁道垂直叠在一起,就形成一个柱面的形状。简单地理解,柱面数=磁道数。
-
扇区(Sector):将磁道划分为若干个小的区段,就是扇区。虽然很小,但实际是一个扇子的形状,故称为扇区。每个扇区的容量为512字节。
CHS寻址的最大容量
CHS寻址方式的容量由CHS三个参数决定:
- 磁头数最大为255 (用 8 个二进制位存储)。从0开始编号。
- 柱面数最大为1023(用 10 个二进制位存储)。从0开始编号。
- 扇区数最大数 63(用 6个二进制位存储)。从1始编号。
所以CHS寻址方式的最大寻址范围为:255 * 1023 * 63 * 512 / 1048576 = 7.837 GB ( 1M =1048576 Bytes )
或硬盘厂商常用的单位:255 * 1023 * 63 * 512 / 1000000 = 8.414 GB ( 1M =1000000 Bytes )
CHS寻址的缺点
显然,由于要求每个磁道的扇区数相等,而外道的周长要大于内道,所以外道的记录密度要远低于内道,不仅造成了硬盘空间的浪费,也限制了硬盘的容量。为了解决这一问题,进一步提高硬盘容量,人们改用等密度结构生产硬盘。也就是说,外圈磁道的扇区比内圈磁道多,采用这种结构后,硬盘不再具有实际的CHS参数,寻址方式也改为线性寻址,即以扇区为单位进行寻址。
但一些古老的软件仍然使用CHS寻址方式(如使用BIOSInt13H接口的软件),为了兼容这样的程序,在硬盘控制器内部安装了一个地址翻译器,可以通过它将老式CHS参数翻译成新的线性参数。
posted on 2019-10-23 18:15 hopeless-dream 阅读(223) 评论(0) 编辑 收藏 举报