磁盘管理磁盘格式化,引导块和坏块详解

操作系统还负责磁盘管理的其他几个方面。本节讨论磁盘初始化、磁盘引导、坏块恢复等。

磁盘格式化

一个新的磁盘是一个空白盘,它只是一个磁性记录材料的盘子。在磁盘可以存储数据之前,它必须分成扇区,以便磁盘控制器能够读写,这个过程称为低级格式化物理格式化

低级格式化为每个扇区使用特殊的数据结构,填充磁盘。每个扇区的数据结构通常由头部、数据区域(通常为 512 字节大小)和尾部组成。头部和尾部包含了一些磁盘控制器的使用信息,如扇区号和纠错代码(ECC)。

当控制器通过正常 I/O 写入一个扇区的数据时,ECC 采用根据数据区域所有字节而计算的新值来加以更新。在读取一个扇区时,ECC 值会重新计算,并与原来存储的值相比较,如果存储和计算的数值不一样,则表示扇区数据区已损坏,并且磁盘扇区可能已坏。

ECC 是纠错代码,因为它有足够的信息,以便在只有少数数据损坏时,控制器能够识别哪些位已经改变,并且计算它们的正确值应该是什么。然后它会报告可恢复的软错误。当读或写一个扇区时,控制器自动进行 ECC 处理。

大多数磁盘在工厂时作为制造过程的一部分就已低级格式化。这种格式化能让制造商测试磁盘,并且初始化逻辑块号到无损磁盘扇区的映射。对于许多磁盘,当磁盘控制器低级格式化磁盘时,还能指定在头部和尾部之间留下多长的数据区。通常有几个选择,如 256、512 和 1024 字节等。采用较大扇区来低级格式化磁盘,意味着每个磁道的扇区数会更少,但也意味着每个磁道的头部和尾部信息会更少,用户数据的可用空间会更多。有的操作系统只能处理 512 字节的扇区大小。

在可以使用磁盘存储文件之前,操作系统仍然需要将自己的数据结构记录在磁盘上。这分为两步:
  • 第一步是将磁盘分为由柱面组成的多个分区。操作系统可以将每个分区作为一个单独磁盘。例如,一个分区可以存储操作系统的可执行代码,而另一个分区存储用户数据;
  • 第二步是逻辑格式化,或创建文件系统。在这一步,操作系统将初始的文件系统数据结构存储到磁盘上。这些数据结构包括空闲和已分配的空间和一个初始为空的目录。

为了提高效率,大多数操作系统将块组合在一起变成更大的块,经常称为簇。磁盘 I/O 按块完成,而文件系统 I/O 按簇完成,有效确保了 I/O 具有更多的顺序访问和更少的随机访问的特点。

有些操作系统允许特殊程序将磁盘分区作为逻辑块的一个大的有序数组,而没有任何文件系统数据结构。这个数组有时称为原始磁盘,这个数组的 I/O 称为原始 I/O。例如,有些数据库系统喜欢使用原始 I/O,因为能够允许它们控制每条数据库记录存储的精确磁盘位置。原始 I/O 绕过所有文件系统服务,如缓冲区缓存、文件锁定、预取、空间分配、文件名和目录等。虽然某些应用程序可以通过原始分区来实现自己特殊的更为高效的存储服务,但是大多数应用程序在使用常规文件系统服务时会执行的更好。

引导块

为了开始运行计算机,如打开电源或重启时,它必须有一个初始程序来运行。这个初始自举程序往往很简单。它初始化系统的所有部分,从 CPU 寄存器到设备控制器和内存,接着启动操作系统。为此,自举程序找到磁盘上的操作系统内核,加载到内存,并转到起始地址以便幵始操作系统的执行。

对于大多数计算机,自举程序处在只读存储器(ROM)中。这个位置非常方便,因为 ROM 不需要初始化而且位于固定位置,这便于处理器在上电或复位时开始执行。并且,由于 ROM 是只读的,不会受到计算机病毒的影响。它的问题是,改变这种自举代码需要改变 ROM 硬件芯片。

因此,大多数系统存储一个极小的自举程序在启动 ROM 中,它的作用是从磁盘上调入完整的引导程序。这个完整的引导程序可以轻松改变:可以简单地将新的版本写到磁盘。完整的引导程序存储在磁盘固定位置上的“启动块”。具有启动分区的磁盘称为启动磁盘或系统磁盘。

引导 ROM 内的代码指示磁盘控制器将引导块读到内存(这时不加载设备驱动程序),然后开始执行代码。完整的自举程序比引导 ROM 的自举程序更加复杂。它可以从非固定的磁盘位置处加载整个操作系统,并且开始运行操作系统。即使如此,完整的自举程序可能很小。


图 1 Windows的磁盘引导

下面以 Windows 为例,分析引导过程。首先,请注意,Windows 允许将磁盘分为多个分区:
  • 有一个分区为引导分区,包含操作系统和设备驱动程序。
  • Windows 系统将引导代码存在磁盘的第一个扇区,它称为主引导记录(MBR)。引导首先运行驻留在系统 ROM 内存中的代码。这个代码指示系统从 MBR 中读取、引导代码。除了包含引导代码,MBR 包含:一个表(以列出磁盘分区)和一个标志(以指示从哪个分区引导系统),如图 1 所示。
  • 当系统找到引导分区,它读取分区的第一个扇区,称为引导扇区,并继续余下的引导过程,这包括加载各种子系统和系统服务。

坏块

因为磁盘具有移动部件并且容错差(请记住,磁头恰好飞行在磁盘表面上方),容易出现故障。有时,故障是彻底的,在这种情况下,需要更换磁盘,并且从备份介质上将其内容恢复到新的磁盘。更为常见的是,一个或多个扇区坏掉。大多数磁盘出厂时就有坏块。这些坏块的处理多种多样,取决于使用的磁盘和控制器。

对于简单磁盘,如采用 IDE 控制器的磁盘,可以手动处理坏块。一种策略是,在格式化磁盘时扫描磁盘以便发现坏块。发现的任何坏块,标记为不可用,以便文件系统不再分配它们。如果在正常操作时块变坏了,则必须人工运行特殊程序(如 Linux 命令 badlocks),以便搜索坏块并锁定它们。坏块中的数据通常会丢失。

更为复杂的磁盘在恢复坏块时更为智能。它的控制器维护磁盘内的坏块列表。这个列表在出厂低级格式化时初始化,并且在磁盘使用寿命内更新。低级格式化将一些块放在一边作为备用,操作系统看不到这些块。控制器可以采用备用块来逻辑地替代坏块。这种方案称为扇区备用或扇区转寄。

典型的坏扇区事务可能如下:
  1. 操作系统尝试读取逻辑块 87。
  2. 控制器计算 ECC,并且发现扇区是坏的。它向操作系统报告这一发现。
  3. 当下次重启操作系统时,可以运行特殊命令,以告诉控制器通过备用块替代坏块。
  4. 之后,每当系统试图访问逻辑块 87 时,这一请求转换成控制器的替代扇区的地址。

请注意,控制器的这种重定向可能会使操作系统的磁盘调度算法失效。为此,大多数磁盘在格式化时为每个柱面保留了少量的备用块,还保留了一个备用柱面。当需要重新映射坏块时,控制器尽可能地使用同一柱面的备用扇区。

作为扇区备用的替代方案,有些控制器可以采用扇区滑动来替换坏块。这里有一个例子,假定逻辑块 17 变坏,并且第一个可用的备用块在扇区 202 之后。然后,扇区滑动重新映射从 17 到 202 的所有扇区,将它们全部下移一个扇区。也就是说,扇区 202 复制到备用扇区,扇区 201 到 202,200 到 201,依次类推,直到扇区 18 复制到扇区 19。按这种方式滑动扇区释放扇区 18 的空间,以使扇区 17 能够映射到它。

坏块的更换一般不是全自动的,因为坏块的数据通常会丟失。一些软错误可能触发一个进程,以便复制块数据和备份或滑动块。然而,不可恢复的硬错误导致数据丢失。因此,任何使用坏块的文件必须修复(如从备份磁带中恢复),而且通常需要人工干预。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


随着云计算和网络技术的发展,越来越多的数据需要在服务器之间进行传输和共享。云挂机宝作为一种常见的服务器设备,具有高效、稳定的特性,使得它成为了许多企业和个人用户传输数据的首选。本文将讨论云挂机宝服务器
阿里云服务器Tomcat无法从外部访问一、环境阿里云Ubuntu 12.04.5 LTStomcat和java都是阿里云默认的7的版本,如下图二、问题部署后./startup.sh启动tomcat 之后外部访问http://ip:8080/无法访问,之后去查看防火墙关闭了Ubuntu下面的防火墙123
购买一系列的东西其实就是花钱买块区域,服务器,域名,云解析,花了好多money。。。一、租服务器百度搜索阿里云进入官网首页,点击登录进入登录页面,可以使用邮箱登录或者注册进入注册页面,填写注册信息登录成功,进入主页,点击云服务ECS,点击购买推荐或者选购配置根据实际情况选择产品,可能没有货,那么就需要更改购买条件如果是新用户,购买
前言昨天买了域名,服务器,然后搭建了环境,然后想他通过默认的端口,不用端口就访问。设置WEB项目的欢迎页在WEB-INF文件夹下有个web.xml文件(最近新建的项目不包含此文件,可以手动新建),在welcome-file-list节点中设置,代码如下 <welcome-file-list> <welcome-file>test.html</welcome-file>
前言由于服务器centos6.8安装mysql一直出现不能连接问题,然后看到一个方法,一不小心就把yum给删除了,都还原不了,很是绝望,很难受。然后没有yum这个centos就感觉废了,然后找方法装上去。 python --version查看python 版本 whereis python 查看python文件 python: /usr/bin/python2.6 /usr/bin/python
前言用 SSH客户端登录上以后,自己想要在本地连接服务器上的mysql服务器。解决方法1、首先启动数据库[root@iZm5ec880z2rorZ ~]# service mysqld start可以输入一下加粗命令:[root@iZm5ec880z2rorZ ~]# mysql -u root -p Enter password: (输入你的数据库密码)Welcome to the My
前言乱码问题是很让人抓狂的问题,下面我将记录一下Linux下MySQL乱码问题的解决方法。 mysql在linux下乱码问题一、操作mysql默认字符集是latin1,但是我们大部分程序使用的字符集是utf8,我们就需要修改mysql的字符集了。1)查看默认编码show variables like 'character%';+--------------------------+--------
问题描述今天阿里云服务器安装mysql的收,遇到了一个很熟悉的问题 输入#mysql -u root -p ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 解决方案一、方案1 1.#ps -A|grep mysql 显示类似:
今天在使用filezilla连接虚拟机中的ubuntu的时候出现上次出错,错误详情为:open for write: permission denied看完错误大概知道和权限有问题,再次查看虚拟机,我们使用以下命令给我们需要放入的目标文件权限:sudo chmod 777 /home再次尝试上传,上传成功! ...
直接上步骤,做一个简单的记录!配置阿里云oss找到对应的oss如果没有bucket,则新建一个新建之后,进入到对应的bucket,然后进行相关设置以上就是oss的基本设置,接下来是域名相关设置,这也是最重要的一些步骤。oss域名解析和cdn设置oss域名解析设置oss的域名设置是在传输管理下进行设置。如果没有域名,需要添加域名,没有注册域名自行注册。添加之后就会在上面列表上显示。以上就是域名的解析配置,期间还需要设置域名解析cname等。oss的cdn设置加速设置cdn
这个需要开放centos的端口和腾讯云服务器的端口。防火墙开放8080端口因为Centos7以上用firewalld代替了iptables,也就是说firewalld开通了8080端口应该就行了1.输入netstat -tunlp 查看8080是否放开。2.如果没有开放,输入firewall-cmd --state #查看防火墙状态。3.在running 状态下,向firewall 添加需要开放的端口firewall-cmd --permanent --zone=public --add-po
前言:博主资历尚浅,很多东西都还在刚起步学习的阶段,这几天开发任务比较轻,就在自己window系统下,模拟部署远程服务器,利用Jenkins + Ant + Tomcat 搭建了一个自动发布部署的环境
为了做集群测试,在每台机器上装了3个tomcat,每次发布项目的时候都要反复敲一些命令,重启 tomcat 之前先检查 tomcat 进程有没有停掉,没有还要手动 kill 该进程。 发布次数多了,操
Jenkins修改管理员密码,我看了网上所有的教程,竟然全都是拿着一串已经加密好的 111111 的密文去替代 config.xml 文件里面的密码,然后大家的密码都是 111111!我觉得这种做法实
一、四层与七层负载均衡在原理上的区别 1.图示 2.概述 四层负载均衡工作在 OSI 模型中的四层,即传输层。四层负载均衡只能根据报文中目标地址和源地址对请求进行转发,而无法修改或判断所请求资源的具体
和 window不同,在Linux压缩文件需要注意的是,压缩后的文件会把源文件给替代,无论是gzip、bzip2、xz 均不支持压缩目录,要达到压缩目录的目的,需要用到tar指令。 gzip 压缩 g
一、前言 随着每天业务的增长,Tomcat 的catalina.out日志 变得越来越大,占用磁盘空间不说。要查看某个时候的日志的时候,庞大的日志让你顿时无从下手,所以日志的切割的变得刻不容缓。而且,
一、安装 和 准备工作 我们选择了用 Tomcat 服务器下 war 包的安装方式。Jenkins 的下载地址:http://mirrors.jenkins-ci.org/,打开链接后,表格有war列
一、gcc gcc是Linux上面最标准的C语言的编译程序,用来源代码的编译链接。 gcc -c hello.c 编译产生目标文件hello.o gcc -O hello.c 编译产生目标文件,并进行
随着智能化互联时代的来临,家中的智能设备越来越多:电视机、平板、游戏主机、电脑、手机等遍及家中各个角落,同时设备之间共享数据的需求变的越来越强烈。比如同步、备份手机上的照片和视频,在电视机上观看电脑中