计算机芯片级维修实训系列之硬盘维修与数据恢复系列五.docx
《计算机芯片级维修实训系列之硬盘维修与数据恢复系列五.docx》由会员分享,可在线阅读,更多相关《计算机芯片级维修实训系列之硬盘维修与数据恢复系列五.docx(21页珍藏版)》请在冰豆网上搜索。
计算机芯片级维修实训系列之硬盘维修与数据恢复系列五
计算机芯片级维修实训系列之硬盘维修与数据恢复系列五
备份/恢复MBR和分区表以及无备份修复MBR和分区表错误,浅谈引导故障和分区方案
| 主引导记录(446字节) |
| |
| |
| |
| |
| |
|-------------------------|
| 分区信息1(16字节) |
|-------------------------|
| 分区信息2(16字节) |
|-------------------------|
| 分区信息3(16字节) |
|-------------------------|
| 分区信息4(16字节) |
|-------------------------|
| 结束标志2(2字节) |
|-------------------------|
分区上的引导扇区
为保险起见,每个分区(包括逻辑分区)上的第一个扇区都将被作为引导区保留。
含有引导代码的分区上的引导区也是可以引导操作系统的;不含有引导代码的分区上的引导区不具有引导操作系统的功能。
备份/恢复MBR和分区表
以下以IDE硬盘为例,如果是SCSI硬盘或者SATA硬盘用/dev/sda替换。
注意,有些SATA硬盘可能仍然会被认作/dev/hda这样的设备名。
MBR的备份与恢复:
Linux系统中备份MBR的方法:
ddif=/dev/hdaof=/MBR_bakbs=512count=1
Linux系统中从备份文件恢复MBR的方法:
ddif=/MBR_bakof=/dev/hdabs=1count=512
注意!
!
dd命令功能强大且危险,一定不要手快。
一定要清楚的知道自己正在做一件什么样的事情。
DOS环境下备份MBR的方法:
DOS环境下从备份文件恢复MBR的方法:
分区表的备份与恢复
备份分区表以及从备份恢复分区表
Linux系统中使用的方法:
fdisk工具的使用:
备份分区表:
fdisk-l>/partition_tab.txt
修改分区表
通常只要分区表的起始柱面与尾柱面的数值是正确的,是与硬盘上实际的分区结构相吻合的,只是有少数部分需要修改
的这种情况下,只需要使用fdisk工具的相关命令有针对性的进行修改就可以了。
重建分区表
使用fdisk工具中最常用的几个命令重新创建分区表。
重建分区表就是要先删除已有的分区信息,然后重新创建分区表。
注意,
操作之前必须先对将要更改的分区表进行备份。
sfdisk备份/恢复分区表
#sfdisk-d/dev/hdx>/mnt/backup/partab-hdx.sfdisk(备份)
#sfdisk/dev/hdx
DOS环境中备份/恢复分区表:
使用diskgen(早期叫diskman)
图例:
备份:
从备份恢复:
对于MBR和分区表的备份/恢复,推荐使用Linux的工具和方法。
推荐使用Linux中的fdisk操作分区表,推荐dd工具备份/恢复引导扇区。
无备份修复分区表
结合使用DOS环境中的diskgen和Linux操作系统中的fdisk两个分区工具,对严重出错的分区表进行修复。
Dos环境下的的diskgen
Linux操作系统中的fdisk
实例:
Linuxfdisk分区全过程详解
看这里:
零起点构建自己的Linux(首篇硬盘分区随我心意)
=======================================================
修复分区表需要注意的事项以及硬盘分区表的理论知识:
1.在做所有修改之前先备份!
!
由于现在需要对分区表进行修复,所以先需要备份的是现有的分区表还有MBR。
把所有的备份文件放到一个安全的地方,例如发邮件到邮箱。
2.检查一下当前的分区表,分析一下,什么地方出错了。
如果仅仅是分区类型与实际的,硬盘上的分区不符。
只需要使用linux中的fdisk工具的t命令进行修改。
3.最坏的情况:
没有任何分区表信息,需要完全重建分区表。
众所周知,DOS环境下的diskgen有个重建分区表的功能,它能够从硬盘上的数据分析出分区结构。
对于出错的分区表,它在分析的过程中可能会有一些问题。
但是,当它分析出分区信息之后,至少给操作者了一个参考。
操作者自己再看一下分区表,分析一下,哪里有问题,通常就可以根据这些信息给出正确的重建分区表的方案。
我见过一种分区出错的情况是扩展分区中的最后一个逻辑分区脱离了扩展分区的范围。
分区原理
一块没有分过区的硬盘就像一张白纸一样,是没有数据的。
分好区的硬盘就会具有一定的结构性。
分区就是将硬盘分为一定的区域,便于使用。
一块硬盘最多可以分四个区(主分区)。
无论硬盘分多少个区,它的最前面都有一个引导扇区(主引导记录)。
主引导记录由三部分组成:
一部分是446byte的操作系统引导代码,还有一部分是64byte的主分区表。
主分区表最多记录四个主分区的分区信息.每个分区占用16byte.分区就是修改分区表,它不影响硬盘上的存储的数据。
最后的2字节是结束标志。
扩展技术:
需要将一块硬盘分成更多的分区,超过5个以上的分区,可以将最多四个主分区中的一个分区类型改为扩展分区,然后在扩展分区中再建逻辑分区。
逻辑分区的分区信息保存在扩展分区之中,叫做扩展分区表。
理论上逻辑分区没有个数的限制。
扩展分区不能被直接使用,必须将其划分为若干个逻辑分区。
逻辑分区的起始位置的信息都写在扩展分区表里面。
逻辑分区的分区编号从5开始,如:
/dev/hda5是第一块硬盘的第一个逻辑分区。
格式化原理
分好区的硬盘分区上面什么数据也没有,操作系统也不能读写,为了让操作系统能够识别必须向分区中预写入一定格式的数据。
这个过程就称之为格式化。
在Linux中称为创建文件系统。
没有分区的硬盘是不能格式化的,没有格式化的分区是不能直接被使用的。
所以分区和格式化往往都是同时进行的。
从上面可以知道,一块已经有数据的硬盘就算没有分区表,它也是具有结构性的。
先前的每个分区之间是有明确的分界点的。
为什么这么说?
因为,在格式化或者说创建文件系统的时候将会按照先前的分区表信息中的分区的起始柱面进行“规化”。
当真正的进行过创建文件系统的操作之后,硬盘就具有了结构性。
让硬盘具有结构性是为了让操作系统能够识别。
操作系统在识别硬盘的时候不仅仅会检查每个分区的分区表信息(起始位置,分区类型等),还会检查当前的分区(物理位置为硬盘上的一个柱面到另一个柱面)的文件系统是否为当前操作系统所能够识别,如果能识别还需要检查其中是否有错误,如果有错误将采取什么措施?
综上所述,无论分区表出现何种故障,在修复分区表或者是重建分区表的时候都是有机可寻的。
而不会是毫无根据的。
选择一种最适合系统的分区方案
--------------------------------------------------------------------------------
最佳分区方案:
MBR的前446字节是用来存放引导操作系统的代码的,接下来的64个字节就是用来记录分区信息的,也就是分区表。
每个分区占用16个字节,四个分区的分区信息共占用64字节。
最后的2字节是结束标志。
早期的硬盘容量都很小,对于早期DOS时代来说,一块硬盘分四个区已经足够了。
我在1996年的时候接触过UCDOS、WPS排版软件。
当时我只会简单的几个DOS命令,对硬件一点都不了解,但我想那个时候的大概两、三百兆的硬盘就算是好大好大的了。
我们现在的硬盘,小的有40GB,常见的台式机硬盘都已经是120GB的了。
我想,绝大多数的人都一定不会把整块硬盘只分一个区的。
大多数的分区方案都是这样的:
先划分一个主分区用来安装操作系统,然后将所有的空闲空间全部划分为扩展分区,再在扩展分区下建几个逻辑分区。
这种分区方案是最常见、最普遍的。
通常我们在配机器的时候,这个分区都不是我们自己分的,是销售商给我们分的区。
在买机器的时候,通常装机的工作人员会问分几个区以及每个分区分多大。
一块120GB的硬盘,有很多人都这样分区:
C盘分20GB用来装系统和应用软件,D盘分30GB用来存放游戏,E盘分30GB用来存放音乐或者电影之类的,剩下的空间全给F盘用来存放备份的数据。
通常像这样的分区的C盘是主分区,文件系统为Fat32或者NTFS;D盘、E盘、F盘,这些都是扩展分区下的逻辑盘符。
如这样的分区方案不是一种很好的分区方案,这样的分区方案严重的造成了硬盘空间的浪费。
在分区之前,我们应该先考虑到的是将要在硬盘上安装何种操作系统。
首先应该了解操作系统的默认安装对硬盘有什么要求?
操作系统需要或者必须安装在哪个分区上,是必须安装在哪个主分区或者将要安装在哪个逻辑分区上?
默认安装或者说最小安装需要多大的硬盘空间?
考虑操作系统使用多大的虚拟内存(通常为物理内存的1.5~2倍),虚拟内存是否与操作系统的系统文件放在同一分区上?
安装完操作系统之后的系统补丁将会占用系统分区多少空间?
接下来考虑的才是应用软件的安装,通常需要使用一些什么软件,有什么大型软件需要使用,如果将它们安装在系统分区需要占用系统分区多少空间;如果将它们不安装在系统分区而是其它的分区上需要往系统分区写入的文件总共会占用系统分区多大的空间,需要占用其它分区多少空间?
考虑过了这些之后就基本上可以给操作系统所在的分区划分一个比较适合的空间了,这样既能够保证系统的正常运行也能够不至于造成系统分区中大量的硬盘空间被闲置。
知道了要安装多少软件,有多少大型软件之后,就能够为存放应用软件的分区分配一个比较适中的空间。
然后是许多朋友都比较喜欢玩大型的网络游戏或者单机游戏,现在的这些游戏都特别占用硬盘空间,动辄1GB到2GB不等。
如果同时喜欢玩两种以上的游戏,如果游戏占用的硬盘空间已经远远超过了5GB,强烈要求不要将游戏的程序文件和日常的办公软件的程序文件存放在同一个分区上了。
然后是至少应该划分一个用来存放单个大文件的分区,因为这样的分区就是存储区或者叫备份区,一般文件存下之后就不会经常的有改动了,通常情况下也就是放在那里不动的了。
如果是作为一般的应用,可以把所有的剩余空间都划为备份区。
当然,更好的一种方法是,按需分配,只分配一个小存储区,还有多余的空间就暂时不分配。
比如说120GB的硬盘,实际可用空间大约110GB左右。
分配了8GB~12GB的第一主分区作为C盘,用来安装WindowsServer2003R2sp1或者WindowsXP之类的;所有的剩余空间划为扩展;扩展下的第一逻辑分区分了5GB的D盘,用来存放一些办公软件、播放器、聊天工具、图形图像处理软件;扩展下的第二逻辑分区E盘,用来存放特别占用硬盘空间的的大型网络游戏和单机游戏,分配10GB~30GB不等;然后是F盘,用来作为存放备份文件的小存储区,分配10GB~20GB左右;最后还有空间可以暂时不分配,也可以立即就分配所有剩余的空闲空间为一个分区作为大存储区。
对于大存储区的原则是,尽可能的集中,不要只分配个20GB或者30GB这样的不疼不痒。
这种分区方案适用于WindowsXP/2003,当然也可以适合Windows2000系列。
当然,我想现在大概用windows2000的已经不太多吧?
通常都是XP,稍微懂一点计算机的都使用windowsServer2003R2Sp1了。
在一台处理器高于赛阳2.4GHz,内存为512MB,硬盘为5400转/秒或者7200转/秒,显存够用的台式机或者笔记本电脑上,正常情况下,使用Windows XP-sp2 要比2000sp4要快;使用WindowsServer2003Sp1要比XP要明显快很多;在这样的同等硬件环境下,使用同样的应用软件,无论是开/关机,还是程序运行效率,2003sp1都占绝对优势。
当然,也有一些软件在2003sp1上是不兼容的或者完全无法使用的。
但是,大多数的日常使用到的办公软件之类的是完全可以在2003sp1上使用的。
甚至有很多人都使用2003sp1的个人版或者企业版玩游戏。
上面的这种分区方案可能不适合微软下一代操作系统Vista的安装。
Vista的32位版需要一个最少6GB的主分区或者逻辑分区用来存放系统文件;64位版需要一个大于囗囗GB左右主分区或者逻辑分区来存放系统文件,我以前为了积极响亮微软的号召曾经在自己的机器上进行过Vista的测试活动,安装过64位版的Vista测试版,专门使用了一个15GB的逻辑分区用来安装。
由于是从64位xp以及2003上用64位虚拟光驱实现从硬盘安装,这对第一主分区和第二个可用分区的空间是有要求的。
比如有些测试版的Vista对第一主分区(启动分区)要求至少需要700M以上的可空间,有些测试版对第一主分区要求的空闲空间只有不到200M。
由于安装方式的特殊,使用虚拟光驱载入DVD版iso映像,在安装过程中会将一些安装文件复制到硬盘,如果第一主分区上的空间有限,只能达到前面说到的最低要求,就会将安装文件复制到第二个分区。
第二个分区的空闲空间必须要大于这个DVD版的ISO文件的大小。
如果达不到以上要求,肯定是会报错,提示由于哪个分区上空间太小无法复制安装安装的。
当然,如果C:
\boot.ini文件属性为只读,也是装不上的。
备份/恢复MBR和分区表以及无备份修复MBR和分区表错误,浅谈引导故障和分区方案
| 主引导记录(446字节) |
| |
| |
| |
| |
| |
|-------------------------|
| 分区信息1(16字节) |
|-------------------------|
| 分区信息2(16字节) |
|-------------------------|
| 分区信息3(16字节) |
|-------------------------|
| 分区信息4(16字节) |
|-------------------------|
| 结束标志2(2字节) |
|-------------------------|
分区上的引导扇区
为保险起见,每个分区(包括逻辑分区)上的第一个扇区都将被作为引导区保留。
含有引导代码的分区上的引导区也是可以引导操作系统的;不含有引导代码的分区上的引导区不具有引导操作系统的功能。
备份/恢复MBR和分区表
以下以IDE硬盘为例,如果是SCSI硬盘或者SATA硬盘用/dev/sda替换。
注意,有些SATA硬盘可能仍然会被认作/dev/hda这样的设备名。
MBR的备份与恢复:
Linux系统中备份MBR的方法:
ddif=/dev/hdaof=/MBR_bakbs=512count=1
Linux系统中从备份文件恢复MBR的方法:
ddif=/MBR_bakof=/dev/hdabs=1count=512
注意!
!
dd命令功能强大且危险,一定不要手快。
一定要清楚的知道自己正在做一件什么样的事情。
DOS环境下备份MBR的方法:
DOS环境下从备份文件恢复MBR的方法:
分区表的备份与恢复
备份分区表以及从备份恢复分区表
Linux系统中使用的方法:
fdisk工具的使用:
备份分区表:
fdisk-l>/partition_tab.txt
修改分区表
通常只要分区表的起始柱面与尾柱面的数值是正确的,是与硬盘上实际的分区结构相吻合的,只是有少数部分需要修改
的这种情况下,只需要使用fdisk工具的相关命令有针对性的进行修改就可以了。
重建分区表
使用fdisk工具中最常用的几个命令重新创建分区表。
重建分区表就是要先删除已有的分区信息,然后重新创建分区表。
注意,
操作之前必须先对将要更改的分区表进行备份。
sfdisk备份/恢复分区表
#sfdisk-d/dev/hdx>/mnt/backup/partab-hdx.sfdisk(备份)
#sfdisk/dev/hdx
DOS环境中备份/恢复分区表:
使用diskgen(早期叫diskman)
图例:
备份:
从备份恢复:
对于MBR和分区表的备份/恢复,推荐使用Linux的工具和方法。
推荐使用Linux中的fdisk操作分区表,推荐dd工具备份/恢复引导扇区。
无备份修复分区表
结合使用DOS环境中的diskgen和Linux操作系统中的fdisk两个分区工具,对严重出错的分区表进行修复。
Dos环境下的的diskgen
Linux操作系统中的fdisk
实例:
Linuxfdisk分区全过程详解
看这里:
零起点构建自己的Linux(首篇硬盘分区随我心意)
=======================================================
修复分区表需要注意的事项以及硬盘分区表的理论知识:
1.在做所有修改之前先备份!
!
由于现在需要对分区表进行修复,所以先需要备份的是现有的分区表还有MBR。
把所有的备份文件放到一个安全的地方,例如发邮件到邮箱。
2.检查一下当前的分区表,分析一下,什么地方出错了。
如果仅仅是分区类型与实际的,硬盘上的分区不符。
只需要使用linux中的fdisk工具的t命令进行修改。
3.最坏的情况:
没有任何分区表信息,需要完全重建分区表。
众所周知,DOS环境下的diskgen有个重建分区表的功能,它能够从硬盘上的数据分析出分区结构。
对于出错的分区表,它在分析的过程中可能会有一些问题。
但是,当它分析出分区信息之后,至少给操作者了一个参考。
操作者自己再看一下分区表,分析一下,哪里有问题,通常就可以根据这些信息给出正确的重建分区表的方案。
我见过一种分区出错的情况是扩展分区中的最后一个逻辑分区脱离了扩展分区的范围。
分区原理
一块没有分过区的硬盘就像一张白纸一样,是没有数据的。
分好区的硬盘就会具有一定的结构性。
分区就是将硬盘分为一定的区域,便于使用。
一块硬盘最多可以分四个区(主分区)。
无论硬盘分多少个区,它的最前面都有一个引导扇区(主引导记录)。
主引导记录由三部分组成:
一部分是446byte的操作系统引导代码,还有一部分是64byte的主分区表。
主分区表最多记录四个主分区的分区信息.每个分区占用16byte.分区就是修改分区表,它不影响硬盘上的存储的数据。
最后的2字节是结束标志。
扩展技术:
需要将一块硬盘分成更多的分区,超过5个以上的分区,可以将最多四个主分区中的一个分区类型改为扩展分区,然后在扩展分区中再建逻辑分区。
逻辑分区的分区信息保存在扩展分区之中,叫做扩展分区表。
理论上逻辑分区没有个数的限制。
扩展分区不能被直接使用,必须将其划分为若干个逻辑分区。
逻辑分区的起始位置的信息都写在扩展分区表里面。
逻辑分区的分区编号从5开始,如:
/dev/hda5是第一块硬盘的第一个逻辑分区。
格式化原理
分好区的硬盘分区上面什么数据也没有,操作系统也不能读写,为了让操作系统能够识别必须向分区中预写入一定格式的数据。
这个过程就称之为格式化。
在Linux中称为创建文件系统。
没有分区的硬盘是不能格式化的,没有格式化的分区是不能直接被使用的。
所以分区和格式化往往都是同时进行的。
从上面可以知道,一块已经有数据的硬盘就算没有分区表,它也是具有结构性的。
先前的每个分区之间是有明确的分界点的。
为什么这么说?
因为,在格式化或者说创建文件系统的时候将会按照先前的分区表信息中的分区的起始柱面进行“规化”。
当真正的进行过创建文件系统的操作之后,硬盘就具有了结构性。
让硬盘具有结构性是为了让操作系统能够识别。
操作系统在识别硬盘的时候不仅仅会检查每个分区的分区表信息(起始位置,分区类型等),还会检查当前的分区(物理位置为硬盘上的一个柱面到另一个柱面)的文件系统是否为当前操作系统所能够识别,如果能识别还需要检查其中是否有错误,如果有错误将采取什么措施?
综上所述,无论分区表出现何种故障,在修复分区表或者是重建分区表的时候都是有机可寻的。
而不会是毫无根据的。
选择一种最适合系统的分区方案
--------------------------------------------------------------------------------
最佳分区方案:
MBR的前446字节是用来存放引导操作系统的代码的,接下来的64个字节就是用来记录分区信息的,也就是分区表。
每个分区占用16个字节,四个分区的分区信息共占用64字节。
最后的2字节是结束标志。
早期的硬盘容量都很小,对于早期DOS时代来说,一块硬盘分四个区已经足够了。
我在1996年的时候接触过UCDOS、WPS排版软件。
当时我只会简单的几个DOS命令,对硬件一点都不了解,但我想那个时候的大概两、三百兆的硬盘就算是好大好大的了。
我们现在的硬盘,小的有40GB,常见的台式机硬盘都已经是120GB的了。
我想,绝大多数的人都一定不会把整块硬盘只分一个区的。
大多数的分区方案都是这样的:
先划分一个主分区用来安装操作系统,然后将所有的空闲空间全部划分为扩展分区,再在扩展分区下建几个逻辑分区。
这种分区方案是最常见、最普遍的。
通常我们在配机器的时候,这个分区都不是我们自己分的,是销售商给我们分的区。
在买机器的时候,通常装机的工作人员会问分几个区以及每个分区分多大。
一块120GB的硬盘,有很多人都这样分区:
C盘分20GB用来装系统和应用软件,D盘分30GB用来存放游戏,E盘分30GB用来存放音乐或者电影之类的,剩下的空间全给F盘用来存放备份的数据。
通常像这