磁盘结构:
简介:
磁盘(disk)是指利用磁记录技术存储数据的存储器。
磁盘是计算机主要的存储介质,可以存储大量的二进制数据,并且断电后也能保持数据不丢失。
早期计算机使用的磁盘是软磁盘(soft disk,简称软盘),如今常用的磁盘是硬磁盘(hard disk,简称硬盘)。
硬盘的物理结构:
- 盘片:硬盘中一般会有多个盘片组成,每个盘片包含两个面,每个盘面都对应地有一个读/写磁头。受到硬盘整体体积和生产成本的限制,盘片数量都受到限制,一般都在5片以内。盘片的编号自下向上从0开始,如最下边的盘片有0面和1面,再上一个盘片就编号为2面和3面。
- 磁头:用来读取盘面的存取数据,由于每个盘面都有自己的磁头,因此,盘面数等于总的磁头数。
硬盘的数据结构:
- 扇区:盘片被分为多个扇形区域,扇区是磁盘的最小组成单元,通常是512字节。(由于不断提高磁盘的大小,部分厂商设定每个扇区的大小是4096字节)
- 磁道:同一盘片不同半径的同心圆,从圆心向外画直线,可以将磁道划分为若干个弧段,每个磁道上一个弧段被称之为一个扇区
- 柱面:硬盘通常由重叠的一组盘片构成,每个盘面都被划分为数目相等的磁道,并从外缘的“0”开始编号,具有相同编号的磁道形成一个圆柱,称之为磁盘的柱面。磁盘的柱面数与一个盘面上的磁道数是相等的。
磁盘容量的计算:
- 计算公式:
存储容量 = 磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数
可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域
例子:
如果一个硬盘3个磁盘6个磁头,7个柱面(每个盘片7个磁道) 的磁盘,中每条磁道有12个扇区,所以此磁盘的容量为:存储容量 6 7 12 * 512 = 258048 - 磁盘接口类型:
IDE(并口):IDE接口硬盘多用于家用产品中,也部分应用于服务器,在实际的应用中,人们也习惯用IDE来称呼最早出现IDE类型硬盘ATA-1,这种类型的接口随着接口技术的发展已经被淘汰了。
SATA(串口): SATA采用串行连接方式,串行ATA总线使用嵌入式时钟信号,具备了更强的纠错能力,与以往相比其最大的区别在于能对传输指令(不仅仅是数据)进行检查,如果发现错误会自动矫正,这在很大程度上提高了数据传输的可靠性。是未来和现在PC机硬盘的主流趋势。
SCSI:是一种智能的通用接口标准,它具备与多种类型的外设进行通信的功能。SCSI采用ASPI(高级SCSI编程接口)的标准软件接口使驱动器和计算机内部安装的SCSI适配器进行通信。SCSI接口具有应用范围广、多任务、带宽大、CPU占用率低,以及热插拔等优点。主要应用于服务器市场。
磁盘读取响应时间:
读写一次磁盘信息所需的时间可分解为:寻道时间、延迟时间、传输时间。为提高磁盘传输效率,软件应着重考虑减少寻道时间和延迟时间。
- 寻道时间:磁头从开始移动到数据所在磁道所需要的时间,寻道时间越短,I/O操作越快,目前磁盘的平均寻道时间一般在3-15ms,一般都在10ms左右。
- 旋转延迟:盘片旋转将请求数据所在扇区移至读写磁头下方所需要的时间,旋转延迟取决于磁盘转速。普通硬盘一般都是7200rpm,慢的5400rpm。
- 数据传输时间:完成传输所请求的数据所需要的时间。
磁盘块/簇(虚拟出来的):
块是操作系统中最小的逻辑存储单位。操作系统与磁盘打交道的最小单位是磁盘块。通俗的来讲,在Windows下如NTFS等文件系统中叫做簇;在Linux下如Ext4等文件系统中叫做块(block)。每个簇或者块可以包括2、4、8、16、32、64…2的n次方个扇区。
Page:
操作系统经常与内存和硬盘这两种存储设备进行通信,类似于“块”的概念,都需要一种虚拟的基本单位。所以,与内存操作,是虚拟一个页的概念来作为最小单位。与硬盘打交道,就是以块为最小单位。
扇区、块/簇、page的关系:
扇区: 硬盘的最小读写单元
块/簇: 是操作系统针对硬盘读写的最小单元
page: 是内存与操作系统之间操作的最小单元。
MBR与磁盘分区表示:
主引导记录(MBR:Master Boot Record)
MBR位于硬盘第一个物理扇区处。
MBR中包含硬盘的主引导程序和硬盘分区表。
分区表有4个分记录区,每个分记录区占16个字节。
磁盘分区结构:
硬盘中的主分区数目只有4个,因此主分区和扩展分区的序号也就限制在1~4。
在拓展分区再分为逻辑分区,逻辑分区的序号将始终从5开始。
文件系统类型:
- XFS文件系统:
存放文件和目录数据的分区
高性能的日志型文件系统
CentOS 7系统中默认使用的文件系统 - SWAP,交换文件系统:
为Linux系统建立交换分区 - Linux支持的其它文件系统类型:
FAT16、FAT32、NTFS
EXT4、JFS
检测并确认新硬盘:
- fdisk命令:查看或管理磁盘分区
- 交互模式中常用指令:
m-----------帮助信息 p------------显示分区列表 n------------创建分区 d------------删除分区delete t-------------转换分区类型 ID w-----------保存修改 q------------退出
查看磁盘分区情况“fdisk -l [磁盘设备]”
管理磁盘分区“fdisk [磁盘设备]”
实际操作:
创建磁盘分区:
1.添加磁盘后重启系统(命令“init 6”),查看磁盘是否添加成功。
输入:fdisk -l
2.进入磁盘sdb的磁盘管理界面。
输入:fdisk /dev/sdb
3.输入“n”创建分区。
4.创建一个主分区,分区号默认1号。
5.选择其起始扇区,这里直接回车选择默认的起始扇区即可。(扇区之所以不从0开始,是因为磁盘有一个保留区用来保存分区表)
6.设置分区的大小为10G,如果不设置直接默认所磁盘有空间全分配给这个主分区。
输入:+10G
7.输入“p”显示分区列表,看是否添加分区成功。
8.用上面的方法再创建一个主分区。
9.再用相同的方法创建一个拓展分区。
10.在拓展分区基础上再建立一个逻辑分区。(注意:逻辑分区只能在拓展分区上建立)
11.再创建一个逻辑分区。
修改磁盘分区:
1.选择将逻辑分区sdb5的分区类型进行修改。
输入:t
输入:5
2.修改分区类型需要知道你想修改的分区类型代码,如果不知道可以输入L查询。
输入:L
3.将分区类型修改为Linux swap
输入:82
4.将逻辑分区sbd6的分区类型改为FAT32。
输入:t
输入:6
输入:b
删除磁盘分区:
假如我不想要主分区sdb2了,此时我可以将它删除。
输入:d
输入:2
保存退出磁盘管理界面:
输入w直接保存退出
创建文件系统(格式化):
命令mkfs(make filesystem):(用来格式化一般类型磁盘分区)
格式1:mkfs...-t...文件系统类型...分区设备
输入:mkfs -t xfs /dev/sdb1
格式2:mkfs.文件系统类型...分区设备
输入:mkfs.vfat /dev/sdb6
命令:mkswap:(用来格式化Linux swap类型磁盘分区)
格式:mkswap...分区设备
输入:mkswap /dev/sdb5
一般类型磁盘分区,格式化后需要挂载才能使用,而Linux swap类型直接用“swapon”命令即可开启,“swapoff”命令关闭。
挂载文件系统:
命令:mount
格式1:mount...[-t 类型]...存储设备...挂载点目录(挂载一般存储设备)
输入:mount /dev/sdb1 /mnt/
格式2:mount...-o...loop...ISO镜像文件...挂载点目录(挂载系统镜像)
卸载文件系统:
命令:umount
格式1:umount...存储设备位置
输入:umount /dev/sdb6
格式2:umount...挂载点目录
输入:umount /mnt/FAT32/
设置文件的自动挂载:
我们用mount命令挂载的文件系统,在重启系统后需要再次挂载,如果是常用的文件系统,可以通过在/etc/fstab配置文件中添加自动挂载的配置命令,让系统每次开机时自动挂载文件系统。
1.用vim编辑器对配置文件进行编辑。
2.添加sdb1的自动挂载命令。
3.保存并退出vim编辑器
4.重启系统检查sdb1是否自动挂载
原文地址:https://blog.51cto.com/14449541/2430773