Linux数据恢复专题(2)——从严重损坏的磁盘恢复数据
硬盘故障导致的数据丢失有可能是惨重的,但如果已经发生了,就需要最大程度地将数据恢复出来。本文介绍当磁盘因严重问题无法访问后(但BIOS还能识
别),数据的抢救方法,并讨论ext2&ext3格式分区的磁盘短读(short
read)错误。首先约定:需要手动输入的字符用黑体字给出,其余的为终端输出。
如果使用ext2或ext3文件系统,可能会收到类似下面一些警告信息,该警告信息来自e2fsck实用程序:
e2fsck /dev/hda1
e2fsck: Attempt to read block from filesystem resulted in short read
如果看到这个消息,首先想到可能是磁盘的主超级块损坏。而在创建文件系统的时候,mke2fs已经自动创建了磁盘的超级块的备份。可以告诉e2fsck程
序使用一个备用超级块检查文件系统。备用超级块一般创建于块8193、16384或32768,取决于磁盘的大小(可以使用mkfs.ext3 -n
/dev/hda1查看)。假设是块大硬盘,则使用:
e2fsck -b 32768 /dev/hda1
如果是超级块的问题,则程序返回后,备用超级块被启用,磁盘恢复正常。如果提示下面的问题:
e2fsck: Attempt to read block from filesystem resulted in short read while checking ext3 journal for /dev/hda1
说明问题不是出在超级块,出自日志文件系统的日志。此时可以安全地删除ext3文件系统的日志:
tune2fs -f -O ^has_journal /dev/hda1
这样就删除了/dev/hda1文件系统上的日志,这时可以重新尝试挂载分区,必要的话可以重建日志系统(使用tune2fs -j /dev/xxx)。
如果tune2fs提示下面的错误:
tune2fs: Attempt to read block from filesystem resulted in short read while reading journal inode
则说明指向日志的inode坏了,意味着无法清除日志。这时可以尝试debugfs命令,它是ext2&3文件系统的调试器。也可以再次使用e2fsck,加上-c参数检查文件系统的坏块。至此,因为无法检查或修复问题磁盘上的文件系统,该拿出杀手锏了。
使用ddrescue克隆损坏的磁盘
如果磁盘因为坏块而妨碍了读取,可以使用一个原始的磁盘复制实用程序创建磁盘的一个副本。Unix/Linux系统自带了一个简单实用程序dd,它把一个文件/分区/磁盘复制到另一个(在第一个专题里用到过)。前提条件时必须在系统里添加一块容量不小于问题磁盘的新硬盘。
新硬盘准备就绪后,输入下面命令:
dd if=/dev/hda of=/dev/hdb conv=noerror,sync
上面的命令将坏磁盘(/dev/hda)复制到新磁盘(/dev/hdb),忽略读取时遇到的错误(noerror),当遇到不能访问的块时用适当数量的空值填充输出(sync)。
但是dd有几个缺点:首先是速度太慢;然后是不显示进度信息,直到完成前它都是沉默的;不重新尝试失败的读取,这会减少能从坏盘恢复的数据量。因此在这里
介绍另一个软件——ddrescue,可以从 http://www.gnu.org/software/ddrescue/ddrescue.html
获取最新版(Fedora8用户可以直接用yum install dd_rescue安装)
。目前ddrescue最新版本是1.7,直接下载链接:
http://ftp.gnu.org/gnu/ddrescue/ddrescue-1.7.tar.bz2
编译、安装后,可以使用下面命令完成相同的任务:
ddrescue --max-retries=-1 /dev/hda /dev/hdb
其中max-retries=-1参数表示无论遇到多少错误都不要停止。程序从hda读取数据并写到hdb中时,不断更新各项数据,可以方便地查看工作进行情况。
在ddrescue结束磁盘复制后,在新硬盘上运行e2fsck,以消除原始磁盘的坏块引起的文件系统错误。由于肯定会有大量错误,可以用-y参数运行e2fsck,指示e2fsck对每个问题都回答yes:
e2fsck -y /dev/hdb
此时,可以使用mount命令挂载文件系统,看看数据的恢复情况了。记得检查驱动器根目录下的lost+found文件夹,fsck把不能正确链接的文件和目录放在了这个文件夹里。
硬盘严重损坏,挂载不了,报I/O错误
时间: 2024-11-01 15:25:25
硬盘严重损坏,挂载不了,报I/O错误的相关文章
linux 挂载硬盘和自动挂载
①挂载:插入硬盘前:fdisk -l Disk /dev/sda: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 by
预防硬盘数据损坏方法
硬盘是电脑中最重要的部件,一直以来在电脑中拥有无法取代的地位,一旦硬盘罢工整部电脑就像废品一样只有进回收站的价值.那电脑用户怎样才能预防硬盘损坏呢?笔者从上海天盾数据恢复中心的工程师处了解到几点,分享给广大的用户. 上海天盾数据恢复中心是上海著名的数据恢复品牌.中心设备齐全.精密度高,并配有全天24小时服务咨询电话,拥有超过10年以上的数据恢复处理经验,可以恢复包括,硬盘.移动硬盘.服务器/RAID/磁盘阵列.数据库以及各个操作系统和文件系统.承诺服务做到:数据恢复不成功不收费:镜像操作,绝不损
使用HDTune规避硬盘上损坏的扇区
如何使用HDTune扫描磁盘上的错误在网上已经有很多帖子了,但扫描到之后如何用HDTune来规避硬盘上损坏的扇区呢? HDTune并不能直接规避,而是需要重新划分磁盘的卷.HDTune一行有50个小方格,一格代表的大小在图例里有,一般500G的硬盘,一格代 表190MB,1000G的硬盘,一格则代表381MB.但HDTune所用的MB.GB不是通过二进制计算出来的,而是通过十进制的.也就是说一块市面 上500GB硬盘,在HDTune中的扫描范围是0~499GB,但在电脑上显示的往往是460+GB
硬盘磁头损坏数据恢复方案
[故障类别] (一)故障类型:硬盘磁头损坏 (二)典型特征: 1.硬盘加电无法正确识别自身型号或容量 2.硬盘无法正常读取数据并伴有大量规律性的坏道 3.硬盘加电后出现敲盘(通电后听到有规律的异响)的现象 (三)损坏程度星级评价:★★★★ [解决方案] (一)恢复流程 1.检测流程: (1)为硬盘供电,并将硬盘接入设备做进一步检测: (2)查看设备是否能正确识别硬盘的型号或容量: (3)依靠设备对硬盘各磁头的运转状态是否良好进行鉴定. 2.实施流程: (1)对硬盘磁头损坏程度进行评估.若磁头尚能
硬盘出现损坏后,大家需要避免哪些误操作
硬盘无法访问或拷贝数据频繁死机? 硬盘进水或烧毁通电后不转或旋转几秒后停转?硬盘跌落或挤压变形发出“咔咔咔”异响?当遇到以上问题的时候,你的硬盘很可能已经损坏了.硬盘损坏后操作不当往往造成数据的永久性丢失.最安全有效的方法是寻求专业数据恢复中心的帮助.比如上海的朋友, 一定要及时咨询上海天盾数据恢复中心,一家专业做数据恢复,拥有领先国内的硬盘开盘技术以及全天咨询售后服务.为提高开盘成功率,大家需要避免以下误操作: 1.反复重启:人都有侥幸心理,当电脑无法开机.硬盘无法识别时,大多数人都会反复重启
Linux挂载U盘报错:mount: unknown filesystem type 'ntfs'
原因:由于Linux上无法识别NTFS格式的分区的原因 解决方法:安装 ntfs-3g 1.下载:wget https://tuxera.com/opensource/ntfs-3g_ntfsprogs-2017.3.23.tgz 2.解压:tar zxvf ntfs-3g_ntfsprogs-2017.3.23.tgz 3.进安装目录,编辑 #./configure # make # make install 执行./configure时报错:/bin/rm: cannot remove `l
硬盘电路板损坏故障数据如何修复
[故障类别](一)故障类型:硬盘电路板损坏(二)典型特征:1.硬盘加电无任何反应2.硬盘电路芯片等模块出现明显的损坏或缺失情况(三)损坏程度星级评价:★★[解决方案](一)恢复流程1.检测流程:(1)为硬盘供电,观察硬盘加电后的状态:(2)仔细观察硬盘电路板的完好情况.2.实施流程:(1)对硬盘电路板损坏程度进行评估.若电路板内关键模块(ROM芯片.驱动芯片等)未损坏,则对电路板其他损坏模块做尝试性修复,否则依据电路板的匹配要求对电路板全面,更换并做进一步修复;(2)电路板修复完成后,将硬盘接入
Cocos2dx 3.10版编译安卓报卷标错误
环境: Java-sdk 1.7 Python2.7 Cocos2dx-3.10 Lua5.1 VC++2005-2013 Ant 1.10.1 android-ndk-r10d 1.错误截图 C++编译完成,生成apk包出错 2.解决过程 2.1最初怀疑磁盘问题,格式化磁盘/修复磁盘坏道也没用,尝试几台机器有同样的错误,排除磁盘问题. 2.2 用cocos命令行手工执行编译,编译成功,推测可能是Python执行cmd命令的BUG 2.3 找到build_android.py查看py执行
速卖通---发布商品aeopAeProductPropertys这个字段值报07004013的错误
由于文档的说明很少,导致里面改填写那些值都是靠自己推敲出来,当然可以根据他们的错误提示了研究,他们的错误提示也给出了相关的帮助了, 例如通过categoryid的200000001获取到"id":10,"values":[{"id":200002203,"names":{"zh":"醋酸纤维","en":"Acetate"},"attri
exchange 2007 OWA报HTTP 500错误
早上exchange部分用户不能登录,后经过owa测试发现报http 500错误,查了下资料,以下是建议 1.CAS上Microsoft Exchange Forms-Based Authentication Service是不是在启动状态. 2. 打开IIS,检查OWA的认证,建议你disable 所有的认证方式. 3.检查OWA HTTP Redirect的设置. 4.检查CAS上OWA(默认站点)的认证方式. 如果以上这些配置都没问题,运行以下命令,新建OWA virtual direc