磁盘管理(初始化,引导块,坏块管理,固态硬盘)

目录

1.磁盘初始化

①进行低级格式化(物理格式化),将磁盘的各个磁道划分为扇区。

一个扇区通常可分为头、数据区域(如512B大小)、尾三个部分组成。

管理扇区所需要的各种数据结构一般存放在头、尾两个部分,包括扇区校验码(如奇偶校验、CRC循环冗余校验码等,校验码用于校验扇区中的数据是否发生错误)

②:将磁盘分区,每个分区由若干柱面组成(即分为我们熟悉的C盘、D盘、E盘)

③:进行逻辑格式化,创建文件系统。包括创建文件系统的根目录、初始化存储空间管理所用的数据结构(如位示图、空闲分区表)

2.引导块

计算机开机时需要进行一系列初始化的工作,这些初始化工作是通过执行初始化程序(自举程序)完成的。

ROM(只读存储器)存放很小的自举装入程序。

①开机时计算机先运行ROM中的"自举装入程序",通过执行该程序就可找到引导块,并将完整的"自举程序"读入内存,完成初始化。

②完整的自举程序放在磁盘的启动块(即引导块/启动分区)上,启动块位于磁盘的固定位置。 拥有启动分区的磁盘称为启动磁盘或系统磁盘(即C:盘)

3.坏块的管理

坏了、无法正常使用的扇区就是"坏块"。

这属于硬件故障,操作系统是无法修复的。

应该将坏块标记出来,以免错误地使用到它。

1.坏块检查

对于简单的磁盘,可以在逻辑格式化时(建立文件系统时)对整个磁盘进行坏块检查,标明哪些扇区是坏扇区,比如:在 FAT表上标明。(在这种方式中,坏块对操作系统不透明)

2.坏块链表

对于复杂的磁盘,磁盘控制器(磁盘设备内部的一个硬件部件)会维护一个坏块链表。

在磁盘出厂前进行低级格式化(物理格式化)时就将坏块链进行初始化。

3.扇区备用

会保留一些"备用扇区",用于替换坏块。

这种方案称为扇区备用。

且这种处理方式中,坏块对操作系统透明。

4.固态硬盘(SSD)

1.原理

基于闪存技术Flash Memory,属于电可擦除ROM,即EEPROM。

2.组成

闪存翻译层:负责翻译逻辑块号,找到对应页(Page)

存储介质:多个闪存芯片(Flash Chip)

每个芯片包含多个块(block)

每个块包含多个页(page)

3.读写性能特性

① 以页(page)为单位读/写一相当于磁盘的"扇区"。

②以块(block)为单位"擦除",擦干净的块,其中的每页都可以写一次,读无限次 。

③支持随机访问,系统给定一个逻辑地址,闪存翻译层可通过电路迅速定位到对应的物理地址。

④读快、写慢。要写的页如果有数据,则不能写入,需要将块内其他页,全部复制到一个新的(擦除过的)块中,再写入新的页 。

4.与机械硬盘相比

SSD读写速度快,随机访问性能高,用电路控制访问位置;机械硬盘通过移动磁臂旋转磁盘控制访问位置,有寻道时间和旋转延迟。

SSD安静无噪音、耐摔抗震、能耗低、造价更贵。

SSD的一个"块"被擦除次数过多(重复写同一个块)可能会坏掉,而机械硬盘的扇区不会因为写的次数太多而坏掉。

5.磨损均衡技术

思想:将"擦除"平均分布在各个块上,以提升使用寿命。

  • 动态磨损均衡:写入数据时,优先选择累计擦除次数少的新闪存块。
  • 静态磨损均衡:SSD监测并自动进行数据分配、迁移,让老旧的闪存块承担以读为主的存储任务,让较新的闪存块承担更多的写任务。
相关推荐
cpolar技术支持10 分钟前
把配置发出去怕带出密钥?先把含凭据配置转成脱敏只读快照,用 cpolar 给同事核对差异
运维·python·内网穿透·cpolar·配置脱敏
无忧.芙桃19 分钟前
C++语言原理与实践(十六):多态机制讲解
开发语言·c++·多态
我不会起名字32229 分钟前
Redis 突然只能读不能写:MISCONF 报错的 3 类触发条件与 4 步恢复
运维·redis·持久化·排查·misconf
workflower1 小时前
Agentic AI 时代的企业ICT 基础设施运维
运维·人工智能·机器学习·重构·云计算·汽车
李纲明1 小时前
WordPress 白屏排查手册:关插件、换主题、开调试、查 PHP(附停手信号)
开发语言·php·wordpress·故障排查·白屏·插件冲突
裕晟资质规划1 小时前
三类涉密资质延续时限差异分析:军工60日与集成印制3个月的边界
java·服务器·前端·网络·安全
念念清晰1 小时前
000-OpenJDK17 源码构建:MacOS环境(M芯片)
java·后端
szxinmai主板定制专家1 小时前
ZYNQ 数据采集方案踩坑总结:电力强电磁干扰、工业现场多协议适配优化
运维·人工智能·fpga开发·机器人·zynq
ShineWinsu1 小时前
对于JavaScript:JavaScript基础语法的解析
开发语言·前端·javascript·面试·web·基础语法·循环
猫咪很可爱1 小时前
Oracle RAC 启动失败排查:私网通信与内核参数优化实战
运维·数据库·oracle