备份 – 从坏扇区到“损坏的文件” – 为Linux / ext3做了,我可以为Windows / NTFS做吗?

当磁盘上的SMART检查报告坏扇区时,能够识别具有坏扇区的文件并从备份中恢复它是很重要的.下面,我将展示如何为我的 Linux / ext3 VMWARE服务器执行此操作 – 但有人知道是否可以为Windows / NTFS执行此操作吗?

这是我为Linux / ext3做的:我首先要求驱动器进行硬件表面扫描(低于操作系统级别,驱动器上的SMART电路):

vserver:~# smartctl -t long /dev/sdc

我查看了结果:

vserver:~# smartctl -a /dev/sdc
...
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       1
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       9
...
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Extended offline    Completed: read failure       90%     27679         591363172

因此,一个部门已经被标记为坏,9个被标记为从“升级”部门空间取代.更重要的是,第一个不可读的逻辑块地址(LBA)是591363172.

我找到了这个数字“翻译”到的分区(以及它内部的偏移量):

vserver:~# fdisk -lu /dev/sdc
Device Boot      Start         End      Blocks   Id  System
/dev/sdc1           32   976773119   488386544   83  Linux

分区从32区开始.所以,坏区是……

vserver:~# bc -l
591363172-32+1
591363141

…从分区开始的591363141个扇区的偏移量.

现在我可以找到哪个文件被“软管”:

vserver:~# tune2fs -l /dev/sdc1 | grep Block\ size
Block size:               4096

这个EXT3文件系统的块大小是4096字节,所以坏扇区在文件系统中破坏了这个块:

vserver:~# bc -l
591363141*512/4096
73920392.62500000000000000000

并且块号(73920392)对应于此文件:

vserver:~# debugfs
debugfs 1.41.3 (12-Oct-2008)
debugfs:  open /dev/sdc1
testb 73920392
debugfs:  testb 73920392
Block 73920392 marked in use
debugfs:  icheck 73920392
Block           Inode number
73920392        18472967
debugfs:  ncheck 18472967
Inode           Pathname
18472967        /path/to/filewithbadsector

我从备份中恢复了该文件.

我可以遵循Windows / NTFS的等效程序吗?

解决方法

我知道你有一个NTFS FS,并在该FS上运行Windows.
我不知道你是否“可以”启动一个实时Linux来处理该驱动程序.

如果您可以从CD或USB启动Linux,
你可以使用ntfsprogs.看着 –

ntfscluster 

ntfsinfo

我相信ntfscluster会告诉你特定集群存储的文件.我希望这会让你朝着正确的方向前进.

相关文章

linux常用进程通信方式包括管道(pipe)、有名管道(FIFO)、...
Linux性能观测工具按类别可分为系统级别和进程级别,系统级别...
本文详细介绍了curl命令基础和高级用法,包括跳过https的证书...
本文包含作者工作中常用到的一些命令,用于诊断网络、磁盘占满...
linux的平均负载表示运行态和就绪态及不可中断状态(正在io)的...
CPU上下文频繁切换会导致系统性能下降,切换分为进程切换、线...